about summary refs log tree commit diff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2012-05-18 11:05:56 -0700
committerH.J. Lu <hjl.tools@gmail.com>2012-05-18 11:05:56 -0700
commit1b74487e904d7e17eda4278598632d2cd81d8068 (patch)
tree9ca594f35403fc022a83a65d98017c77a272835e
parenta88b64b9bbf8b2a315206e211250c5529534a477 (diff)
downloadglibc-1b74487e904d7e17eda4278598632d2cd81d8068.tar.gz
glibc-1b74487e904d7e17eda4278598632d2cd81d8068.tar.xz
glibc-1b74487e904d7e17eda4278598632d2cd81d8068.zip
Use RAX_LP and "or" to operate on return value
-rw-r--r--ChangeLog7
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/sysdep.S4
-rw-r--r--sysdeps/unix/x86_64/sysdep.S6
3 files changed, 12 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index 9d07286d08..8d34cdee5f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2012-05-18  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* sysdeps/unix/x86_64/sysdep.S: Use RAX_LP to access return
+	value.  Use "or" to set return value to -1.
+	* sysdeps/unix/sysv/linux/x86_64/sysdep.S: Use RAX_LP to
+	negate return value.
+
 2012-05-18  Tulio Magno Quites Machado Filho  <tuliom@linux.vnet.ibm.com>
 
 	* sysdeps/powerpc/powerpc32/power4/Makefile (CFLAGS-wordcopy.c,
diff --git a/sysdeps/unix/sysv/linux/x86_64/sysdep.S b/sysdeps/unix/sysv/linux/x86_64/sysdep.S
index 0de339a132..4372c5610c 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sysdep.S
+++ b/sysdeps/unix/sysv/linux/x86_64/sysdep.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -32,7 +32,7 @@
 
 	.text
 ENTRY (__syscall_error)
-	negq %rax
+	neg %RAX_LP
 
 #define __syscall_error __syscall_error_1
 #include <sysdeps/unix/x86_64/sysdep.S>
diff --git a/sysdeps/unix/x86_64/sysdep.S b/sysdeps/unix/x86_64/sysdep.S
index 66d90f2d83..b13fdf4aed 100644
--- a/sysdeps/unix/x86_64/sysdep.S
+++ b/sysdeps/unix/x86_64/sysdep.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001,2002,2004,2005,2011,2012 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -34,7 +34,7 @@ __syscall_error:
 	/* We translate the system's EWOULDBLOCK error into EAGAIN.
 	   The GNU C library always defines EWOULDBLOCK==EAGAIN.
 	   EWOULDBLOCK_sys is the original number.  */
-	cmpq $EWOULDBLOCK_sys, %rax /* Is it the old EWOULDBLOCK?  */
+	cmp $EWOULDBLOCK_sys, %RAX_LP /* Is it the old EWOULDBLOCK?  */
 	jne notb		/* Branch if not.  */
 	movl $EAGAIN, %eax	/* Yes; translate it to EAGAIN.  */
 notb:
@@ -45,7 +45,7 @@ notb:
 #else
 	movl %eax, %fs:C_SYMBOL_NAME(errno@TPOFF)
 #endif
-	movq $-1, %rax
+	or $-1, %RAX_LP
 	ret
 
 #undef	__syscall_error