aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.7/boehm-gc/powerpc_darwin_mach_dep.s
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.7/boehm-gc/powerpc_darwin_mach_dep.s')
-rw-r--r--gcc-4.7/boehm-gc/powerpc_darwin_mach_dep.s178
1 files changed, 0 insertions, 178 deletions
diff --git a/gcc-4.7/boehm-gc/powerpc_darwin_mach_dep.s b/gcc-4.7/boehm-gc/powerpc_darwin_mach_dep.s
deleted file mode 100644
index d61acc034..000000000
--- a/gcc-4.7/boehm-gc/powerpc_darwin_mach_dep.s
+++ /dev/null
@@ -1,178 +0,0 @@
-#if defined(__ppc64__)
-#define MODE_CHOICE(x, y) y
-#else
-#define MODE_CHOICE(x, y) x
-#endif
-
-#define machine_choice MODE_CHOICE(ppc7400,ppc64)
-
-; Define some pseudo-opcodes for size-independent load & store of GPRs ...
-#define lgu MODE_CHOICE(lwzu, ldu)
-#define lg MODE_CHOICE(lwz,ld)
-#define sg MODE_CHOICE(stw,std)
-#define sgu MODE_CHOICE(stwu,stdu)
-
-; ... and the size of GPRs and their storage indicator.
-#define GPR_BYTES MODE_CHOICE(4,8)
-#define LOG2_GPR_BYTES MODE_CHOICE(2,3) /* log2(GPR_BYTES) */
-#define g_long MODE_CHOICE(long, quad) /* usage is ".g_long" */
-
-; From the ABI doc: "Mac OS X ABI Function Call Guide" Version 2009-02-04.
-#define LINKAGE_SIZE MODE_CHOICE(24,48)
-#define PARAM_AREA MODE_CHOICE(32,64)
-#define SAVED_LR_OFFSET MODE_CHOICE(8,16) /* save position for lr */
-
-; The whole stack frame **MUST** be 16byte-aligned.
-#define SAVE_SIZE (LINKAGE_SIZE+PARAM_AREA)
-
-#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1050
-; We no longer need the pic symbol stub for Darwin >= 9.
-#define BLGCP1 _GC_push_one
-#undef WANT_STUB
-#else
-#define BLGCP1 L_GC_push_one$stub
-#define WANT_STUB
-#endif
-
- .machine machine_choice
-
-; GC_push_regs function. Under some optimization levels GCC will clobber
-; some of the non-volatile registers before we get a chance to save them
-; therefore, this cannot be inline asm.
-
-.text
- .align LOG2_GPR_BYTES
- .globl _GC_push_regs
-_GC_push_regs:
-
- ; Prolog
- mflr r0
- sg r0,SAVED_LR_OFFSET(r1)
- sgu r1,-SAVE_SIZE(r1)
-
-L_body:
- ; 'Push' r13-r31
- mr r3,r13
- bl BLGCP1
- mr r3,r14
- bl BLGCP1
- mr r3,r15
- bl BLGCP1
- mr r3,r16
- bl BLGCP1
- mr r3,r17
- bl BLGCP1
- mr r3,r18
- bl BLGCP1
- mr r3,r19
- bl BLGCP1
- mr r3,r20
- bl BLGCP1
- mr r3,r21
- bl BLGCP1
- mr r3,r22
- bl BLGCP1
- mr r3,r23
- bl BLGCP1
- mr r3,r24
- bl BLGCP1
- mr r3,r25
- bl BLGCP1
- mr r3,r26
- bl BLGCP1
- mr r3,r27
- bl BLGCP1
- mr r3,r28
- bl BLGCP1
- mr r3,r29
- bl BLGCP1
- mr r3,r30
- bl BLGCP1
- mr r3,r31
- bl BLGCP1
-
-L_epilog:
- ; Epilog
- lg r0,SAVE_SIZE+SAVED_LR_OFFSET(r1)
- addi r1,r1,SAVE_SIZE
- mtlr r0
-
- ; Return
- blr
-LFE0:
-
-; eh frames, for those that want 'em.
-
-#define EH_DATA_ALIGN_FACT MODE_CHOICE(0x7c,0x78)
-#define EH_FRAME_OFFSET MODE_CHOICE(0x40,0x70)
-
- .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
-EH_frame1:
- .set L$set$0,LECIE1-LSCIE1
- .long L$set$0 ; Length of Common Information Entry
-LSCIE1:
- .long 0 ; CIE Identifier Tag
- .byte 0x1 ; CIE Version
- .ascii "zR\0" ; CIE Augmentation
- .byte 0x1 ; uleb128 0x1; CIE Code Alignment Factor
- .byte EH_DATA_ALIGN_FACT ; sleb128 -4/-8; CIE Data Alignment Factor
- .byte 0x41 ; CIE RA Column
- .byte 0x1 ; uleb128 0x1; Augmentation size
- .byte 0x10 ; FDE Encoding (pcrel)
- .byte 0xc ; DW_CFA_def_cfa
- .byte 0x1 ; uleb128 0x1
- .byte 0 ; uleb128 0
- .align LOG2_GPR_BYTES
-LECIE1:
-
- .globl _GC_push_regs.eh
-_GC_push_regs.eh:
-LSFDE1:
- .set L$set$1,LEFDE1-LASFDE1
- .long L$set$1 ; FDE Length
-LASFDE1:
- .long LASFDE1-EH_frame1 ; FDE CIE offset
- .g_long _GC_push_regs-. ; FDE initial location
- .set L$set$2,LFE0-_GC_push_regs
- .g_long L$set$2 ; FDE address range
- .byte 0 ; uleb128 0; Augmentation size
- .byte 0x4 ; DW_CFA_advance_loc4
- .set L$set$3,L_body-_GC_push_regs
- .long L$set$3
- .byte 0xe ; DW_CFA_def_cfa_offset
- .byte EH_FRAME_OFFSET ; uleb128 0x40/0x70
- .byte 0x11 ; DW_CFA_offset_extended_sf
- .byte 0x41 ; uleb128 0x41
- .byte 0x7e ; sleb128 -2
- .byte 0x4 ; DW_CFA_advance_loc4
- .set L$set$4,L_epilog-L_body
- .long L$set$4
- .byte 0xe ; DW_CFA_def_cfa_offset
- .byte 0 ; uleb128 0
- .align LOG2_GPR_BYTES
-LEFDE1:
-
- .data
-#ifdef WANT_STUB
-; PIC stub stuff, generated by GCC
-
- .section __TEXT,__picsymbolstub1,symbol_stubs,pure_instructions,32
- .align LOG2_GPR_BYTES
-L_GC_push_one$stub:
- .indirect_symbol _GC_push_one
- mflr r0
- bcl 20,31,L0$_GC_push_one
-L0$_GC_push_one:
- mflr r11
- addis r11,r11,ha16(L_GC_push_one$lazy_ptr-L0$_GC_push_one)
- mtlr r0
- lgu r12,lo16(L_GC_push_one$lazy_ptr-L0$_GC_push_one)(r11)
- mtctr r12
- bctr
-
- .data
- .lazy_symbol_pointer
-L_GC_push_one$lazy_ptr:
- .indirect_symbol _GC_push_one
- .g_long dyld_stub_binding_helper
-#endif