summaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/linux/sparc/sparc64/brk.S
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix/sysv/linux/sparc/sparc64/brk.S')
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/brk.S15
1 files changed, 6 insertions, 9 deletions
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/brk.S b/sysdeps/unix/sysv/linux/sparc/sparc64/brk.S
index 333f9916f8..e21b60d637 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/brk.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/brk.S
@@ -38,7 +38,7 @@ __curbrk: .skip 8
.text
ENTRY(__brk)
- save %sp, -160, %sp
+ save %sp, -192, %sp
#ifdef PIC
1: call 2f
sethi %hi(_GLOBAL_OFFSET_TABLE_-(1b-.)), %l7
@@ -49,24 +49,23 @@ ENTRY(__brk)
LOADSYSCALL(brk)
mov %i0, %o0
- ta 0x11
+ ta 0x6d
/* All the ways we can fail... */
bcs,pn %xcc, .Lerr1
nop
- brz %i0, .Lok
+ brz,pt %i0, .Lok
subcc %i0, %o0, %g0
bne,pn %xcc, .Lerr0
+ nop
/* Update __curbrk and return cleanly. */
.Lok: sethi %hi(__curbrk), %g1
or %g1, %lo(__curbrk), %g1
#ifdef PIC
ldx [%l7+%g1], %g1
- stx %o0, [%g1]
-#else
- stx %o0, [%g4+%g1]
#endif
+ stx %o0, [%g1]
mov %g0, %i0
/* Don't use "ret" cause the preprocessor will eat it. */
@@ -81,10 +80,8 @@ ENTRY(__brk)
or %g1, %lo(errno), %g1
#ifdef PIC
ldx [%l7+%g1], %g1
- st %o0, [%g1]
-#else
- st %o0, [%g4+%g1]
#endif
+ st %o0, [%g1]
#else
call __errno_location
mov %o0,%l1