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

Reply via email to