]> sourceware.org Git - glibc.git/commitdiff
hppa: Optimize syscall sequence.
authorCarlos O'Donell <carlos@systemhalted.org>
Tue, 30 Oct 2012 03:04:43 +0000 (23:04 -0400)
committerCarlos O'Donell <carlos@systemhalted.org>
Tue, 30 Oct 2012 03:11:06 +0000 (23:11 -0400)
We remove an extraneous nop from the syscall sequence.
No DO_CALL* may end in an instruction with a delay slot.

ports/ChangeLog.hppa
ports/sysdeps/unix/sysv/linux/hppa/sysdep.h

index 62f41477ee718a971abf926e69709cf4bb3cecd0..6d5d5a33c1a70b9d29569b55ec26715f2a8c017a 100644 (file)
@@ -1,5 +1,11 @@
 2012-10-29  Carlos O'Donell  <carlos@systemhalted.org>
 
+       * 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  <aj@suse.de>
index 9ef8b50303f94eefdbddd4774ab1ec4f8f4151a6..5c0db64b7eb647e44a839490a97b78f92da562aa 100644 (file)
@@ -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__
    which means
        ENTRY(name)
        DO_CALL(...)
-       nop
-       bv 0(2)
-       nop
+       bv,n 0(2)
 */
 
 #define        PSEUDO(name, syscall_name, args)                        \
   /* 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    \
   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
 
   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
 
This page took 0.044621 seconds and 5 git commands to generate.