Index: src/runtime/lookup-asm/lookup-asm-sparc-elf.S ================================================================== --- src/runtime/lookup-asm/lookup-asm-sparc-elf.S +++ src/runtime/lookup-asm/lookup-asm-sparc-elf.S @@ -62,11 +62,11 @@ .macro generate_lookup_super name lookup \name: ld [%o0], %o2 cmp %o2, 0 - beq ret_nil + beq,a ret_nil nop ld [%o0 + 4], %o2 ba .Lmain_\lookup ld [%o2 + 32], %o2 @@ -79,11 +79,11 @@ generate_lookup_super objc_msg_lookup_super objc_msg_lookup generate_lookup_super objc_msg_lookup_super_stret objc_msg_lookup_stret ret_nil: #ifdef PIC - or %o7, %g0, %o2 + mov %o7, %g1 sethi %hi(_GLOBAL_OFFSET_TABLE_ - 4), %o1 call 0f add %o1, %lo(_GLOBAL_OFFSET_TABLE_ + 4), %o1 0: @@ -90,11 +90,11 @@ add %o7, %o1, %o1 sethi %hi(nil_method), %o0 or %o0, %lo(nil_method), %o0 - jmpl %o2 + 8, %g0 + jmpl %g1 + 8, %g0 ld [%o1 + %o0], %o0 #else sethi %hi(nil_method), %o0 retl or %o0, %lo(nil_method), %o0