aboutsummaryrefslogtreecommitdiff
path: root/ports/sysdeps/unix
diff options
context:
space:
mode:
authorCarlos O'Donell <carlos@systemhalted.org>2012-10-29 23:04:43 -0400
committerCarlos O'Donell <carlos@systemhalted.org>2012-10-29 23:11:06 -0400
commit4ebdb0102714696914e9425bf2e4c40666ee9beb (patch)
treed8274b221b3f08ae4c13cb5a1ed85027a1e843b2 /ports/sysdeps/unix
parentf0b8ce0c73a9871c3f90c575c0c8f8c1048371e3 (diff)
downloadglibc-4ebdb0102714696914e9425bf2e4c40666ee9beb.tar
glibc-4ebdb0102714696914e9425bf2e4c40666ee9beb.tar.gz
glibc-4ebdb0102714696914e9425bf2e4c40666ee9beb.tar.bz2
glibc-4ebdb0102714696914e9425bf2e4c40666ee9beb.zip
hppa: Optimize syscall sequence.
We remove an extraneous nop from the syscall sequence. No DO_CALL* may end in an instruction with a delay slot.
Diffstat (limited to 'ports/sysdeps/unix')
-rw-r--r--ports/sysdeps/unix/sysv/linux/hppa/sysdep.h14
1 files changed, 4 insertions, 10 deletions
diff --git a/ports/sysdeps/unix/sysv/linux/hppa/sysdep.h b/ports/sysdeps/unix/sysv/linux/hppa/sysdep.h
index 9ef8b50303..5c0db64b7e 100644
--- a/ports/sysdeps/unix/sysv/linux/hppa/sysdep.h
+++ b/ports/sysdeps/unix/sysv/linux/hppa/sysdep.h
@@ -20,7 +20,6 @@
#include <asm/unistd.h>
#include <sysdeps/generic/sysdep.h>
-#include <sys/syscall.h>
/* In order to get __set_errno() definition in INLINE_SYSCALL. */
#ifndef __ASSEMBLER__
@@ -168,9 +167,7 @@
which means
ENTRY(name)
DO_CALL(...)
- nop
- bv 0(2)
- nop
+ bv,n 0(2)
*/
#define PSEUDO(name, syscall_name, args) \
@@ -178,8 +175,7 @@
/* If necc. load args from stack */ ASM_LINE_SEP \
DOARGS_##args ASM_LINE_SEP \
DO_CALL (syscall_name, args) ASM_LINE_SEP \
- UNDOARGS_##args ASM_LINE_SEP \
- nop ASM_LINE_SEP
+ UNDOARGS_##args ASM_LINE_SEP
#define ret \
/* Return value set by ERRNO code */ ASM_LINE_SEP \
@@ -194,8 +190,7 @@
ENTRY_LEAF (name) ASM_LINE_SEP \
DOARGS_##args ASM_LINE_SEP \
DO_CALL_NOERRNO (syscall_name, args) ASM_LINE_SEP \
- UNDOARGS_##args ASM_LINE_SEP \
- nop ASM_LINE_SEP
+ UNDOARGS_##args ASM_LINE_SEP
#define ret_NOERRNO ret
@@ -209,8 +204,7 @@
ENTRY_LEAF (name) ASM_LINE_SEP \
DOARGS_##args ASM_LINE_SEP \
DO_CALL_ERRVAL (syscall_name, args) ASM_LINE_SEP \
- UNDOARGS_##args ASM_LINE_SEP \
- nop ASM_LINE_SEP
+ UNDOARGS_##args ASM_LINE_SEP
#define ret_ERRVAL ret