]> git.ipfire.org Git - thirdparty/glibc.git/blobdiff - sysdeps/unix/sysv/linux/x86_64/sysdep.h
(CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4.
[thirdparty/glibc.git] / sysdeps / unix / sysv / linux / x86_64 / sysdep.h
index 5dfffca455a720af36eab6964bb2a027279b90fb..fd92d7ae16d13d97c14bb17f02eaaff1e6f69487 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+/* Copyright (C) 2001,02,03,04 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
 # define SYSCALL_ERROR_HANDLER                 \
 0:                                             \
   leaq rtld_errno(%rip), %rcx;                 \
-  xorl %edx, %edx;                             \
+  xorq %rdx, %rdx;                             \
   subq %rax, %rdx;                             \
   movl %edx, (%rcx);                           \
   orq $-1, %rax;                               \
 # define SYSCALL_ERROR_HANDLER                 \
 0:                                             \
   movq SYSCALL_ERROR_ERRNO@GOTTPOFF(%rip), %rcx;\
-  xorl %edx, %edx;                             \
+  xorq %rdx, %rdx;                             \
   subq %rax, %rdx;                             \
   movl %edx, %fs:(%rcx);                       \
   orq $-1, %rax;                               \
    Note that errno occupies only 4 bytes.  */
 # define SYSCALL_ERROR_HANDLER                 \
 0:                                             \
-  xorl %edx, %edx;                             \
+  xorq %rdx, %rdx;                             \
   subq %rax, %rdx;                             \
   pushq %rdx;                                  \
   cfi_adjust_cfa_offset(8);                    \
 #else /* Not _LIBC_REENTRANT.  */
 # define SYSCALL_ERROR_HANDLER                 \
 0:movq errno@GOTPCREL(%RIP), %rcx;             \
-  xorl %edx, %edx;                             \
+  xorq %rdx, %rdx;                             \
   subq %rax, %rdx;                             \
   movl %edx, (%rcx);                           \
   orq $-1, %rax;                               \
 #undef DO_CALL
 #define DO_CALL(syscall_name, args)            \
     DOARGS_##args                              \
-    movl $SYS_ify (syscall_name), %eax;                \
+    movq $SYS_ify (syscall_name), %rax;                \
     syscall;
 
 #define DOARGS_0 /* nothing */
 
 #endif /* __ASSEMBLER__ */
 
-
-/* Pointer mangling support.  */
-#if defined NOT_IN_libc && defined IS_IN_rtld
-/* We cannot use the thread descriptor because in ld.so we use setjmp
-   earlier than the descriptor is initialized.  */
-# ifdef __ASSEMBLER__
-#  define PTR_MANGLE(reg)      xorq __pointer_chk_guard_local(%rip), reg
-#  define PTR_DEMANGLE(reg)    PTR_MANGLE (reg)
-# else
-#  define PTR_MANGLE(reg)      asm ("xorq __pointer_chk_guard_local(%%rip), %0"\
-                                    : "=r" (reg) : "0" (reg))
-#  define PTR_DEMANGLE(reg)    PTR_MANGLE (reg)
-# endif
-#else
-# ifdef __ASSEMBLER__
-#  define PTR_MANGLE(reg)      xorq %fs:POINTER_GUARD, reg
-#  define PTR_DEMANGLE(reg)    PTR_MANGLE (reg)
-# else
-#  define PTR_MANGLE(var)      asm ("xorq %%fs:%c2, %0"                      \
-                                    : "=r" (var)                             \
-                                    : "0" (var),                             \
-                                      "i" (offsetof (tcbhead_t,              \
-                                                     pointer_guard)))
-#  define PTR_DEMANGLE(var)    PTR_MANGLE (var)
-# endif
-#endif
-
 #endif /* linux/x86_64/sysdep.h */