Am Samstag, 23. September 2006 09:44 schrieb chromatic: > Tests 14 and 15 in t/examples/shootout.t fail on Linux/PPC because > jit_set_args_pc does not handle floating point arguments correctly. I > poked at the code a little bit, but PPC is different enough with its > relative wealth of registers that I couldn't fix things trivially.
JIT/ppc is lacking almost all the support for FLOATVALs in the argument passing code. I.e. the error happens during emitting the JIT code. > (I'm > not even sure I can debug the problem properly; copying and modifying the > code from the x86 JIT doesn't do it.) Register fetching/storing has to be adjusted for PPC. Given that some code is emitted, debugging it is rather untrivial, yes. Basically: (gdb) b parrot_build_asm (gdb) r -Oc -Cj takfp.pir # at bp #1 (gdb) fin # gdb spits out return value := jit_info e.g. $1 (gdb) p $1->arena.start # e.g. $2 (gdb) b *$2 (gdb) c # not at bp #2 := start of JIT code (gdb) del 2 # delete breakpoint in memory (gdb) disp /i $pc (gdb) si ... > Does this test work correctly on Mac OS X? Same problem of course. > -- c leo