From 4ebdb0102714696914e9425bf2e4c40666ee9beb Mon Sep 17 00:00:00 2001 From: Carlos O'Donell Date: Mon, 29 Oct 2012 23:04:43 -0400 Subject: 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. --- ports/ChangeLog.hppa | 6 ++++++ ports/sysdeps/unix/sysv/linux/hppa/sysdep.h | 14 ++++---------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/ports/ChangeLog.hppa b/ports/ChangeLog.hppa index 62f41477ee..6d5d5a33c1 100644 --- a/ports/ChangeLog.hppa +++ b/ports/ChangeLog.hppa @@ -1,5 +1,11 @@ 2012-10-29 Carlos O'Donell + * sysdeps/unix/sysv/linux/hppa/sysdep.h: Don't include sys/syscall.h. + Document nop removal. + (PSEUDO): Remove nop. + (PSEUDO_NOERRNO): Likeise. + (PSEUDO_ERRVAL): Likewise. + * sysdeps/unix/sysv/linux/hppa/sysdep.h: Remove trailing whitespace. 2012-10-26 Andreas Jaeger 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 #include -#include /* 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 -- cgit v1.2.3