OSDN Git Service

* config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Set this
[pf3gnuchains/gcc-fork.git] / boehm-gc / powerpc_macosx_mach_dep.s
index fad41d1..92f0628 100644 (file)
@@ -1,4 +1,5 @@
-    .text
+       
+.text
     
     .set   linkageArea,24
     .set   params,4
@@ -15,52 +16,80 @@ _GC_push_regs:
     stw     r0,8(r1)    ; save return address
     stwu    r1,-spaceToSave(r1)   ; skip over caller save area
     ;
-    mr      r3,r2         ; mark from r2. Well I'm not really sure
+    mr      r3,r2         ; mark from r2. Well Im not really sure
                           ; that this is necessary or even the right
-                          ; thing to do - at least it doesn't harm...
-                          ; According to Apple's docs it points to
+                          ; thing to do - at least it doesnt harm...
+                          ; According to Apples docs it points to
                           ; the direct data area, whatever that is...
-    bl             _GC_push_one
+    bl             L_GC_push_one$stub
     mr      r3,r13        ; mark from r13-r31
-    bl             _GC_push_one
+    bl             L_GC_push_one$stub
     mr      r3,r14
-    bl             _GC_push_one
+    bl             L_GC_push_one$stub
     mr      r3,r15
-    bl             _GC_push_one
+    bl             L_GC_push_one$stub
     mr      r3,r16
-    bl             _GC_push_one
+    bl             L_GC_push_one$stub
     mr      r3,r17
-    bl             _GC_push_one
+    bl             L_GC_push_one$stub
     mr      r3,r18
-    bl             _GC_push_one
+    bl             L_GC_push_one$stub
     mr      r3,r19
-    bl             _GC_push_one
+    bl             L_GC_push_one$stub
     mr      r3,r20
-    bl             _GC_push_one
+    bl             L_GC_push_one$stub
     mr      r3,r21
-    bl             _GC_push_one
+    bl             L_GC_push_one$stub
     mr      r3,r22
-    bl             _GC_push_one
+    bl             L_GC_push_one$stub
     mr      r3,r23
-    bl             _GC_push_one
+    bl             L_GC_push_one$stub
     mr      r3,r24
-    bl             _GC_push_one
+    bl             L_GC_push_one$stub
     mr      r3,r25
-    bl             _GC_push_one
+    bl             L_GC_push_one$stub
     mr      r3,r26
-    bl             _GC_push_one
+    bl             L_GC_push_one$stub
     mr      r3,r27
-    bl             _GC_push_one
+    bl             L_GC_push_one$stub
     mr      r3,r28
-    bl             _GC_push_one
+    bl             L_GC_push_one$stub
     mr      r3,r29
-    bl             _GC_push_one
+    bl             L_GC_push_one$stub
     mr      r3,r30
-    bl             _GC_push_one
+    bl             L_GC_push_one$stub
     mr      r3,r31
-    bl             _GC_push_one
+    bl             L_GC_push_one$stub
     ; EPILOG
     lwz     r0,spaceToSave8(r1)   ; get return address back
     mtlr    r0    ; reset link register
     addic   r1,r1,spaceToSave   ; restore stack pointer
     blr
+
+.data
+.picsymbol_stub
+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
+       lwz r12,lo16(L_GC_push_one$lazy_ptr-L0$_GC_push_one)(r11)
+       mtctr r12
+       addi r11,r11,lo16(L_GC_push_one$lazy_ptr-L0$_GC_push_one)
+       bctr
+.data
+.lazy_symbol_pointer
+L_GC_push_one$lazy_ptr:
+       .indirect_symbol _GC_push_one
+       .long dyld_stub_binding_helper
+.non_lazy_symbol_pointer
+L_GC_push_one$non_lazy_ptr:
+       .indirect_symbol _GC_push_one
+       .long 0
+       
+
+
+