diff options
author | Jakub Jelinek <jakub@redhat.com> | 2006-01-02 21:28:11 +0000 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2006-01-02 21:28:11 +0000 |
commit | 1df14a6af0eed9687fb62130fac201f2f067a936 (patch) | |
tree | b11b3dd9c9d2169fcf94bbf56023c3a21b2a3a2d /sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h | |
parent | c77bdda8a080add749cbb248688d0889b4f9eed4 (diff) | |
download | glibc-1df14a6af0eed9687fb62130fac201f2f067a936.tar glibc-1df14a6af0eed9687fb62130fac201f2f067a936.tar.gz glibc-1df14a6af0eed9687fb62130fac201f2f067a936.tar.bz2 glibc-1df14a6af0eed9687fb62130fac201f2f067a936.zip |
Updated to fedora-glibc-20060102T2114cvs/fedora-glibc-2_3_90-25
Diffstat (limited to 'sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h')
-rw-r--r-- | sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h b/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h index 071aa3a310..b30cffc5e9 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h @@ -240,4 +240,24 @@ SYSCALL_ERROR_HANDLER_ENTRY(__syscall_error_handler) \ register windows. So if you poke stack memory directly you add this. */ #define STACK_BIAS 2047 +/* 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. */ +#else +# ifdef __ASSEMBLER__ +# define PTR_MANGLE(dreg, reg, tmpreg) \ + ldx [%g7 + POINTER_GUARD], tmpreg; \ + xor reg, tmpreg, dreg +# define PTR_DEMANGLE(dreg, reg, tmpreg) PTR_MANGLE (dreg, reg, tmpreg) +# define PTR_MANGLE2(dreg, reg, tmpreg) \ + xor reg, tmpreg, dreg +# define PTR_DEMANGLE2(dreg, reg, tmpreg) PTR_MANGLE2 (dreg, reg, tmpreg) +# else +# define PTR_MANGLE(var) \ + (var) = (__typeof (var)) ((uintptr_t) (var) ^ THREAD_GET_POINTER_GUARD ()) +# define PTR_DEMANGLE(var) PTR_MANGLE (var) +# endif +#endif + #endif /* linux/sparc64/sysdep.h */ |