diff options
Diffstat (limited to 'sysdeps/sparc/sparc8')
-rw-r--r-- | sysdeps/sparc/sparc8/addmul_1.S | 7 | ||||
-rw-r--r-- | sysdeps/sparc/sparc8/mul_1.S | 7 |
2 files changed, 14 insertions, 0 deletions
diff --git a/sysdeps/sparc/sparc8/addmul_1.S b/sysdeps/sparc/sparc8/addmul_1.S index fbaacfda4f..d1de0c3649 100644 --- a/sysdeps/sparc/sparc8/addmul_1.S +++ b/sysdeps/sparc/sparc8/addmul_1.S @@ -37,8 +37,15 @@ C_SYMBOL_NAME(__mpn_addmul_1): sll %o2,4,%g1 and %g1,(4-1)<<4,%g1 +#if PIC + mov %o7,%g4 ! Save return address register + call 1f + add %o7,LL-1f,%g3 +1: mov %g4,%o7 ! Restore return address register +#else sethi %hi(LL),%g3 or %g3,%lo(LL),%g3 +#endif jmp %g3+%g1 nop LL: diff --git a/sysdeps/sparc/sparc8/mul_1.S b/sysdeps/sparc/sparc8/mul_1.S index 9c21768eb1..42717be33b 100644 --- a/sysdeps/sparc/sparc8/mul_1.S +++ b/sysdeps/sparc/sparc8/mul_1.S @@ -34,8 +34,15 @@ C_SYMBOL_NAME(__mpn_mul_1): sll %o2,4,%g1 and %g1,(4-1)<<4,%g1 +#if PIC + mov %o7,%g4 ! Save return address register + call 1f + add %o7,LL-1f,%g3 +1: mov %g4,%o7 ! Restore return address register +#else sethi %hi(LL),%g3 or %g3,%lo(LL),%g3 +#endif jmp %g3+%g1 ld [%o1+0],%o4 ! 1 LL: |