From Jens Rehsack. Fix for 64-bit AIX.

This commit is contained in:
Anthony Green
2009-10-05 00:25:29 -04:00
parent e4a91de766
commit cd98813de5
2 changed files with 14 additions and 1 deletions

View File

@@ -96,8 +96,12 @@
.globl .ffi_call_AIX .globl .ffi_call_AIX
.csect ffi_call_AIX[DS] .csect ffi_call_AIX[DS]
ffi_call_AIX: ffi_call_AIX:
#if defined(_ARCH_PPC64)
.llong .ffi_call_AIX, TOC[tc0], 0
#else
.long .ffi_call_AIX, TOC[tc0], 0 .long .ffi_call_AIX, TOC[tc0], 0
.csect .text[PR] #endif
.csect .text[PR]
.ffi_call_AIX: .ffi_call_AIX:
mr r12,r8 // We only need r12 until the call, so it doesn't have to be saved... 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. */ /* Save the old stack pointer as AP. */
@@ -216,7 +220,11 @@ L(float_return_value):
.globl .ffi_call_DARWIN .globl .ffi_call_DARWIN
.csect ffi_call_DARWIN[DS] .csect ffi_call_DARWIN[DS]
ffi_call_DARWIN: ffi_call_DARWIN:
#if defined(_ARCH_PPC64)
.llong .ffi_call_DARWIN, TOC[tc0], 0
#else
.long .ffi_call_DARWIN, TOC[tc0], 0 .long .ffi_call_DARWIN, TOC[tc0], 0
#endif
.csect .text[PR] .csect .text[PR]
.ffi_call_DARWIN: .ffi_call_DARWIN:
blr blr

View File

@@ -84,6 +84,7 @@
#define L(x) x #define L(x) x
.file "aix_closure.S" .file "aix_closure.S"
.toc .toc
.extern .ffi_closure_helper_DARWIN
LC..60: LC..60:
.tc L..60[TC],L..60 .tc L..60[TC],L..60
.csect .text[PR] .csect .text[PR]
@@ -96,7 +97,11 @@ LC..60:
.csect ffi_closure_ASM[DS] .csect ffi_closure_ASM[DS]
ffi_closure_ASM: ffi_closure_ASM:
#if defined(_ARCH_PPC64)
.llong .ffi_closure_ASM, TOC[tc0], 0
#else
.long .ffi_closure_ASM, TOC[tc0], 0 .long .ffi_closure_ASM, TOC[tc0], 0
#endif
.csect .text[PR] .csect .text[PR]
.ffi_closure_ASM: .ffi_closure_ASM: