diff options
author | Ulrich Drepper <drepper@redhat.com> | 2006-01-20 16:49:36 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2006-01-20 16:49:36 +0000 |
commit | a6df738797825b5d19448903b9b7c35b091e13c2 (patch) | |
tree | 84bcbef708f799bdfda21dd76bbba26a53ae2e7d /sysdeps/unix/sysv/linux/sh/sysdep.h | |
parent | 7c65e9001b93d5d20046bc4d50fd10fff5f4adc2 (diff) | |
download | glibc-a6df738797825b5d19448903b9b7c35b091e13c2.tar.gz glibc-a6df738797825b5d19448903b9b7c35b091e13c2.tar.xz 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.h | 10 |
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 ()) |