The genCCall problem was that calls to out-of-line float ops like sin and exp were disabled for 32 bit floats, maybe because other things were broken before.
Also fixed a 64 bit FFI problem. Closures allocated by the storage manager are 32bit aligned, but the RTS was trying to do misaligned read/writes of 64bit words. The standard SPARC load/store instructions don't support misaligned read/writes, so had to break it them up into parts.
Looking good. A few tests still fail, but they fail the same way with all ways. I'm guessing that they are problems with Solaris or other environment stuff, and not the NCG.
I tried to do build the stage2 compiler with -fasm, but I made the foolish mistake of pulling from the head beforehand, which broken the build. Did a full distclean, but will have to leave it overnight.
OVERALL SUMMARY for test run started at Wednesday, 21 January 2009 9:05:20 AM EST
2283 total tests, which gave rise to
8531 test cases, of which
0 caused framework failures
7429 were skipped
1047 expected passes
32 expected failures
0 unexpected passes
23 unexpected failures
cvh_unboxing(optasm) -- fixed
seward-space-leak(optasm) -- fixed
1916(optasm) -- fixed
expfloat(optasm) -- fixed
fun_insts(optasm) -- fixed
2594(optasm) -- fixed
ffi019(optasm) -- fixed
arith011(optasm) -- fixed
barton-mangler-bug(optasm) -- optc: timeout. others: ok
joao-circular(optasm) -- timeout
---- noncrash fail all ways ----