simonmar 2003/08/29 09:00:29 PDT
Modified files:
ghc/compiler/main DriverFlags.hs
ghc/driver/mangler ghc-asm.lprl
ghc/includes MachRegs.h TailCalls.h
ghc/rts Linker.c MBlock.h
Log:
Initial x86-64 (aka amd64) support.
Unregisterised it works perfectly. Registerised, I think it's almost
there, except that I seem to be running into the known codegen bug in
GCC with register variables (bug #7871 in the gcc bugzilla), which
means registerised support is basically hosed until the GCC folks
can get their act together.
We get 8 more registers on amd64, but only 2 more callee-saves
registers. The calling convention seems to pass args in registers by
default, using the previously-callee-saves %rsi and %rdi as two of the
new arg registers.
I think GHCi should work, since we already have 64-bit ELF support
thanks to Mat Chapman's work on the IA64 port. I haven't tried GHCi,
though.
The native code generator should be a breeze, because it's so similar
to plain x86.
Revision Changes Path
1.122 +4 -1 fptools/ghc/compiler/main/DriverFlags.hs
1.104 +31 -0 fptools/ghc/driver/mangler/ghc-asm.lprl
1.14 +42 -1 fptools/ghc/includes/MachRegs.h
1.13 +16 -1 fptools/ghc/includes/TailCalls.h
1.127 +4 -1 fptools/ghc/rts/Linker.c
1.18 +12 -1 fptools/ghc/rts/MBlock.h
|
Try Searching:
servers, voip, java, networking, microsoft ...
|
|
|
|