Leopold Toetsch <lt@no-spam> wrote:
I'm still waiting for confirmation that the recipe below works for
ppc-linux.
Thanks,
leo
>> jitcapable=1, jitarchname=ppc-linux,
> I've now tried to fix that too long lasting problem.
> 1) attach the patch below
> 2) mv config/gen/platform/darwin/asm.s jit/ppc
> 3) perl Configure.pl --nomanicheck # or fix MANIFEST
> This might cause trouble for ppc-aix, because the asm function is
> included via a different mechanism too.
> Tested on OS X only. If that works, cleanup (MANIFEST, aix) can follow.
> leo
> --- parrot/config/auto/jit.pl Wed Feb 2 13:23:59 2005
> +++ parrot-leo/config/auto/jit.pl Mon Feb 14 18:02:32 2005
> @@no-spam -79,10 +79,13 @@no-spam
> }
> }
> - if (-e "config/gen/platform/$cpuarch.s") {
> - copy_if_diff("config/gen/platform/$cpuarch.s", "asmfun.s");
> -
> - Configure::Data->set(asmfun_o => 'asmfun$(O)');
> + if (-e "jit/$cpuarch/$jitarchname.s") {
> + copy_if_diff("jit/$cpuarch/$jitarchname.s", "src/asmfun.s");
> + Configure::Data->set(asmfun_o => 'src/asmfun$(O)');
> + }
> + elsif (-e "jit/$cpuarch/asm.s") {
> + copy_if_diff("jit/$cpuarch/asm.s", "src/asmfun.s");
> + Configure::Data->set(asmfun_o => 'src/asmfun$(O)');
> } else {
> Configure::Data->set(asmfun_o => '');
> }
On Fri, 2005-02-25 at 12:31 +0100, Leopold Toetsch wrote:
> I'm still waiting for confirmation that the recipe below works for
> ppc-linux.
Nope, the assembler here doesn't understand the code. Here's what
worked for me.
-- c
#define PPC_JIT_GP_REGISTER_SAVE_SPACE (4*19)
;; This macro would generate the below asm, but requires using 'cc -c'
;; rather than 'as' as the assembler (so that the preprocessor runs),
;; and this is not currently configurable in the Parrot makefiles
.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)
.endmacro
.text
.align 12 ; vm page aligned
.globl _Parrot_ppc_jit_restore_nonvolatile_registers
_Parrot_ppc_jit_restore_nonvolatile_registers:
lfd f14,-84(r1)
lfd f15,-92(r1)
lfd f16,-100(r1)
lfd f17,-108(r1)
lfd f18,-116(r1)
lfd f19,-124(r1)
lfd f20,-132(r1)
lfd f21,-140(r1)
lfd f22,-148(r1)
lfd f23,-156(r1)
lfd f24,-164(r1)
lfd f25,-172(r1)
lfd f26,-180(r1)
lfd f27,-188(r1)
lfd f28,-196(r1)
lfd f29,-204(r1)
lfd f30,-212(r1)
lfd f31,-220(r1)
blr
[plaintext asm.s]
On Fri, 2005-02-25 at 13:18 -0800, chromatic wrote:
> Nope, the assembler here doesn't understand the code. Here's what
> worked for me.
Ignore that attachment, it's wrong. Here's the right one.
-- c
.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
[plaintext ppc_asm.s]