From Jens Rehsack. Fix for 64-bit AIX.
authorAnthony Green <green@moxielogic.com>
Mon, 5 Oct 2009 04:25:29 +0000 (00:25 -0400)
committerAnthony Green <green@moxielogic.com>
Mon, 5 Oct 2009 04:25:29 +0000 (00:25 -0400)
src/powerpc/aix.S
src/powerpc/aix_closure.S

index 45502f7..4dacee5 100644 (file)
        .globl .ffi_call_AIX
 .csect ffi_call_AIX[DS]
 ffi_call_AIX:
+#if defined(_ARCH_PPC64)
+       .llong .ffi_call_AIX, TOC[tc0], 0
+#else
        .long .ffi_call_AIX, TOC[tc0], 0
-       .csect .text[PR]
+#endif 
+               .csect .text[PR]
 .ffi_call_AIX:
        mr      r12,r8 // We only need r12 until the call, so it doesn't have to be saved...
        /* Save the old stack pointer as AP.  */
@@ -216,7 +220,11 @@ L(float_return_value):
        .globl .ffi_call_DARWIN
 .csect ffi_call_DARWIN[DS]
 ffi_call_DARWIN:
+#if defined(_ARCH_PPC64)
+       .llong .ffi_call_DARWIN, TOC[tc0], 0
+#else
        .long .ffi_call_DARWIN, TOC[tc0], 0
+#endif
        .csect .text[PR]
 .ffi_call_DARWIN:
        blr
index 7bf5c65..e05c849 100644 (file)
@@ -84,6 +84,7 @@
 #define L(x) x
        .file "aix_closure.S"
        .toc
+       .extern .ffi_closure_helper_DARWIN
 LC..60:
        .tc L..60[TC],L..60
        .csect .text[PR]
@@ -96,7 +97,11 @@ LC..60:
 .csect ffi_closure_ASM[DS]
 
 ffi_closure_ASM:
+#if defined(_ARCH_PPC64)
+       .llong .ffi_closure_ASM, TOC[tc0], 0
+#else  
        .long .ffi_closure_ASM, TOC[tc0], 0
+#endif 
        .csect .text[PR]
 .ffi_closure_ASM: