simonmar 2004/02/19 03:28:23 PST
Modified files: (Branch: backend-hacking-branch)
ghc/compiler/nativeGen MachCodeGen.hs MachInstrs.hs PprMach.hs
RegAllocInfo.hs
Log:
- x86: spill floating point values as 64 bits rather than 80 bits. There
is a huge wad of arguments surrounding Intel's 80 bit extended precision
registers and how to manage precision in floating-point ops on x86:
I'll try to summarise what I've found in a comment later.
Upshot: this is what gcc does, and while it might mean that the
choices made by the register allocator can affect the result of the
program(!), it's not really our fault. Also, it only happens on
some OSs (Linux, but not FreeBSD becuase there they set the FPU to
64-bit precision mode).
- Use MachRep instead of Size type on x86 (powerpc had already done this).
This removes a load of conversions between MachRep and Size.
Revision Changes Path
1.1.2.46 +81 -95 fptools/ghc/compiler/nativeGen/Attic/MachCodeGen.hs
1.1.2.20 +54 -62 fptools/ghc/compiler/nativeGen/Attic/MachInstrs.hs
1.1.2.26 +47 -48 fptools/ghc/compiler/nativeGen/Attic/PprMach.hs
1.1.2.17 +6 -6 fptools/ghc/compiler/nativeGen/Attic/RegAllocInfo.hs
_______________________________________________
Cvs-ghc mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/cvs-ghc