- .text
+
+.text
.set linkageArea,24
.set params,4
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
+
+
+
+