From a6df738797825b5d19448903b9b7c35b091e13c2 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 20 Jan 2006 16:49:36 +0000 Subject: * 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. --- sysdeps/unix/sysv/linux/sh/sysdep.h | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'sysdeps/unix/sysv') 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, , August 1995. Changed by Kaz Kojima, . @@ -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 ()) -- cgit 1.4.1