diff options
author | Anthony Green <green@moxielogic.com> | 2009-10-05 00:25:29 -0400 |
---|---|---|
committer | Anthony Green <green@moxielogic.com> | 2009-10-05 00:25:29 -0400 |
commit | cd98813de517ea64041637e3e78d27a001d6d3b4 (patch) | |
tree | 912d21f178e54a8d483c54ec4e3de15577c92e81 /src/powerpc | |
parent | e4a91de766acc47f6c50f13cc11719a65e23ecba (diff) | |
download | libffi-cd98813de517ea64041637e3e78d27a001d6d3b4.tar.gz |
From Jens Rehsack. Fix for 64-bit AIX.
Diffstat (limited to 'src/powerpc')
-rw-r--r-- | src/powerpc/aix.S | 10 | ||||
-rw-r--r-- | src/powerpc/aix_closure.S | 5 |
2 files changed, 14 insertions, 1 deletions
diff --git a/src/powerpc/aix.S b/src/powerpc/aix.S index 45502f7..4dacee5 100644 --- a/src/powerpc/aix.S +++ b/src/powerpc/aix.S @@ -96,8 +96,12 @@ .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 diff --git a/src/powerpc/aix_closure.S b/src/powerpc/aix_closure.S index 7bf5c65..e05c849 100644 --- a/src/powerpc/aix_closure.S +++ b/src/powerpc/aix_closure.S @@ -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: |