From d5d55e016b21beb829a63afda7761cd4eaa12764 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Tue, 10 Jan 2006 10:18:56 +0000 Subject: [PATCH] * include/bits/setjmp.h: New file. * setjmp/jmpbuf-offsets.h: New file. * sysdeps/alpha/bits/setjmp.h: Move JB_* macros ... * sysdeps/alpha/jmpbuf-offsets.h: ... here, new file. * sysdeps/hppa/bits/setjmp.h (JB_SP): Macro moved ... * sysdeps/hppa/jmpbuf-offsets.h: ... here, new file. * sysdeps/i386/bits/setjmp.h: Move JB_* macros ... * sysdeps/i386/jmpbuf-offsets.h: ... here, new file. * sysdeps/mips/bits/setjmp.h (JB_PC): Macro removed. * sysdeps/powerpc/bits/setjmp.h: Move JB_* macros ... * sysdeps/powerpc/jmpbuf-offsets.h: ... here, new file. * sysdeps/s390/bits/setjmp.h: Remove __JB_* macros. * sysdeps/sh/bits/setjmp.h (JB_SIZE): Macro moved ... * sysdeps/sh/jmpbuf-offsets.h: ... here, new file. * sysdeps/sparc/sparc32/bits/setjmp.h: Move JB_* macros ... * sysdeps/sparc/sparc32/jmpbuf-offsets.h: ... here, new file. * sysdeps/unix/sysv/linux/sparc/bits/setjmp.h: Remove JB_* macros. * sysdeps/x86_64/bits/setjmp.h: Move JB_* macros ... * sysdeps/x86_64/jmpbuf-offsets.h: ... here, new file. --- ChangeLog | 20 +++++++++++ include/bits/setjmp.h | 5 +++ setjmp/jmpbuf-offsets.h | 4 +++ sysdeps/alpha/bits/setjmp.h | 20 ----------- .../bits/setjmp.h => alpha/jmpbuf-offsets.h} | 35 ++++++++++--------- sysdeps/hppa/bits/setjmp.h | 4 --- .../bits/setjmp.h => hppa/jmpbuf-offsets.h} | 19 ++--------- sysdeps/i386/bits/setjmp.h | 10 ------ .../bits/setjmp.h => i386/jmpbuf-offsets.h} | 25 +++++--------- sysdeps/mips/bits/setjmp.h | 5 --- sysdeps/powerpc/bits/setjmp.h | 24 ------------- sysdeps/powerpc/jmpbuf-offsets.h | 39 ++++++++++++++++++++++ sysdeps/s390/bits/setjmp.h | 34 +++++++------------ sysdeps/sh/bits/setjmp.h | 4 --- .../sparc32/bits/setjmp.h => sh/jmpbuf-offsets.h} | 19 ++--------- sysdeps/sparc/sparc32/bits/setjmp.h | 6 ---- .../sparc32/{bits/setjmp.h => jmpbuf-offsets.h} | 21 +++--------- sysdeps/unix/sysv/linux/sparc/bits/setjmp.h | 6 ---- sysdeps/x86_64/bits/setjmp.h | 30 ----------------- .../bits/setjmp.h => x86_64/jmpbuf-offsets.h} | 29 ++++++++-------- 20 files changed, 132 insertions(+), 227 deletions(-) create mode 100644 include/bits/setjmp.h create mode 100644 setjmp/jmpbuf-offsets.h copy sysdeps/{sparc/sparc32/bits/setjmp.h => alpha/jmpbuf-offsets.h} (65%) copy sysdeps/{sparc/sparc32/bits/setjmp.h => hppa/jmpbuf-offsets.h} (67%) copy sysdeps/{sparc/sparc32/bits/setjmp.h => i386/jmpbuf-offsets.h} (67%) create mode 100644 sysdeps/powerpc/jmpbuf-offsets.h copy sysdeps/{sparc/sparc32/bits/setjmp.h => sh/jmpbuf-offsets.h} (67%) copy sysdeps/sparc/sparc32/{bits/setjmp.h => jmpbuf-offsets.h} (67%) copy sysdeps/{sparc/sparc32/bits/setjmp.h => x86_64/jmpbuf-offsets.h} (67%) diff --git a/ChangeLog b/ChangeLog index 8581eeefc4..6f736d1c78 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,25 @@ 2006-01-10 Roland McGrath + * include/bits/setjmp.h: New file. + * setjmp/jmpbuf-offsets.h: New file. + * sysdeps/alpha/bits/setjmp.h: Move JB_* macros ... + * sysdeps/alpha/jmpbuf-offsets.h: ... here, new file. + * sysdeps/hppa/bits/setjmp.h (JB_SP): Macro moved ... + * sysdeps/hppa/jmpbuf-offsets.h: ... here, new file. + * sysdeps/i386/bits/setjmp.h: Move JB_* macros ... + * sysdeps/i386/jmpbuf-offsets.h: ... here, new file. + * sysdeps/mips/bits/setjmp.h (JB_PC): Macro removed. + * sysdeps/powerpc/bits/setjmp.h: Move JB_* macros ... + * sysdeps/powerpc/jmpbuf-offsets.h: ... here, new file. + * sysdeps/s390/bits/setjmp.h: Remove __JB_* macros. + * sysdeps/sh/bits/setjmp.h (JB_SIZE): Macro moved ... + * sysdeps/sh/jmpbuf-offsets.h: ... here, new file. + * sysdeps/sparc/sparc32/bits/setjmp.h: Move JB_* macros ... + * sysdeps/sparc/sparc32/jmpbuf-offsets.h: ... here, new file. + * sysdeps/unix/sysv/linux/sparc/bits/setjmp.h: Remove JB_* macros. + * sysdeps/x86_64/bits/setjmp.h: Move JB_* macros ... + * sysdeps/x86_64/jmpbuf-offsets.h: ... here, new file. + * sysdeps/powerpc/bits/setjmp.h (_JMPBUF_UNWINDS): Move macro ... * sysdeps/powerpc/jmpbuf-unwind.h: ... here. * sysdeps/alpha/bits/setjmp.h (_JMPBUF_UNWINDS): Move macro ... diff --git a/include/bits/setjmp.h b/include/bits/setjmp.h new file mode 100644 index 0000000000..226de7fee8 --- /dev/null +++ b/include/bits/setjmp.h @@ -0,0 +1,5 @@ +/* For internal uses, get the public definitions + plus the JB_* macros from the private header . */ + +#include_next +#include diff --git a/setjmp/jmpbuf-offsets.h b/setjmp/jmpbuf-offsets.h new file mode 100644 index 0000000000..0cd79b0ae9 --- /dev/null +++ b/setjmp/jmpbuf-offsets.h @@ -0,0 +1,4 @@ +/* Private macros for accessing __jmp_buf contents. Stub version. + + This file can define macros such as JB_* used by code inside libc + to access __jmp_buf contents. */ diff --git a/sysdeps/alpha/bits/setjmp.h b/sysdeps/alpha/bits/setjmp.h index 7db0dbf565..eb0b478fb8 100644 --- a/sysdeps/alpha/bits/setjmp.h +++ b/sysdeps/alpha/bits/setjmp.h @@ -55,26 +55,6 @@ * registers. */ -#if defined __USE_MISC || defined __ASSEMBLY__ -# define JB_S0 0 -# define JB_S1 1 -# define JB_S2 2 -# define JB_S3 3 -# define JB_S4 4 -# define JB_S5 5 -# define JB_PC 6 -# define JB_FP 7 -# define JB_SP 8 -# define JB_F2 9 -# define JB_F3 10 -# define JB_F4 11 -# define JB_F5 12 -# define JB_F6 13 -# define JB_F7 14 -# define JB_F8 15 -# define JB_F9 16 -#endif - #ifndef __ASSEMBLY__ typedef long int __jmp_buf[17]; #endif diff --git a/sysdeps/sparc/sparc32/bits/setjmp.h b/sysdeps/alpha/jmpbuf-offsets.h similarity index 65% copy from sysdeps/sparc/sparc32/bits/setjmp.h copy to sysdeps/alpha/jmpbuf-offsets.h index 62edd62635..c2503d442a 100644 --- a/sysdeps/sparc/sparc32/bits/setjmp.h +++ b/sysdeps/alpha/jmpbuf-offsets.h @@ -1,4 +1,5 @@ -/* Copyright (C) 1997, 1998, 2005, 2006 Free Software Foundation, Inc. +/* Private macros for accessing __jmp_buf contents. Alpha version. + Copyright (C) 2006 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -16,18 +17,20 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -/* Define the machine-dependent type `jmp_buf'. SPARC version. */ - -#ifndef _SETJMP_H -# error "Never include directly; use instead." -#endif - -#if defined __USE_MISC || defined _ASM -# define JB_SP 0 -# define JB_FP 1 -# define JB_PC 2 -#endif - -#ifndef _ASM -typedef int __jmp_buf[3]; -#endif +#define JB_S0 0 +#define JB_S1 1 +#define JB_S2 2 +#define JB_S3 3 +#define JB_S4 4 +#define JB_S5 5 +#define JB_PC 6 +#define JB_FP 7 +#define JB_SP 8 +#define JB_F2 9 +#define JB_F3 10 +#define JB_F4 11 +#define JB_F5 12 +#define JB_F6 13 +#define JB_F7 14 +#define JB_F8 15 +#define JB_F9 16 diff --git a/sysdeps/hppa/bits/setjmp.h b/sysdeps/hppa/bits/setjmp.h index 4c8ed07b98..d5ae7e7b5b 100644 --- a/sysdeps/hppa/bits/setjmp.h +++ b/sysdeps/hppa/bits/setjmp.h @@ -29,10 +29,6 @@ easier, and to ensure proper alignment. Naturally, user code should not depend on either representation. */ -#if defined __USE_MISC || defined _ASM -#define JB_SP (76/4) -#endif - #ifndef _ASM typedef double __jmp_buf[21]; #endif diff --git a/sysdeps/sparc/sparc32/bits/setjmp.h b/sysdeps/hppa/jmpbuf-offsets.h similarity index 67% copy from sysdeps/sparc/sparc32/bits/setjmp.h copy to sysdeps/hppa/jmpbuf-offsets.h index 62edd62635..d95ed8a419 100644 --- a/sysdeps/sparc/sparc32/bits/setjmp.h +++ b/sysdeps/hppa/jmpbuf-offsets.h @@ -1,4 +1,5 @@ -/* Copyright (C) 1997, 1998, 2005, 2006 Free Software Foundation, Inc. +/* Private macros for accessing __jmp_buf contents. HPPA version. + Copyright (C) 2006 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -16,18 +17,4 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -/* Define the machine-dependent type `jmp_buf'. SPARC version. */ - -#ifndef _SETJMP_H -# error "Never include directly; use instead." -#endif - -#if defined __USE_MISC || defined _ASM -# define JB_SP 0 -# define JB_FP 1 -# define JB_PC 2 -#endif - -#ifndef _ASM -typedef int __jmp_buf[3]; -#endif +#define JB_SP (76/4) diff --git a/sysdeps/i386/bits/setjmp.h b/sysdeps/i386/bits/setjmp.h index 7029673090..0133c40e70 100644 --- a/sysdeps/i386/bits/setjmp.h +++ b/sysdeps/i386/bits/setjmp.h @@ -25,16 +25,6 @@ # error "Never include directly; use instead." #endif -#if defined __USE_MISC || defined _ASM -# define JB_BX 0 -# define JB_SI 1 -# define JB_DI 2 -# define JB_BP 3 -# define JB_SP 4 -# define JB_PC 5 -# define JB_SIZE 24 -#endif - #ifndef _ASM typedef int __jmp_buf[6]; #endif diff --git a/sysdeps/sparc/sparc32/bits/setjmp.h b/sysdeps/i386/jmpbuf-offsets.h similarity index 67% copy from sysdeps/sparc/sparc32/bits/setjmp.h copy to sysdeps/i386/jmpbuf-offsets.h index 62edd62635..c53d539edd 100644 --- a/sysdeps/sparc/sparc32/bits/setjmp.h +++ b/sysdeps/i386/jmpbuf-offsets.h @@ -1,4 +1,5 @@ -/* Copyright (C) 1997, 1998, 2005, 2006 Free Software Foundation, Inc. +/* Private macros for accessing __jmp_buf contents. i386 version. + Copyright (C) 2006 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -16,18 +17,10 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -/* Define the machine-dependent type `jmp_buf'. SPARC version. */ - -#ifndef _SETJMP_H -# error "Never include directly; use instead." -#endif - -#if defined __USE_MISC || defined _ASM -# define JB_SP 0 -# define JB_FP 1 -# define JB_PC 2 -#endif - -#ifndef _ASM -typedef int __jmp_buf[3]; -#endif +#define JB_BX 0 +#define JB_SI 1 +#define JB_DI 2 +#define JB_BP 3 +#define JB_SP 4 +#define JB_PC 5 +#define JB_SIZE 24 diff --git a/sysdeps/mips/bits/setjmp.h b/sysdeps/mips/bits/setjmp.h index 7b94623378..4f159c4988 100644 --- a/sysdeps/mips/bits/setjmp.h +++ b/sysdeps/mips/bits/setjmp.h @@ -72,9 +72,4 @@ typedef struct #endif } __jmp_buf[1]; -#ifdef __USE_MISC -/* Offset to the program counter in `jmp_buf'. */ -# define JB_PC 0 -#endif - #endif /* _MIPS_BITS_SETJMP_H */ diff --git a/sysdeps/powerpc/bits/setjmp.h b/sysdeps/powerpc/bits/setjmp.h index 4221300540..9c3e22abac 100644 --- a/sysdeps/powerpc/bits/setjmp.h +++ b/sysdeps/powerpc/bits/setjmp.h @@ -32,30 +32,6 @@ #include -#if defined __USE_MISC || defined _ASM -# define JB_GPR1 0 /* Also known as the stack pointer */ -# define JB_GPR2 1 -# define JB_LR 2 /* The address we will return to */ -# if __WORDSIZE == 64 -# define JB_GPRS 3 /* GPRs 14 through 31 are saved, 18*2 words total. */ -# define JB_CR 21 /* Condition code registers with the VRSAVE at */ - /* offset 172 (low half of the double word. */ -# define JB_FPRS 22 /* FPRs 14 through 31 are saved, 18*2 words total. */ -# define JB_SIZE (64 * 8) /* As per PPC64-VMX ABI. */ -# define JB_VRSAVE 21 /* VRSAVE shares a double word with the CR at offset */ - /* 168 (high half of the double word). */ -# define JB_VRS 40 /* VRs 20 through 31 are saved, 12*4 words total. */ -# else -# define JB_GPRS 3 /* GPRs 14 through 31 are saved, 18 in total. */ -# define JB_CR 21 /* Condition code registers. */ -# define JB_FPRS 22 /* FPRs 14 through 31 are saved, 18*2 words total. */ -# define JB_SIZE ((64 + (12 * 4)) * 4) -# define JB_VRSAVE 62 -# define JB_VRS 64 -# endif -#endif - - /* The current powerpc 32-bit Altivec ABI specifies for SVR4 ABI and EABI the vrsave must be at byte 248 & v20 at byte 256. So we must pad this correctly on 32 bit. It also insists that vecregs are only gauranteed diff --git a/sysdeps/powerpc/jmpbuf-offsets.h b/sysdeps/powerpc/jmpbuf-offsets.h new file mode 100644 index 0000000000..5f74a85af6 --- /dev/null +++ b/sysdeps/powerpc/jmpbuf-offsets.h @@ -0,0 +1,39 @@ +/* Private macros for accessing __jmp_buf contents. PowerPC version. + Copyright (C) 2006 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#define JB_GPR1 0 /* Also known as the stack pointer */ +#define JB_GPR2 1 +#define JB_LR 2 /* The address we will return to */ +#if __WORDSIZE == 64 +# define JB_GPRS 3 /* GPRs 14 through 31 are saved, 18*2 words total. */ +# define JB_CR 21 /* Condition code registers with the VRSAVE at */ + /* offset 172 (low half of the double word. */ +# define JB_FPRS 22 /* FPRs 14 through 31 are saved, 18*2 words total. */ +# define JB_SIZE (64 * 8) /* As per PPC64-VMX ABI. */ +# define JB_VRSAVE 21 /* VRSAVE shares a double word with the CR at offset */ + /* 168 (high half of the double word). */ +# define JB_VRS 40 /* VRs 20 through 31 are saved, 12*4 words total. */ +#else +# define JB_GPRS 3 /* GPRs 14 through 31 are saved, 18 in total. */ +# define JB_CR 21 /* Condition code registers. */ +# define JB_FPRS 22 /* FPRs 14 through 31 are saved, 18*2 words total. */ +# define JB_SIZE ((64 + (12 * 4)) * 4) +# define JB_VRSAVE 62 +# define JB_VRS 64 +#endif diff --git a/sysdeps/s390/bits/setjmp.h b/sysdeps/s390/bits/setjmp.h index dcac2d2377..5588c03301 100644 --- a/sysdeps/s390/bits/setjmp.h +++ b/sysdeps/s390/bits/setjmp.h @@ -27,30 +27,20 @@ #include -#define __JB_GPR6 0 -#define __JB_GPR7 1 -#define __JB_GPR8 2 -#define __JB_GPR9 3 -#define __JB_GPR10 4 -#define __JB_GPR11 5 -#define __JB_GPR12 6 -#define __JB_GPR13 7 -#define __JB_GPR14 8 -#define __JB_GPR15 9 - #ifndef _ASM -typedef struct __s390_jmp_buf { - /* We save registers 6-15. */ - long int __gregs[10]; - -#if __WORDSIZE == 64 - /* We save fpu registers 1, 3, 5 and 7. */ - long __fpregs[8]; -#else - /* We save fpu registers 4 and 6. */ - long __fpregs[4]; -#endif +typedef struct __s390_jmp_buf +{ + /* We save registers 6-15. */ + long int __gregs[10]; + +# if __WORDSIZE == 64 + /* We save fpu registers 1, 3, 5 and 7. */ + long __fpregs[8]; +# else + /* We save fpu registers 4 and 6. */ + long __fpregs[4]; +# endif } __jmp_buf[1]; #endif diff --git a/sysdeps/sh/bits/setjmp.h b/sysdeps/sh/bits/setjmp.h index cdc27dceb0..7e3fbd3394 100644 --- a/sysdeps/sh/bits/setjmp.h +++ b/sysdeps/sh/bits/setjmp.h @@ -44,8 +44,4 @@ typedef struct } __jmp_buf[1]; #endif -#if defined __USE_MISC || defined _ASM -# define JB_SIZE (4 * 15) -#endif - #endif /* bits/setjmp.h */ diff --git a/sysdeps/sparc/sparc32/bits/setjmp.h b/sysdeps/sh/jmpbuf-offsets.h similarity index 67% copy from sysdeps/sparc/sparc32/bits/setjmp.h copy to sysdeps/sh/jmpbuf-offsets.h index 62edd62635..312051e7eb 100644 --- a/sysdeps/sparc/sparc32/bits/setjmp.h +++ b/sysdeps/sh/jmpbuf-offsets.h @@ -1,4 +1,5 @@ -/* Copyright (C) 1997, 1998, 2005, 2006 Free Software Foundation, Inc. +/* Private macros for accessing __jmp_buf contents. SH version. + Copyright (C) 2006 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -16,18 +17,4 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -/* Define the machine-dependent type `jmp_buf'. SPARC version. */ - -#ifndef _SETJMP_H -# error "Never include directly; use instead." -#endif - -#if defined __USE_MISC || defined _ASM -# define JB_SP 0 -# define JB_FP 1 -# define JB_PC 2 -#endif - -#ifndef _ASM -typedef int __jmp_buf[3]; -#endif +#define JB_SIZE (4 * 15) diff --git a/sysdeps/sparc/sparc32/bits/setjmp.h b/sysdeps/sparc/sparc32/bits/setjmp.h index 62edd62635..86ccc20d20 100644 --- a/sysdeps/sparc/sparc32/bits/setjmp.h +++ b/sysdeps/sparc/sparc32/bits/setjmp.h @@ -22,12 +22,6 @@ # error "Never include directly; use instead." #endif -#if defined __USE_MISC || defined _ASM -# define JB_SP 0 -# define JB_FP 1 -# define JB_PC 2 -#endif - #ifndef _ASM typedef int __jmp_buf[3]; #endif diff --git a/sysdeps/sparc/sparc32/bits/setjmp.h b/sysdeps/sparc/sparc32/jmpbuf-offsets.h similarity index 67% copy from sysdeps/sparc/sparc32/bits/setjmp.h copy to sysdeps/sparc/sparc32/jmpbuf-offsets.h index 62edd62635..1c6f7a9d17 100644 --- a/sysdeps/sparc/sparc32/bits/setjmp.h +++ b/sysdeps/sparc/sparc32/jmpbuf-offsets.h @@ -1,4 +1,5 @@ -/* Copyright (C) 1997, 1998, 2005, 2006 Free Software Foundation, Inc. +/* Private macros for accessing __jmp_buf contents. SPARC version. + Copyright (C) 2006 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -16,18 +17,6 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -/* Define the machine-dependent type `jmp_buf'. SPARC version. */ - -#ifndef _SETJMP_H -# error "Never include directly; use instead." -#endif - -#if defined __USE_MISC || defined _ASM -# define JB_SP 0 -# define JB_FP 1 -# define JB_PC 2 -#endif - -#ifndef _ASM -typedef int __jmp_buf[3]; -#endif +#define JB_SP 0 +#define JB_FP 1 +#define JB_PC 2 diff --git a/sysdeps/unix/sysv/linux/sparc/bits/setjmp.h b/sysdeps/unix/sysv/linux/sparc/bits/setjmp.h index 360310f5f1..b44cc0fcd5 100644 --- a/sysdeps/unix/sysv/linux/sparc/bits/setjmp.h +++ b/sysdeps/unix/sysv/linux/sparc/bits/setjmp.h @@ -60,12 +60,6 @@ typedef struct __sparc64_jmp_buf #else -#if defined __USE_MISC || defined _ASM -# define JB_SP 0 -# define JB_FP 1 -# define JB_PC 2 -#endif - #ifndef _ASM typedef int __jmp_buf[3]; #endif diff --git a/sysdeps/x86_64/bits/setjmp.h b/sysdeps/x86_64/bits/setjmp.h index 656fbf7001..f4d3dbbc05 100644 --- a/sysdeps/x86_64/bits/setjmp.h +++ b/sysdeps/x86_64/bits/setjmp.h @@ -26,36 +26,6 @@ #include -#if __WORDSIZE == 64 - -/* We only need to save callee-saved registers plus stackpointer and - program counter. */ -# if defined __USE_MISC || defined _ASM -# define JB_RBX 0 -# define JB_RBP 1 -# define JB_R12 2 -# define JB_R13 3 -# define JB_R14 4 -# define JB_R15 5 -# define JB_RSP 6 -# define JB_PC 7 -# define JB_SIZE (8*8) -# endif - -#else - -# if defined __USE_MISC || defined _ASM -# define JB_BX 0 -# define JB_SI 1 -# define JB_DI 2 -# define JB_BP 3 -# define JB_SP 4 -# define JB_PC 5 -# define JB_SIZE 24 -# endif - -#endif - #ifndef _ASM # if __WORDSIZE == 64 diff --git a/sysdeps/sparc/sparc32/bits/setjmp.h b/sysdeps/x86_64/jmpbuf-offsets.h similarity index 67% copy from sysdeps/sparc/sparc32/bits/setjmp.h copy to sysdeps/x86_64/jmpbuf-offsets.h index 62edd62635..46c7768013 100644 --- a/sysdeps/sparc/sparc32/bits/setjmp.h +++ b/sysdeps/x86_64/jmpbuf-offsets.h @@ -1,4 +1,5 @@ -/* Copyright (C) 1997, 1998, 2005, 2006 Free Software Foundation, Inc. +/* Private macros for accessing __jmp_buf contents. x86-64 version. + Copyright (C) 2006 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -16,18 +17,14 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -/* Define the machine-dependent type `jmp_buf'. SPARC version. */ - -#ifndef _SETJMP_H -# error "Never include directly; use instead." -#endif - -#if defined __USE_MISC || defined _ASM -# define JB_SP 0 -# define JB_FP 1 -# define JB_PC 2 -#endif - -#ifndef _ASM -typedef int __jmp_buf[3]; -#endif +/* We only need to save callee-saved registers plus stackpointer and + program counter. */ +#define JB_RBX 0 +#define JB_RBP 1 +#define JB_R12 2 +#define JB_R13 3 +#define JB_R14 4 +#define JB_R15 5 +#define JB_RSP 6 +#define JB_PC 7 +#define JB_SIZE (8*8) -- 2.11.4.GIT