summaryrefslogtreecommitdiff
path: root/powerpc_darwin_mach_dep.s
diff options
context:
space:
mode:
authorPaolo Molaro <lupus@oddwiz.org>2006-01-24 11:37:10 +0000
committerguest <ivmai@mail.ru>2011-07-29 15:28:02 +0400
commitdc5d3c40f99d052ff2b9ca6e670eaebe62606bdd (patch)
treed1b8381f437e7b1c25a9785483bd4b2020f15479 /powerpc_darwin_mach_dep.s
parent7cc0cf3e9b380aa96180ae145e9fedc4bde76fa1 (diff)
downloadbdwgc-dc5d3c40f99d052ff2b9ca6e670eaebe62606bdd.tar.gz
Tue Jan 24 12:34:06 CET 2006 Paolo Molaro <lupus@ximian.com>
* *: update from upstream changes. svn path=/trunk/mono/; revision=55979
Diffstat (limited to 'powerpc_darwin_mach_dep.s')
-rw-r--r--powerpc_darwin_mach_dep.s9
1 files changed, 5 insertions, 4 deletions
diff --git a/powerpc_darwin_mach_dep.s b/powerpc_darwin_mach_dep.s
index 92f2c93c..fd23110b 100644
--- a/powerpc_darwin_mach_dep.s
+++ b/powerpc_darwin_mach_dep.s
@@ -1,7 +1,7 @@
; 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 can't be inline asm.
+; therefore, this cannot be inline asm.
.text
.align 2
@@ -64,7 +64,8 @@ _GC_push_regs:
; PIC stuff, generated by GCC
.data
-.picsymbol_stub
+.section __TEXT,__picsymbolstub1,symbol_stubs,pure_instructions,32
+ .align 2
L_GC_push_one$stub:
.indirect_symbol _GC_push_one
mflr r0
@@ -73,12 +74,12 @@ 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)
+ lwzu 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
+