This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
PATCH: Use RAX_LP and "or" to operate on return value
- From: "H.J. Lu" <hongjiu dot lu at intel dot com>
- To: GNU C Library <libc-alpha at sourceware dot org>
- Date: Wed, 16 May 2012 20:14:21 -0700
- Subject: PATCH: Use RAX_LP and "or" to operate on return value
- Reply-to: "H.J. Lu" <hjl dot tools at gmail dot com>
Hi,
This patch uses RAX_LP and "or" to operate on return value. Tested
on Linux/x86-64. OK to install? Thanks.
H.J.
---
* 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.
diff --git a/sysdeps/unix/sysv/linux/x86_64/sysdep.S b/sysdeps/unix/sysv/linux/x86_64/sysdep.S
index 0de339a..4372c56 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 66d90f2..b13fdf4 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