2012-05-22 H.J. Lu <hongjiu.lu@intel.com>
+ * sysdeps/unix/sysv/linux/x86_64/sysdep.h (SYSCALL_SET_ERRNO):
+ Use "neg %eax".
+
* sysdeps/unix/sysv/linux/bits/resource.h (RLIM_INFINITY): Use
__rlim_t cast.
(struct rusage): Use anonymous union to pad each field to
# if defined PIC && defined RTLD_PRIVATE_ERRNO
# define SYSCALL_SET_ERRNO \
lea rtld_errno(%rip), %RCX_LP; \
- xorl %edx, %edx; \
- sub %RAX_LP, %RDX_LP; \
- movl %edx, (%rcx)
+ neg %eax; \
+ movl %eax, (%rcx)
# else
# ifndef NOT_IN_libc
# define SYSCALL_ERROR_ERRNO __libc_errno
# endif
# define SYSCALL_SET_ERRNO \
movq SYSCALL_ERROR_ERRNO@GOTTPOFF(%rip), %rcx;\
- xorl %edx, %edx; \
- sub %RAX_LP, %RDX_LP; \
- movl %edx, %fs:(%rcx)
+ neg %eax; \
+ movl %eax, %fs:(%rcx);
# endif
# ifndef PIC