PERL PERL6 INTERNALS 19 RESENT WAS PERL 32989 PROBLEM IN LINUX PPC
Subject: [RESENT] (was: [perl #32989] Problem in linux ppc)
Date: Fri, 25 Feb 2005 12:31:04 +0100

From: lt@no-spam (Leopold Toetsch)

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 => '');
> }


Subject: Re: [RESENT] (was: [perl #32989] Problem in linux ppc)
Date: Fri, 25 Feb 2005 13:18:24 -0800

From: chromatic@no-spam (Chromatic)
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]


Subject: Re: [RESENT] (was: [perl #32989] Problem in linux ppc)
Date: Fri, 25 Feb 2005 13:27:41 -0800

From: chromatic@no-spam (Chromatic)
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]