about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/i386/sysdep.h
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix/sysv/linux/i386/sysdep.h')
-rw-r--r--sysdeps/unix/sysv/linux/i386/sysdep.h7
1 files changed, 3 insertions, 4 deletions
diff --git a/sysdeps/unix/sysv/linux/i386/sysdep.h b/sysdeps/unix/sysv/linux/i386/sysdep.h
index 6dbeb3d297..ed0bdf6b7d 100644
--- a/sysdeps/unix/sysv/linux/i386/sysdep.h
+++ b/sysdeps/unix/sysv/linux/i386/sysdep.h
@@ -99,11 +99,10 @@ __i686.get_pc_thunk.reg:						      \
 #   define SYSCALL_ERROR_HANDLER					      \
 0:SETUP_PIC_REG (cx);							      \
   addl $_GLOBAL_OFFSET_TABLE_, %ecx;					      \
+  movl errno@gotntpoff(%ecx), %ecx;					      \
   xorl %edx, %edx;							      \
   subl %eax, %edx;							      \
-  movl %gs:0, %eax;							      \
-  subl errno@gottpoff(%ecx), %eax;					      \
-  movl %edx, (%eax);							      \
+  movl %edx, %gs:0(%ecx);						      \
   orl $-1, %eax;							      \
   jmp L(pseudo_end);
 #  else
@@ -127,7 +126,7 @@ __i686.get_pc_thunk.reg:						      \
 #  endif
 # else
 #  define SYSCALL_ERROR_HANDLER						      \
-0:define SETUP_PIC_REG(cx);						      \
+0:SETUP_PIC_REG(cx);						      \
   addl $_GLOBAL_OFFSET_TABLE_, %ecx;					      \
   xorl %edx, %edx;							      \
   subl %eax, %edx;							      \