Commit 1488177a by Mike Stump Committed by Mike Stump

darwin.S: Update for -m64 multilib.

        * src/powerpc/darwin.S: Update for -m64 multilib.
        * src/powerpc/darwin_closure.S: Likewise.

From-SVN: r96967
parent acdf61e1
2005-03-23 Mike Stump <mrs@apple.com>
* src/powerpc/darwin.S: Update for -m64 multilib.
* src/powerpc/darwin_closure.S: Likewise.
2005-03-21 Zack Weinberg <zack@codesourcery.com> 2005-03-21 Zack Weinberg <zack@codesourcery.com>
* configure.ac: Do not invoke TL_AC_GCC_VERSION. * configure.ac: Do not invoke TL_AC_GCC_VERSION.
......
...@@ -24,6 +24,16 @@ ...@@ -24,6 +24,16 @@
OTHER DEALINGS IN THE SOFTWARE. OTHER DEALINGS IN THE SOFTWARE.
----------------------------------------------------------------------- */ ----------------------------------------------------------------------- */
#if defined(__ppc64__)
#define MODE_CHOICE(x, y) y
#else
#define MODE_CHOICE(x, y) x
#endif
#define g_long MODE_CHOICE(long, quad) /* usage is ".g_long" */
#define LOG2_GPR_BYTES MODE_CHOICE(2,3) /* log2(GPR_BYTES) */
#define LIBFFI_ASM #define LIBFFI_ASM
#include <fficonfig.h> #include <fficonfig.h>
#include <ffi.h> #include <ffi.h>
...@@ -190,7 +200,7 @@ LSCIE1: ...@@ -190,7 +200,7 @@ LSCIE1:
.byte 0xc ; DW_CFA_def_cfa .byte 0xc ; DW_CFA_def_cfa
.byte 0x1 ; uleb128 0x1 .byte 0x1 ; uleb128 0x1
.byte 0x0 ; uleb128 0x0 .byte 0x0 ; uleb128 0x0
.align 2 .align LOG2_GPR_BYTES
LECIE1: LECIE1:
.globl _ffi_call_DARWIN.eh .globl _ffi_call_DARWIN.eh
_ffi_call_DARWIN.eh: _ffi_call_DARWIN.eh:
...@@ -199,9 +209,9 @@ LSFDE1: ...@@ -199,9 +209,9 @@ LSFDE1:
.long L$set$1 ; FDE Length .long L$set$1 ; FDE Length
LASFDE1: LASFDE1:
.long LASFDE1-EH_frame1 ; FDE CIE offset .long LASFDE1-EH_frame1 ; FDE CIE offset
.long LLFB0$non_lazy_ptr-. ; FDE initial location .g_long LLFB0$non_lazy_ptr-. ; FDE initial location
.set L$set$3,LFE1-LFB0 .set L$set$3,LFE1-LFB0
.long L$set$3 ; FDE address range .g_long L$set$3 ; FDE address range
.byte 0x0 ; uleb128 0x0; Augmentation size .byte 0x0 ; uleb128 0x0; Augmentation size
.byte 0x4 ; DW_CFA_advance_loc4 .byte 0x4 ; DW_CFA_advance_loc4
.set L$set$4,LCFI0-LFB1 .set L$set$4,LCFI0-LFB1
...@@ -227,9 +237,9 @@ LASFDE1: ...@@ -227,9 +237,9 @@ LASFDE1:
.long L$set$6 .long L$set$6
.byte 0xd ; DW_CFA_def_cfa_register .byte 0xd ; DW_CFA_def_cfa_register
.byte 0x1c ; uleb128 0x1c .byte 0x1c ; uleb128 0x1c
.align 2 .align LOG2_GPR_BYTES
LEFDE1: LEFDE1:
.data .data
.align 2 .align LOG2_GPR_BYTES
LLFB0$non_lazy_ptr: LLFB0$non_lazy_ptr:
.long LFB0 .g_long LFB0
...@@ -27,13 +27,25 @@ ...@@ -27,13 +27,25 @@
#define LIBFFI_ASM #define LIBFFI_ASM
#define L(x) x #define L(x) x
#if defined(__ppc64__)
#define MODE_CHOICE(x, y) y
#else
#define MODE_CHOICE(x, y) x
#endif
#define lgu MODE_CHOICE(lwzu, ldu)
#define g_long MODE_CHOICE(long, quad) /* usage is ".g_long" */
#define LOG2_GPR_BYTES MODE_CHOICE(2,3) /* log2(GPR_BYTES) */
.file "darwin_closure.S" .file "darwin_closure.S"
.text .text
.align 2 .align LOG2_GPR_BYTES
.globl _ffi_closure_ASM .globl _ffi_closure_ASM
.text .text
.align 2 .align LOG2_GPR_BYTES
_ffi_closure_ASM: _ffi_closure_ASM:
LFB1: LFB1:
mflr r0 /* extract return address */ mflr r0 /* extract return address */
...@@ -234,7 +246,7 @@ Lfinish: ...@@ -234,7 +246,7 @@ Lfinish:
/* END(ffi_closure_ASM) */ /* END(ffi_closure_ASM) */
.data .data
.section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
EH_frame1: EH_frame1:
.set L$set$0,LECIE1-LSCIE1 .set L$set$0,LECIE1-LSCIE1
.long L$set$0 ; Length of Common Information Entry .long L$set$0 ; Length of Common Information Entry
...@@ -250,7 +262,7 @@ LSCIE1: ...@@ -250,7 +262,7 @@ LSCIE1:
.byte 0xc ; DW_CFA_def_cfa .byte 0xc ; DW_CFA_def_cfa
.byte 0x1 ; uleb128 0x1 .byte 0x1 ; uleb128 0x1
.byte 0x0 ; uleb128 0x0 .byte 0x0 ; uleb128 0x0
.align 2 .align LOG2_GPR_BYTES
LECIE1: LECIE1:
.globl _ffi_closure_ASM.eh .globl _ffi_closure_ASM.eh
_ffi_closure_ASM.eh: _ffi_closure_ASM.eh:
...@@ -260,9 +272,9 @@ LSFDE1: ...@@ -260,9 +272,9 @@ LSFDE1:
LASFDE1: LASFDE1:
.long LASFDE1-EH_frame1 ; FDE CIE offset .long LASFDE1-EH_frame1 ; FDE CIE offset
.long LLFB1$non_lazy_ptr-. ; FDE initial location .g_long LLFB1$non_lazy_ptr-. ; FDE initial location
.set L$set$3,LFE1-LFB1 .set L$set$3,LFE1-LFB1
.long L$set$3 ; FDE address range .g_long L$set$3 ; FDE address range
.byte 0x0 ; uleb128 0x0; Augmentation size .byte 0x0 ; uleb128 0x0; Augmentation size
.byte 0x4 ; DW_CFA_advance_loc4 .byte 0x4 ; DW_CFA_advance_loc4
.set L$set$3,LCFI1-LCFI0 .set L$set$3,LCFI1-LCFI0
...@@ -275,14 +287,15 @@ LASFDE1: ...@@ -275,14 +287,15 @@ LASFDE1:
.byte 0x11 ; DW_CFA_offset_extended_sf .byte 0x11 ; DW_CFA_offset_extended_sf
.byte 0x41 ; uleb128 0x41 .byte 0x41 ; uleb128 0x41
.byte 0x7e ; sleb128 -2 .byte 0x7e ; sleb128 -2
.align 2 .align LOG2_GPR_BYTES
LEFDE1: LEFDE1:
.data .data
.align 2 .align LOG2_GPR_BYTES
LDFCM0: LDFCM0:
.section __TEXT,__picsymbolstub1,symbol_stubs,pure_instructions,32 .section __TEXT,__picsymbolstub1,symbol_stubs,pure_instructions,32
.align 2 .align LOG2_GPR_BYTES
Lffi_closure_helper_DARWIN$stub: Lffi_closure_helper_DARWIN$stub:
#if 1
.indirect_symbol _ffi_closure_helper_DARWIN .indirect_symbol _ffi_closure_helper_DARWIN
mflr r0 mflr r0
bcl 20,31,LO$ffi_closure_helper_DARWIN bcl 20,31,LO$ffi_closure_helper_DARWIN
...@@ -290,15 +303,15 @@ LO$ffi_closure_helper_DARWIN: ...@@ -290,15 +303,15 @@ LO$ffi_closure_helper_DARWIN:
mflr r11 mflr r11
addis r11,r11,ha16(L_ffi_closure_helper_DARWIN$lazy_ptr - LO$ffi_closure_helper_DARWIN) addis r11,r11,ha16(L_ffi_closure_helper_DARWIN$lazy_ptr - LO$ffi_closure_helper_DARWIN)
mtlr r0 mtlr r0
lwzu r12,lo16(L_ffi_closure_helper_DARWIN$lazy_ptr - LO$ffi_closure_helper_DARWIN)(r11) lgu r12,lo16(L_ffi_closure_helper_DARWIN$lazy_ptr - LO$ffi_closure_helper_DARWIN)(r11)
mtctr r12 mtctr r12
bctr bctr
.data
.lazy_symbol_pointer .lazy_symbol_pointer
L_ffi_closure_helper_DARWIN$lazy_ptr: L_ffi_closure_helper_DARWIN$lazy_ptr:
.indirect_symbol _ffi_closure_helper_DARWIN .indirect_symbol _ffi_closure_helper_DARWIN
.long dyld_stub_binding_helper .g_long dyld_stub_binding_helper
#endif
.data .data
.align 2 .align LOG2_GPR_BYTES
LLFB1$non_lazy_ptr: LLFB1$non_lazy_ptr:
.long LFB1 .g_long LFB1
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment