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