summaryrefslogtreecommitdiff
path: root/sysdeps/sparc/sparc64
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2006-03-06 01:34:09 +0000
committerRoland McGrath <roland@gnu.org>2006-03-06 01:34:09 +0000
commit043cee3700d01624d694d8e1afc76a666309f89c (patch)
treeaa2f8a2b421429ca84eba888fefd946df6e3d669 /sysdeps/sparc/sparc64
parenta26c855c73bf2329496f9b74535045c22c92a12d (diff)
* shlib-versions: Use sparc64.*- for CPU patterns.
Diffstat (limited to 'sysdeps/sparc/sparc64')
-rw-r--r--sysdeps/sparc/sparc64/dl-trampoline.S47
-rw-r--r--sysdeps/sparc/sparc64/elf/start.S4
-rw-r--r--sysdeps/sparc/sparc64/memcpy.S4
-rw-r--r--sysdeps/sparc/sparc64/sparcv9v/memset.S2
4 files changed, 56 insertions, 1 deletions
diff --git a/sysdeps/sparc/sparc64/dl-trampoline.S b/sysdeps/sparc/sparc64/dl-trampoline.S
index f85527f4c4..81e5c556c3 100644
--- a/sysdeps/sparc/sparc64/dl-trampoline.S
+++ b/sysdeps/sparc/sparc64/dl-trampoline.S
@@ -30,7 +30,13 @@
.globl _dl_runtime_resolve_0
.type _dl_runtime_resolve_0, @function
_dl_runtime_resolve_0:
+ cfi_startproc
+
save %sp, -192, %sp
+ cfi_def_cfa_register(%fp)
+ cfi_window_save
+ cfi_register(%o7, %i7)
+
sethi %hi(1047552), %l2
ldx [%g4 + 32 + 8], %o0
sub %g1, %g4, %l0
@@ -54,6 +60,9 @@ _dl_runtime_resolve_0:
sllx %l0, 3, %o1
jmp %o0
restore
+
+ cfi_endproc
+
.size _dl_runtime_resolve_0, .-_dl_runtime_resolve_0
/* %g1: PLT offset loaded by PLT entry
@@ -64,7 +73,13 @@ _dl_runtime_resolve_0:
.globl _dl_runtime_resolve_1
.type _dl_runtime_resolve_1, @function
_dl_runtime_resolve_1:
+ cfi_startproc
+
save %sp, -192, %sp
+ cfi_def_cfa_register(%fp)
+ cfi_window_save
+ cfi_register(%o7, %i7)
+
srlx %g1, 12, %o1
ldx [%g4 + 8], %o0
add %o1, %o1, %o3
@@ -73,6 +88,9 @@ _dl_runtime_resolve_1:
add %o1, %o3, %o1
jmp %o0
restore
+
+ cfi_endproc
+
.size _dl_runtime_resolve_1, .-_dl_runtime_resolve_1
/* For the profiling cases we pass in our stack frame
@@ -92,6 +110,8 @@ _dl_runtime_resolve_1:
.globl _dl_profile_save_regs
.type _dl_profile_save_regs, @function
_dl_profile_save_regs:
+ cfi_startproc
+
stx %l0, [%sp + STACK_BIAS + ( 0 * 8)]
stx %l1, [%sp + STACK_BIAS + ( 1 * 8)]
stx %l2, [%sp + STACK_BIAS + ( 2 * 8)]
@@ -125,6 +145,9 @@ _dl_profile_save_regs:
std %f28, [%sp + STACK_BIAS + (30 * 8)]
retl
std %f30, [%sp + STACK_BIAS + (31 * 8)]
+
+ cfi_endproc
+
.size _dl_profile_save_regs, .-_dl_profile_save_regs
/* If we are going to call pltexit, then we must replicate
@@ -134,6 +157,8 @@ _dl_profile_save_regs:
.globl _dl_profile_invoke
.type _dl_profile_invoke, @function
_dl_profile_invoke:
+ cfi_startproc
+
sub %sp, %l0, %sp
1:
srlx %l0, 3, %l7
@@ -180,6 +205,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
* %g4: callers PC, which is PLT0 + 24, therefore we
* add (32 + 8) to get the address of PLT2 which
@@ -189,10 +218,16 @@ _dl_profile_invoke:
.globl _dl_runtime_profile_0
.type _dl_runtime_profile_0, @function
_dl_runtime_profile_0:
+ cfi_startproc
+
brz,a,pn %fp, 1f
mov 192, %g5
sub %fp, %sp, %g5
1: save %sp, -336, %sp
+ cfi_def_cfa_register(%fp)
+ cfi_window_save
+ cfi_register(%o7, %i7)
+
sethi %hi(1047552), %l2
ldx [%g4 + 32 + 8], %o0
sub %g1, %g4, %l0
@@ -236,6 +271,9 @@ _dl_runtime_profile_0:
1: jmp %o0
restore
+
+ cfi_endproc
+
.size _dl_runtime_profile_0, .-_dl_runtime_profile_0
/* %g1: PLT offset loaded by PLT entry
@@ -246,10 +284,16 @@ _dl_runtime_profile_0:
.globl _dl_runtime_profile_1
.type _dl_runtime_profile_1, @function
_dl_runtime_profile_1:
+ cfi_startproc
+
brz,a,pn %fp, 1f
mov 192, %g5
sub %fp, %sp, %g5
1: save %sp, -336, %sp
+ cfi_def_cfa_register(%fp)
+ cfi_window_save
+ cfi_register(%o7, %i7)
+
srlx %g1, 12, %o1
ldx [%g4 + 8], %o0
add %o1, %o1, %o3
@@ -277,4 +321,7 @@ _dl_runtime_profile_1:
1: jmp %o0
restore
+
+ cfi_endproc
+
.size _dl_runtime_resolve_1, .-_dl_runtime_resolve_1
diff --git a/sysdeps/sparc/sparc64/elf/start.S b/sysdeps/sparc/sparc64/elf/start.S
index c008c6cea0..df44cae068 100644
--- a/sysdeps/sparc/sparc64/elf/start.S
+++ b/sysdeps/sparc/sparc64/elf/start.S
@@ -48,6 +48,7 @@
.global _start
.type _start,#function
_start:
+ cfi_startproc
#ifdef SHARED
sethi %hi(_GLOBAL_OFFSET_TABLE_-4), %l7
@@ -59,6 +60,7 @@ _start:
drop their arguments. */
mov %g0, %fp
sub %sp, 6*8, %sp
+ cfi_adjust_cfa_offset(6*8)
/* Extract the arguments and environment as encoded on the stack. The
argument info starts after one register window (16 words) past the SP,
@@ -92,6 +94,8 @@ _start:
/* Die very horribly if exit returns. */
illtrap 0
+ cfi_endproc
+
.size _start, .-_start
/* Define a symbol for the first piece of initialized data. */
diff --git a/sysdeps/sparc/sparc64/memcpy.S b/sysdeps/sparc/sparc64/memcpy.S
index a3f7b96a91..5993358017 100644
--- a/sysdeps/sparc/sparc64/memcpy.S
+++ b/sysdeps/sparc/sparc64/memcpy.S
@@ -209,6 +209,7 @@ ENTRY(bcopy)
END(bcopy)
.align 32
+ENTRY(__memcpy_large)
200: be,pt %xcc, 201f /* CTI */
andcc %o0, 0x38, %g5 /* IEU1 Group */
mov 8, %g1 /* IEU0 */
@@ -443,6 +444,7 @@ END(bcopy)
stb %o5, [%o0 - 1] /* Store */
209: retl
mov %g4, %o0
+END(__memcpy_large)
#ifdef USE_BPR
@@ -698,6 +700,7 @@ ENTRY(memcpy)
END(memcpy)
.align 32
+ENTRY(__memmove_slowpath)
228: andcc %o2, 1, %g0 /* IEU1 Group */
be,pt %icc, 2f+4 /* CTI */
1: ldub [%o1 - 1], %o5 /* LOAD Group */
@@ -718,6 +721,7 @@ END(memcpy)
mov %g4, %o0
219: retl
nop
+END(__memmove_slowpath)
.align 32
ENTRY(memmove)
diff --git a/sysdeps/sparc/sparc64/sparcv9v/memset.S b/sysdeps/sparc/sparc64/sparcv9v/memset.S
index 7a51ef77dc..ac0a50cf8e 100644
--- a/sysdeps/sparc/sparc64/sparcv9v/memset.S
+++ b/sysdeps/sparc/sparc64/sparcv9v/memset.S
@@ -45,6 +45,7 @@ ENTRY(memset)
sllx %o2, 32, %g1
ba,pt %XCC, 1f
or %g1, %o2, %o2
+END(memset)
ENTRY(__bzero)
clr %o2
@@ -121,7 +122,6 @@ ENTRY(__bzero)
retl
mov %o3, %o0
END(__bzero)
-END(memset)
libc_hidden_builtin_def (memset)
weak_alias (__bzero, bzero)