Use "neg %eax" in x86_64 SYSCALL_SET_ERRNO

This commit is contained in:
H.J. Lu 2012-05-22 05:34:36 -07:00
parent 5e1a27a96d
commit 0e44a77e48
2 changed files with 7 additions and 6 deletions

View File

@ -1,5 +1,8 @@
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

View File

@ -115,9 +115,8 @@
# 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
@ -126,9 +125,8 @@
# 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