Merge pull request #5714 from alexischr/update_bockbuild
[mono.git] / libgc / powerpc_darwin_mach_dep.s
index 92f2c93ca8d7ead98539a97f5a688c0affa5537e..fd23110b80b511db8d95e32e6629587b7e62907b 100644 (file)
@@ -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
+