aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/linux/sh/sysdep.h
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2006-01-20 16:49:36 +0000
committerUlrich Drepper <drepper@redhat.com>2006-01-20 16:49:36 +0000
commita6df738797825b5d19448903b9b7c35b091e13c2 (patch)
tree84bcbef708f799bdfda21dd76bbba26a53ae2e7d /sysdeps/unix/sysv/linux/sh/sysdep.h
parent7c65e9001b93d5d20046bc4d50fd10fff5f4adc2 (diff)
downloadglibc-a6df738797825b5d19448903b9b7c35b091e13c2.tar
glibc-a6df738797825b5d19448903b9b7c35b091e13c2.tar.gz
glibc-a6df738797825b5d19448903b9b7c35b091e13c2.tar.bz2
glibc-a6df738797825b5d19448903b9b7c35b091e13c2.zip
* sysdeps/sh/sh4/__longjmp.S: Demangle also r14 and r15.
* sysdeps/sh/sh3/__longjmp.S: Likewise. * sysdeps/sh/sh4/setjmp.S: Mangle also r14 and r15. * sysdeps/sh/sh3/setjmp.S: Likewise. * sysdeps/unix/sysv/linux/sh/sysdep.h [__ASSEMBLER__] (PTR_MANGLE): Add temporary register as the second parameter. (PTR_DEMANGLE): Likewize. (PTR_MANGLE2, PTR_DEMANGLE2): Define.
Diffstat (limited to 'sysdeps/unix/sysv/linux/sh/sysdep.h')
-rw-r--r--sysdeps/unix/sysv/linux/sh/sysdep.h10
1 files changed, 6 insertions, 4 deletions
diff --git a/sysdeps/unix/sysv/linux/sh/sysdep.h b/sysdeps/unix/sysv/linux/sh/sysdep.h
index b41236299d..f0be37edc8 100644
--- a/sysdeps/unix/sysv/linux/sh/sysdep.h
+++ b/sysdeps/unix/sysv/linux/sh/sysdep.h
@@ -1,5 +1,5 @@
/* Copyright (C) 1992,1993,1995,1996,1997,1998,1999,2000,2002,2003,2004,
- 2005 Free Software Foundation, Inc.
+ 2005,2006 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>, August 1995.
Changed by Kaz Kojima, <kkojima@rr.iij4u.or.jp>.
@@ -376,9 +376,11 @@
is too complicated here since we have no PC-relative addressing mode. */
#else
# ifdef __ASSEMBLER__
-# define PTR_MANGLE(reg) \
- stc gbr,r1; mov.l @(POINTER_GUARD,r1),r1; xor r1,reg
-# define PTR_DEMANGLE(reg) PTR_MANGLE (reg)
+# define PTR_MANGLE(reg, tmp) \
+ stc gbr,tmp; mov.l @(POINTER_GUARD,tmp),tmp; xor tmp,reg
+# define PTR_MANGLE2(reg, tmp) xor tmp,reg
+# define PTR_DEMANGLE(reg, tmp) PTR_MANGLE (reg, tmp)
+# define PTR_DEMANGLE2(reg, tmp) PTR_MANGLE2 (reg, tmp)
# else
# define PTR_MANGLE(var) \
(var) = (void *) ((uintptr_t) (var) ^ THREAD_GET_POINTER_GUARD ())