2 ports/sysdeps/unix/alpha/sysdep.h | 38 ------------------------
3 ports/sysdeps/unix/sysv/linux/alpha/sysdep.h | 42 +++++++++++++++++++++++++++
4 2 files changed, 42 insertions(+), 38 deletions(-)
6 --- a/ports/sysdeps/unix/alpha/sysdep.h
7 +++ b/ports/sysdeps/unix/alpha/sysdep.h
9 _sc_ret = _sc_0, _sc_err = _sc_19; \
12 -/* Pointer mangling support. Note that tls access is slow enough that
13 - we don't deoptimize things by placing the pointer check value there. */
17 -#if defined NOT_IN_libc && defined IS_IN_rtld
18 -# ifdef __ASSEMBLER__
19 -# define PTR_MANGLE(dst, src, tmp) \
20 - ldah tmp, __pointer_chk_guard_local($29) !gprelhigh; \
21 - ldq tmp, __pointer_chk_guard_local(tmp) !gprellow; \
23 -# define PTR_MANGLE2(dst, src, tmp) \
25 -# define PTR_DEMANGLE(dst, tmp) PTR_MANGLE(dst, dst, tmp)
26 -# define PTR_DEMANGLE2(dst, tmp) PTR_MANGLE2(dst, dst, tmp)
28 -extern uintptr_t __pointer_chk_guard_local attribute_relro attribute_hidden;
29 -# define PTR_MANGLE(var) \
30 - (var) = (__typeof (var)) ((uintptr_t) (var) ^ __pointer_chk_guard_local)
31 -# define PTR_DEMANGLE(var) PTR_MANGLE(var)
34 -# ifdef __ASSEMBLER__
35 -# define PTR_MANGLE(dst, src, tmp) \
36 - ldq tmp, __pointer_chk_guard; \
38 -# define PTR_MANGLE2(dst, src, tmp) \
40 -# define PTR_DEMANGLE(dst, tmp) PTR_MANGLE(dst, dst, tmp)
41 -# define PTR_DEMANGLE2(dst, tmp) PTR_MANGLE2(dst, dst, tmp)
43 -extern uintptr_t __pointer_chk_guard attribute_relro;
44 -# define PTR_MANGLE(var) \
45 - (var) = (void *) ((uintptr_t) (var) ^ __pointer_chk_guard)
46 -# define PTR_DEMANGLE(var) PTR_MANGLE(var)
50 #endif /* ASSEMBLER */
51 --- a/ports/sysdeps/unix/sysv/linux/alpha/sysdep.h
52 +++ b/ports/sysdeps/unix/sysv/linux/alpha/sysdep.h
54 INTERNAL_SYSCALL1(name, err_out, nr, args); \
57 +/* Pointer mangling support. Note that tls access is slow enough that
58 + we don't deoptimize things by placing the pointer check value there. */
60 +#if defined NOT_IN_libc && defined IS_IN_rtld
61 +# ifdef __ASSEMBLER__
62 +# define PTR_MANGLE(dst, src, tmp) \
63 + ldah tmp, __pointer_chk_guard_local($29) !gprelhigh; \
64 + ldq tmp, __pointer_chk_guard_local(tmp) !gprellow; \
66 +# define PTR_MANGLE2(dst, src, tmp) \
68 +# define PTR_DEMANGLE(dst, tmp) PTR_MANGLE(dst, dst, tmp)
69 +# define PTR_DEMANGLE2(dst, tmp) PTR_MANGLE2(dst, dst, tmp)
71 +extern uintptr_t __pointer_chk_guard_local attribute_relro attribute_hidden;
72 +# define PTR_MANGLE(var) \
73 + (var) = (__typeof (var)) ((uintptr_t) (var) ^ __pointer_chk_guard_local)
74 +# define PTR_DEMANGLE(var) PTR_MANGLE(var)
77 +# ifdef __ASSEMBLER__
78 +# define PTR_MANGLE(dst, src, tmp) \
79 + ldq tmp, __pointer_chk_guard; \
81 +# define PTR_MANGLE2(dst, src, tmp) \
83 +# define PTR_DEMANGLE(dst, tmp) PTR_MANGLE(dst, dst, tmp)
84 +# define PTR_DEMANGLE2(dst, tmp) PTR_MANGLE2(dst, dst, tmp)
86 +extern uintptr_t __pointer_chk_guard attribute_relro;
87 +# define PTR_MANGLE(var) \
88 + (var) = (void *) ((uintptr_t) (var) ^ __pointer_chk_guard)
89 +# define PTR_DEMANGLE(var) PTR_MANGLE(var)
92 +/* Pointer mangling is not yet supported for static libc on alpha. */
93 +# ifndef __ASSEMBLER__
94 +# define PTR_MANGLE(var) (void) (var)
95 +# define PTR_DEMANGLE(var) (void) (var)
99 #endif /* _LINUX_ALPHA_SYSDEP_H */