Ah, I've made Parrot build again on Linux PPC (and make testj only has the expected t/library/streams.t failure present with make test too).
The attached file works as the eventual src/platform_asm.s file, at least on my architecture. I'm not sure how to plug it in to the generated fileset cleanly, but that's a lot easier than trying to debug assembly code on a platform you don't have. Leo, what do you suggest to connect the dots here? -- c
.macro RESTORE_NONVOLATILE_FLOATS lfd f14, -PPC_JIT_GP_REGISTER_SAVE_SPACE-1*8(r1) lfd f15, -PPC_JIT_GP_REGISTER_SAVE_SPACE-2*8(r1) lfd f16, -PPC_JIT_GP_REGISTER_SAVE_SPACE-3*8(r1) lfd f17, -PPC_JIT_GP_REGISTER_SAVE_SPACE-4*8(r1) lfd f18, -PPC_JIT_GP_REGISTER_SAVE_SPACE-5*8(r1) lfd f19, -PPC_JIT_GP_REGISTER_SAVE_SPACE-6*8(r1) lfd f20, -PPC_JIT_GP_REGISTER_SAVE_SPACE-7*8(r1) lfd f21, -PPC_JIT_GP_REGISTER_SAVE_SPACE-8*8(r1) lfd f22, -PPC_JIT_GP_REGISTER_SAVE_SPACE-9*8(r1) lfd f23, -PPC_JIT_GP_REGISTER_SAVE_SPACE-10*8(r1) lfd f24, -PPC_JIT_GP_REGISTER_SAVE_SPACE-11*8(r1) lfd f25, -PPC_JIT_GP_REGISTER_SAVE_SPACE-12*8(r1) lfd f26, -PPC_JIT_GP_REGISTER_SAVE_SPACE-13*8(r1) lfd f27, -PPC_JIT_GP_REGISTER_SAVE_SPACE-14*8(r1) lfd f28, -PPC_JIT_GP_REGISTER_SAVE_SPACE-15*8(r1) lfd f29, -PPC_JIT_GP_REGISTER_SAVE_SPACE-16*8(r1) lfd f30, -PPC_JIT_GP_REGISTER_SAVE_SPACE-17*8(r1) lfd f31, -PPC_JIT_GP_REGISTER_SAVE_SPACE-18*8(r1) .endm .text .align 12 .globl Parrot_ppc_jit_restore_nonvolatile_registers Parrot_ppc_jit_restore_nonvolatile_registers: lfd 14, -84(1) lfd 15, -92(1) lfd 16, -100(1) lfd 17, -108(1) lfd 18, -116(1) lfd 19, -124(1) lfd 20, -132(1) lfd 21, -140(1) lfd 22, -148(1) lfd 23, -156(1) lfd 24, -164(1) lfd 25, -172(1) lfd 26, -180(1) lfd 27, -188(1) lfd 28, -196(1) lfd 29, -204(1) lfd 30, -212(1) lfd 31, -220(1) blr