GNU C Library master sources branch master updated. glibc-2.22-610-gd29d57e

hjl@sourceware.org hjl@sourceware.org
Wed Dec 16 13:22:00 GMT 2015


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  d29d57eed9a6acb646663a02b7eb2bece2c433dc (commit)
      from  3da825ce483903e3a881a016113b3e59fd4041de (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=d29d57eed9a6acb646663a02b7eb2bece2c433dc

commit d29d57eed9a6acb646663a02b7eb2bece2c433dc
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Dec 16 05:19:57 2015 -0800

    Add REGISTERS_CLOBBERED_BY_SYSCALL for x86-64
    
    X86-64 system calls use a different calling convention, which clobbers
    CC, %r11 an %rcx registers.  Define REGISTERS_CLOBBERED_BY_SYSCALL for
    x86-64 inline asm statements.
    
    	* sysdeps/unix/sysv/linux/x86_64/sysdep.h
    	(REGISTERS_CLOBBERED_BY_SYSCALL): New.
    	(INTERNAL_SYSCALL_NCS): Use it.
    	(INTERNAL_SYSCALL_NCS_TYPES): Likewise.

diff --git a/ChangeLog b/ChangeLog
index 21e217a..17b04cd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2015-12-16  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* sysdeps/unix/sysv/linux/x86_64/sysdep.h
+	(REGISTERS_CLOBBERED_BY_SYSCALL): New.
+	(INTERNAL_SYSCALL_NCS): Use it.
+	(INTERNAL_SYSCALL_NCS_TYPES): Likewise.
+
 2015-12-16  Florian Weimer  <fweimer@redhat.com>
 
 	[BZ #19243]
diff --git a/sysdeps/unix/sysv/linux/x86_64/sysdep.h b/sysdeps/unix/sysv/linux/x86_64/sysdep.h
index fc132f6..c364d08 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sysdep.h
+++ b/sysdeps/unix/sysv/linux/x86_64/sysdep.h
@@ -218,6 +218,9 @@
 # undef INTERNAL_SYSCALL_DECL
 # define INTERNAL_SYSCALL_DECL(err) do { } while (0)
 
+/* Registers clobbered by syscall.  */
+# define REGISTERS_CLOBBERED_BY_SYSCALL "cc", "r11", "cx"
+
 # define INTERNAL_SYSCALL_NCS(name, err, nr, args...) \
   ({									      \
     unsigned long int resultvar;					      \
@@ -226,7 +229,7 @@
     asm volatile (							      \
     "syscall\n\t"							      \
     : "=a" (resultvar)							      \
-    : "0" (name) ASM_ARGS_##nr : "memory", "cc", "r11", "cx");		      \
+    : "0" (name) ASM_ARGS_##nr : "memory", REGISTERS_CLOBBERED_BY_SYSCALL);   \
     (long int) resultvar; })
 # undef INTERNAL_SYSCALL
 # define INTERNAL_SYSCALL(name, err, nr, args...) \
@@ -240,7 +243,7 @@
     asm volatile (							      \
     "syscall\n\t"							      \
     : "=a" (resultvar)							      \
-    : "0" (name) ASM_ARGS_##nr : "memory", "cc", "r11", "cx");		      \
+    : "0" (name) ASM_ARGS_##nr : "memory", REGISTERS_CLOBBERED_BY_SYSCALL);   \
     (long int) resultvar; })
 # undef INTERNAL_SYSCALL_TYPES
 # define INTERNAL_SYSCALL_TYPES(name, err, nr, args...) \

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                               |    7 +++++++
 sysdeps/unix/sysv/linux/x86_64/sysdep.h |    7 +++++--
 2 files changed, 12 insertions(+), 2 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources



More information about the Glibc-cvs mailing list