about summary refs log tree commit diff
path: root/sysdeps/sparc/sparc64/elf
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/sparc/sparc64/elf')
-rw-r--r--sysdeps/sparc/sparc64/elf/crtbegin.S3
-rw-r--r--sysdeps/sparc/sparc64/elf/crtend.S3
-rw-r--r--sysdeps/sparc/sparc64/elf/start.S24
3 files changed, 8 insertions, 22 deletions
diff --git a/sysdeps/sparc/sparc64/elf/crtbegin.S b/sysdeps/sparc/sparc64/elf/crtbegin.S
index 318e7a6a3f..c2fe01f6b0 100644
--- a/sysdeps/sparc/sparc64/elf/crtbegin.S
+++ b/sysdeps/sparc/sparc64/elf/crtbegin.S
@@ -40,7 +40,7 @@ __DTOR_LIST__:
 	.align 4
 	.type __do_global_dtors_aux,#function
 __do_global_dtors_aux:
-	save	%sp,-160,%sp
+	save	%sp,-192,%sp
 
 #ifdef PIC
 1:	call	11f
@@ -53,7 +53,6 @@ __do_global_dtors_aux:
 #else
 	sethi	%hi(__DTOR_LIST__), %l0
 	or	%l0, %lo(__DTOR_LIST__), %l0
-	add	%l0, %g4, %l0
 #endif
 
 	ba	3f
diff --git a/sysdeps/sparc/sparc64/elf/crtend.S b/sysdeps/sparc/sparc64/elf/crtend.S
index 7a5c067b07..db0ac87ecd 100644
--- a/sysdeps/sparc/sparc64/elf/crtend.S
+++ b/sysdeps/sparc/sparc64/elf/crtend.S
@@ -40,7 +40,7 @@ __DTOR_END__:
 	.align 4
 	.type __do_global_ctors_aux,#function
 __do_global_ctors_aux:
-	save	%sp,-160,%sp
+	save	%sp,-192,%sp
 
 #ifdef PIC
 1:	call	11f
@@ -53,7 +53,6 @@ __do_global_ctors_aux:
 #else
 	sethi	%hi(__CTOR_END__), %l0
 	or	%l0, %lo(__CTOR_END__), %l0
-	add	%l0, %g4, %l0
 #endif
 
 	ba	3f
diff --git a/sysdeps/sparc/sparc64/elf/start.S b/sysdeps/sparc/sparc64/elf/start.S
index 140cd366e5..1fc24619cf 100644
--- a/sysdeps/sparc/sparc64/elf/start.S
+++ b/sysdeps/sparc/sparc64/elf/start.S
@@ -38,24 +38,12 @@ _start:
 	add	%sp, STACK_BIAS+23*8, %o2
 
   /* Load the addresses of the user entry points.  */
-        sethi   %uhi(main), %o0
-        sethi   %uhi(_init), %o3
-        sethi   %uhi(_fini), %o4
-        or      %o0, %ulo(main), %o0
-        or      %o3, %ulo(_init), %o3
-        or      %o4, %ulo(_fini), %o4
-        sethi   %hi(main), %i0
-        sethi   %hi(_init), %i3
-        sethi   %hi(_fini), %i4
-	sllx	%o0, 32, %o0
-        or      %i0, %lo(main), %i0
-	sllx	%o3, 32, %o3
-        or      %i3, %lo(_init), %i3
-	sllx	%o4, 32, %o4
-        or      %i4, %lo(_fini), %i4
-	or	%o0, %i0, %o0
-	or	%o3, %i3, %o3
-	or	%o4, %i4, %o4
+        sethi   %hi(main), %o0
+        sethi   %hi(_init), %o3
+        sethi   %hi(_fini), %o4
+        or      %o0, %lo(main), %o0
+        or      %o3, %lo(_init), %o3
+        or      %o4, %lo(_fini), %o4
 
   /* When starting a binary via the dynamic linker, %g1 contains the
      address of the shared library termination function, which will be