X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=libgc%2Fpowerpc_darwin_mach_dep.s;h=fd23110b80b511db8d95e32e6629587b7e62907b;hb=HEAD;hp=92f2c93ca8d7ead98539a97f5a688c0affa5537e;hpb=234225d112c4b018b8d1796f4c06a15812137500;p=mono.git diff --git a/libgc/powerpc_darwin_mach_dep.s b/libgc/powerpc_darwin_mach_dep.s index 92f2c93ca8d..fd23110b80b 100644 --- a/libgc/powerpc_darwin_mach_dep.s +++ b/libgc/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 +