aboutsummaryrefslogtreecommitdiff
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; \