]> sourceware.org Git - glibc.git/commitdiff
Update.
authorUlrich Drepper <drepper@redhat.com>
Thu, 28 Nov 2002 08:32:24 +0000 (08:32 +0000)
committerUlrich Drepper <drepper@redhat.com>
Thu, 28 Nov 2002 08:32:24 +0000 (08:32 +0000)
2002-11-28  Ulrich Drepper  <drepper@redhat.com>

* sysdeps/unix/sysv/linux/x86_64/vfork.S: Don't trash the CPU's
branch prediction buffers by using unpaired call/ret.

ChangeLog
sysdeps/unix/sysv/linux/x86_64/vfork.S

index 74344ba2f1ec9e0738f85ee3ccc12c6f7e7e5e57..6f33fb4ba303a6fadc6388458c3e23aa652f3824 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2002-11-28  Ulrich Drepper  <drepper@redhat.com>
+
+       * sysdeps/unix/sysv/linux/x86_64/vfork.S: Don't trash the CPU's
+       branch prediction buffers by using unpaired call/ret.
+
 2002-11-27  Ulrich Drepper  <drepper@redhat.com>
 
        * sysdeps/unix/sysv/linux/i386/sysdep.h (ASMFMT_2): Fix typo in
index 79f3260efc7a3e4e7c823d9e5ed41ff8d0b417af..3315df7253fb349000cc3614c3885db347bb95e1 100644 (file)
@@ -29,22 +29,19 @@ ENTRY (__vfork)
 
        /* Pop the return PC value into RDI.  We need a register that
           is preserved by the syscall and that we're allowed to destroy. */
-       popq %rdi
+       popq    %rdi
 
        /* Stuff the syscall number in RAX and enter into the kernel.  */
        movl    $SYS_ify (vfork), %eax
        syscall
-       cmpl    $-4095, %eax
-       jae     .Lerror         /* Branch forward if it failed.  */
-
-       /* Jump to the return PC.  */
-       jmp     *%rdi
 
-.Lerror:
        /* Push back the return PC.  */
        pushq   %rdi
-       jmp     SYSCALL_ERROR_LABEL
 
+       cmpl    $-4095, %eax
+       jae SYSCALL_ERROR_LABEL         /* Branch forward if it failed.  */
+
+       /* Normal return.  */
 .Lpseudo_end:
        ret
 
This page took 0.043054 seconds and 5 git commands to generate.