aboutsummaryrefslogtreecommitdiff
path: root/sysdeps
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2002-07-24 17:39:23 +0000
committerUlrich Drepper <drepper@redhat.com>2002-07-24 17:39:23 +0000
commit6e96b6ec3a6a092ea3eeca1fa9b1eb61e3ab8a45 (patch)
treee3343dce0df716080655174327bd3366d1df9503 /sysdeps
parentbe45f421536b9da200c91f9088f21480308da67b (diff)
downloadglibc-6e96b6ec3a6a092ea3eeca1fa9b1eb61e3ab8a45.zip
glibc-6e96b6ec3a6a092ea3eeca1fa9b1eb61e3ab8a45.tar.gz
glibc-6e96b6ec3a6a092ea3eeca1fa9b1eb61e3ab8a45.tar.bz2
Update.
2002-07-24 Philip Blundell <philb@gnu.org> * sysdeps/unix/arm/brk.S: Improve schedule. * sysdeps/unix/sysv/linux/arm/socket.S (PUSHARGS_1): Use more efficient instruction. (__socket): Optimize return sequence. * locale/hashval.h: Make more self-contained by defining LONG_BITS.
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/unix/arm/brk.S6
-rw-r--r--sysdeps/unix/sysv/linux/arm/socket.S8
2 files changed, 6 insertions, 8 deletions
diff --git a/sysdeps/unix/arm/brk.S b/sysdeps/unix/arm/brk.S
index c68fec6..9e20dc6 100644
--- a/sysdeps/unix/arm/brk.S
+++ b/sysdeps/unix/arm/brk.S
@@ -35,8 +35,8 @@ C_LABEL(__curbrk)
SYSCALL__ (brk, 1)
#ifdef PIC
ldr r1, 1f
- add r1, r1, pc
-2: ldr r2, _cb_addr
+ ldr r2, _cb_addr
+2: add r1, pc, r1
add r1, r1, r2
#else
ldr r1, _cb_addr
@@ -45,7 +45,7 @@ SYSCALL__ (brk, 1)
mov r0, $0
RETINSTR(mov, pc, r14)
#ifdef PIC
-1: .long _GLOBAL_OFFSET_TABLE_ - 2b - 4
+1: .long _GLOBAL_OFFSET_TABLE_ - 2b - 8
_cb_addr:
.long C_SYMBOL_NAME(__curbrk)(GOTOFF)
#else
diff --git a/sysdeps/unix/sysv/linux/arm/socket.S b/sysdeps/unix/sysv/linux/arm/socket.S
index a672413..2672de7 100644
--- a/sysdeps/unix/sysv/linux/arm/socket.S
+++ b/sysdeps/unix/sysv/linux/arm/socket.S
@@ -35,7 +35,7 @@
#define __socket P(__,socket)
#endif
-#define PUSHARGS_1 stmfd sp!, {a1}
+#define PUSHARGS_1 str a1, [sp, $-4]!
#define PUSHARGS_2 stmfd sp!, {a1, a2}
#define PUSHARGS_3 stmfd sp!, {a1, a2, a3}
#define PUSHARGS_4 stmfd sp!, {a1, a2, a3, a4}
@@ -78,10 +78,8 @@ ENTRY (__socket)
/* r0 is < 0 if there was an error. */
cmn r0, $124
- bhs PLTJMP(syscall_error)
-
- /* Successful; return the syscall's value. */
- ret
+ RETINSTR(movcc, pc, r14)
+ b PLTJMP(syscall_error)
PSEUDO_END (__socket)