From dd54084dd9549ae15c12db248571ad76946b8712 Mon Sep 17 00:00:00 2001 From: "David S. Miller" Date: Sat, 18 Feb 2012 22:31:42 -0800 Subject: Rework sparc PIC macros so crt{i,n}.S can use them too. * sysdeps/unix/sparc/sysdep.h (SPARC_PIC_THUNK): New macro. (SETUP_PIC_REG): Use SPARC_PIC_THUNK and don't save and restore %o7 across the call. (SETUP_PIC_REG_LEAF): Do %o7 save/restore in this new macro instead. * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h: Use SETUP_PIC_REG_LEAF. * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h: Likewise. * sysdeps/sparc/crti.S: Use SETUP_PIC_REG. * sysdeps/sparc/crtn.S: Likewise. --- sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h | 10 +++++----- sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) (limited to 'sysdeps/unix/sysv') diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h b/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h index 01ee307abe..fd7ded5af9 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1997, 2002, 2003, 2004, 2006, 2008, 2011 +/* Copyright (C) 1997, 2002, 2003, 2004, 2006, 2008, 2011, 2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Miguel de Icaza , January 1997. @@ -89,7 +89,7 @@ ENTRY(name); \ #else # if RTLD_PRIVATE_ERRNO # define SYSCALL_ERROR_HANDLER \ -0: SETUP_PIC_REG(o2,g1) \ +0: SETUP_PIC_REG_LEAF(o2,g1) \ sethi %hi(rtld_errno), %g1; \ or %g1, %lo(rtld_errno), %g1; \ ld [%o2 + %g1], %g1; \ @@ -103,8 +103,8 @@ ENTRY(name); \ # else # define SYSCALL_ERROR_ERRNO errno # endif -# define SYSCALL_ERROR_HANDLER \ -0: SETUP_PIC_REG(o2,g1) \ +# define SYSCALL_ERROR_HANDLER \ +0: SETUP_PIC_REG_LEAF(o2,g1) \ sethi %tie_hi22(SYSCALL_ERROR_ERRNO), %g1; \ add %g1, %tie_lo10(SYSCALL_ERROR_ERRNO), %g1; \ ld [%o2 + %g1], %g1, %tie_ld(SYSCALL_ERROR_ERRNO); \ @@ -113,7 +113,7 @@ ENTRY(name); \ mov -1, %o0; # else # define SYSCALL_ERROR_HANDLER \ -0: SETUP_PIC_REG(o2,g1) \ +0: SETUP_PIC_REG_LEAF(o2,g1) \ sethi %hi(errno), %g1; \ or %g1, %lo(errno), %g1; \ ld [%o2 + %g1], %g1; \ diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h b/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h index c5fa866421..67ead22b50 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1997, 2000, 2002, 2003, 2004, 2006, 2008, 2011 +/* Copyright (C) 1997, 2000, 2002, 2003, 2004, 2006, 2008, 2011, 2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Richard Henderson , 1997. @@ -96,7 +96,7 @@ ENTRY(name); \ #else # if RTLD_PRIVATE_ERRNO # define SYSCALL_ERROR_HANDLER \ -0: SETUP_PIC_REG(o2,g1) \ +0: SETUP_PIC_REG_LEAF(o2,g1) \ sethi %hi(rtld_errno), %g1; \ or %g1, %lo(rtld_errno), %g1; \ ldx [%o2 + %g1], %g1; \ @@ -110,8 +110,8 @@ ENTRY(name); \ # else # define SYSCALL_ERROR_ERRNO errno # endif -# define SYSCALL_ERROR_HANDLER \ -0: SETUP_PIC_REG(o2,g1) \ +# define SYSCALL_ERROR_HANDLER \ +0: SETUP_PIC_REG_LEAF(o2,g1) \ sethi %tie_hi22(SYSCALL_ERROR_ERRNO), %g1; \ add %g1, %tie_lo10(SYSCALL_ERROR_ERRNO), %g1; \ ldx [%o2 + %g1], %g1, %tie_ldx(SYSCALL_ERROR_ERRNO);\ @@ -120,7 +120,7 @@ ENTRY(name); \ mov -1, %o0; # else # define SYSCALL_ERROR_HANDLER \ -0: SETUP_PIC_REG(o2,g1) \ +0: SETUP_PIC_REG_LEAF(o2,g1) \ sethi %hi(errno), %g1; \ or %g1, %lo(errno), %g1; \ ldx [%o2 + %g1], %g1; \ -- cgit 1.4.1