-Known bugs in nativeGen, 000124 (JRS)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Known bugs/issues in nativeGen, 000228 (JRS)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-All these bugs are for x86; I don't know about sparc/alpha.
+-- absC -> stix translation for GET_TAG and in fact anything
+ to do with the packed-halfword layout info itbl field is
+ pretty dubious. I think I have it fixed for big and little
+ endian 32-bit, but it won't work at all on a 64 bit platform.
--- argument marshalling for ccall is fundamentally flawed, since
- it moves the C stack pointer %esp as it pushes each argument.
- Alas, the register allocator spills relative to %esp and
- assumes that it doesn't move. Result: if the marshalling code
- for a ccall involves any spills, the resulting code will
- probably be wrong.
+-- There may or may not be bugs in some of the x86 insn selector
+ code in MachCode.lhs. I have checked all of it against the
+ Rules of the Game (+ Rules of the game for Amodes) recorded in
+ that file, but am not 100% convinced that it is all correct.
+ I think most of it is, tho.
- The Right Way to fix this is to copy stuff onto the stack
- without moving %esp, then adjust it immediately prior to the
- call insn and un-adjust it immediately following it.
-
--- nofib/spectral/cvh_unboxing exposes some kind of spilling bug
- (I think), since there are many references to registers %M229
- etc, which I believe are dynamic registers which didn't get assigned
- to real ones.
+-- It won't compile on Solaris or Alphas because the insn selectors
+ are not up-to-date.
+-- NCG introduces a massive space leak; I think it generates all the
+ assembly code before printing any of it out (a depressingly
+ familiar story ...). Fixing this will await a working heap profiler.