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	

Reply via email to