mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-27 03:33:33 +08:00
* 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.
This commit is contained in:
parent
0ca13e1412
commit
d5d55e016b
20
ChangeLog
20
ChangeLog
@ -1,5 +1,25 @@
|
||||
2006-01-10 Roland McGrath <roland@redhat.com>
|
||||
|
||||
* 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 ...
|
||||
|
5
include/bits/setjmp.h
Normal file
5
include/bits/setjmp.h
Normal file
@ -0,0 +1,5 @@
|
||||
/* For internal uses, get the public <bits/setjmp.h> definitions
|
||||
plus the JB_* macros from the private header <jmpbuf-offsets.h>. */
|
||||
|
||||
#include_next <bits/setjmp.h>
|
||||
#include <jmpbuf-offsets.h>
|
4
setjmp/jmpbuf-offsets.h
Normal file
4
setjmp/jmpbuf-offsets.h
Normal file
@ -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. */
|
@ -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
|
||||
|
36
sysdeps/alpha/jmpbuf-offsets.h
Normal file
36
sysdeps/alpha/jmpbuf-offsets.h
Normal file
@ -0,0 +1,36 @@
|
||||
/* 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
|
||||
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_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
|
@ -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
|
||||
|
20
sysdeps/hppa/jmpbuf-offsets.h
Normal file
20
sysdeps/hppa/jmpbuf-offsets.h
Normal file
@ -0,0 +1,20 @@
|
||||
/* 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
|
||||
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_SP (76/4)
|
@ -25,16 +25,6 @@
|
||||
# error "Never include <bits/setjmp.h> directly; use <setjmp.h> 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
|
||||
|
26
sysdeps/i386/jmpbuf-offsets.h
Normal file
26
sysdeps/i386/jmpbuf-offsets.h
Normal file
@ -0,0 +1,26 @@
|
||||
/* 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
|
||||
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_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
|
@ -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 */
|
||||
|
@ -32,30 +32,6 @@
|
||||
|
||||
#include <bits/wordsize.h>
|
||||
|
||||
#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
|
||||
|
39
sysdeps/powerpc/jmpbuf-offsets.h
Normal file
39
sysdeps/powerpc/jmpbuf-offsets.h
Normal file
@ -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
|
@ -27,30 +27,20 @@
|
||||
|
||||
#include <bits/wordsize.h>
|
||||
|
||||
#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];
|
||||
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
|
||||
# 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
|
||||
|
@ -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 */
|
||||
|
20
sysdeps/sh/jmpbuf-offsets.h
Normal file
20
sysdeps/sh/jmpbuf-offsets.h
Normal file
@ -0,0 +1,20 @@
|
||||
/* 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
|
||||
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_SIZE (4 * 15)
|
@ -22,12 +22,6 @@
|
||||
# error "Never include <bits/setjmp.h> directly; use <setjmp.h> 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
|
||||
|
22
sysdeps/sparc/sparc32/jmpbuf-offsets.h
Normal file
22
sysdeps/sparc/sparc32/jmpbuf-offsets.h
Normal file
@ -0,0 +1,22 @@
|
||||
/* 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
|
||||
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_SP 0
|
||||
#define JB_FP 1
|
||||
#define JB_PC 2
|
@ -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
|
||||
|
@ -26,36 +26,6 @@
|
||||
|
||||
#include <bits/wordsize.h>
|
||||
|
||||
#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
|
||||
|
30
sysdeps/x86_64/jmpbuf-offsets.h
Normal file
30
sysdeps/x86_64/jmpbuf-offsets.h
Normal file
@ -0,0 +1,30 @@
|
||||
/* 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
|
||||
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. */
|
||||
|
||||
/* 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)
|
Loading…
Reference in New Issue
Block a user