From: Carlos O'Donell Date: Tue, 30 Oct 2012 03:04:43 +0000 (-0400) Subject: hppa: Optimize syscall sequence. X-Git-Tag: glibc-2.17~333 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4ebdb0102714696914e9425bf2e4c40666ee9beb;p=thirdparty%2Fglibc.git 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. --- diff --git a/ports/ChangeLog.hppa b/ports/ChangeLog.hppa index 62f41477ee7..6d5d5a33c1a 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 9ef8b50303f..5c0db64b7eb 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