diff options
Diffstat (limited to 'sysdeps/sparc/sparc32/dl-trampoline.S')
-rw-r--r-- | sysdeps/sparc/sparc32/dl-trampoline.S | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/sysdeps/sparc/sparc32/dl-trampoline.S b/sysdeps/sparc/sparc32/dl-trampoline.S index 4b7853029a..b0f86dda4e 100644 --- a/sysdeps/sparc/sparc32/dl-trampoline.S +++ b/sysdeps/sparc/sparc32/dl-trampoline.S @@ -30,13 +30,22 @@ .globl _dl_runtime_resolve .type _dl_runtime_resolve, @function _dl_runtime_resolve: + cfi_startproc + save %sp, -104, %sp + cfi_def_cfa_register(%fp) + cfi_window_save + cfi_register (%o7, %i7) + ld [%g2 + 8], %o0 srl %g1, 10, %o1 call _dl_fixup sub %o1, 4*12, %o1 jmp %o0 restore + + cfi_endproc + .size _dl_runtime_resolve, .-_dl_runtime_resolve /* For the profiling cases we pass in our stack frame @@ -56,6 +65,8 @@ _dl_runtime_resolve: .globl _dl_profile_save_regs .type _dl_profile_save_regs, @function _dl_profile_save_regs: + cfi_startproc + std %l0, [%sp + ( 0 * 8)] std %l2, [%sp + ( 1 * 8)] std %l4, [%sp + ( 2 * 8)] @@ -67,6 +78,9 @@ _dl_profile_save_regs: ld [%sp + (8 * 8)], %l4 retl st %l4, [%sp + (8 * 8)] + + cfi_endproc + .size _dl_profile_save_regs, .-_dl_profile_save_regs /* If we are going to call pltexit, then we must replicate @@ -76,6 +90,8 @@ _dl_profile_save_regs: .globl _dl_profile_invoke .type _dl_profile_invoke, @function _dl_profile_invoke: + cfi_startproc + sub %sp, %l0, %sp 1: srl %l0, 3, %l7 @@ -112,6 +128,10 @@ _dl_profile_invoke: jmpl %i7 + 8, %g0 restore + cfi_endproc + + .size _dl_profile_invoke, .-_dl_profile_invoke + /* %g1: PLT offset loaded by PLT entry * %g2: callers PC, which is PLT0 + 4, and we store the * link map at PLT0 + 12, therefore we add 8 to get @@ -121,11 +141,17 @@ _dl_profile_invoke: .globl _dl_runtime_profile .type _dl_runtime_profile, @function _dl_runtime_profile: + cfi_startproc + cmp %fp, 0 be,a 1f mov 104, %g3 sub %fp, %sp, %g3 1: save %sp, -104, %sp + cfi_def_cfa_register(%fp) + cfi_window_save + cfi_register(%o7, %i7) + ld [%g2 + 8], %o0 srl %g1, 10, %o1 mov %i7, %o2 @@ -152,4 +178,7 @@ _dl_runtime_profile: 1: jmp %o0 restore + + cfi_endproc + .size _dl_runtime_profile, .-_dl_runtime_profile |