On Thu, 2004-11-25 at 07:49 +0100, Leopold Toetsch wrote:
> Well, we need a more generic way to include such files.
>
> * platform_asm.s is just one file and depends on $platform.
Here's a patch that's only a little bit ugly but makes things work
automatically for me again.
-- c
Index: MANIFEST
===================================================================
RCS file: /cvs/public/parrot/MANIFEST,v
retrieving revision 1.803
diff -u -u -r1.803 MANIFEST
--- MANIFEST 9 Dec 2004 05:54:42 -0000 1.803
+++ MANIFEST 12 Dec 2004 23:21:36 -0000
@@ -240,6 +240,7 @@
config/gen/platform/generic/math.h []
config/gen/platform/generic/memalign.c []
config/gen/platform/generic/memexec.c []
+config/gen/platform/generic/ppc_asm.s []
config/gen/platform/generic/signal.c []
config/gen/platform/generic/signal.h []
config/gen/platform/generic/stat.c []
Index: config/auto/jit.pl
===================================================================
RCS file: /cvs/public/parrot/config/auto/jit.pl,v
retrieving revision 1.34
diff -u -u -r1.34 jit.pl
--- config/auto/jit.pl 20 Oct 2004 08:03:13 -0000 1.34
+++ config/auto/jit.pl 12 Dec 2004 23:21:36 -0000
@@ -116,6 +116,11 @@
$execcapable = 0;
}
}
+
+ if ($jitcpuarch eq 'ppc' && $osname eq 'linux')
+ {
+ Configure::Data->set( platform_asm => 1 );
+ }
$execcapable = $set_execcapable if defined $set_execcapable;
if ($execcapable) {
Configure::Data->set(
Index: config/gen/platform.pl
===================================================================
RCS file: /cvs/public/parrot/config/gen/platform.pl,v
retrieving revision 1.19
diff -u -u -r1.19 platform.pl
--- config/gen/platform.pl 8 Oct 2004 09:45:01 -0000 1.19
+++ config/gen/platform.pl 12 Dec 2004 23:21:36 -0000
@@ -211,9 +211,14 @@
close PLATFORM_C;
if ( Configure::Data->get( 'platform_asm' ) ) {
- my $asm_file = "config/gen/platform/$platform/asm.s";
- if ( -e $asm_file ) {
+ my $asm_path = "config/gen/platform/$platform/";
+
+ for my $prefix ( Configure::Data->get( 'jitcpuarch' ) . '_', '' )
+ {
+ my $asm_file = $asm_path . $prefix . 'asm.s';
+ next unless -e $asm_file;
copy_if_diff( $asm_file, "src/platform_asm.s" );
+ last;
}
}
--- /dev/null 1969-12-31 16:00:00.000000000 -0800
+++ config/gen/platform/generic/ppc_asm.s 2004-12-12 15:04:24.000000000 -0800
@@ -0,0 +1,25 @@
+.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