* include/bits/setjmp.h: New file.
authorRoland McGrath <roland@gnu.org>
Tue, 10 Jan 2006 10:18:56 +0000 (10:18 +0000)
committerRoland McGrath <roland@gnu.org>
Tue, 10 Jan 2006 10:18:56 +0000 (10:18 +0000)
* 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.

20 files changed:
ChangeLog
include/bits/setjmp.h [new file with mode: 0644]
setjmp/jmpbuf-offsets.h [new file with mode: 0644]
sysdeps/alpha/bits/setjmp.h
sysdeps/alpha/jmpbuf-offsets.h [new file with mode: 0644]
sysdeps/hppa/bits/setjmp.h
sysdeps/hppa/jmpbuf-offsets.h [new file with mode: 0644]
sysdeps/i386/bits/setjmp.h
sysdeps/i386/jmpbuf-offsets.h [new file with mode: 0644]
sysdeps/mips/bits/setjmp.h
sysdeps/powerpc/bits/setjmp.h
sysdeps/powerpc/jmpbuf-offsets.h [new file with mode: 0644]
sysdeps/s390/bits/setjmp.h
sysdeps/sh/bits/setjmp.h
sysdeps/sh/jmpbuf-offsets.h [new file with mode: 0644]
sysdeps/sparc/sparc32/bits/setjmp.h
sysdeps/sparc/sparc32/jmpbuf-offsets.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/sparc/bits/setjmp.h
sysdeps/x86_64/bits/setjmp.h
sysdeps/x86_64/jmpbuf-offsets.h [new file with mode: 0644]

index 8581eee..6f736d1 100644 (file)
--- a/ChangeLog
+++ b/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 ...
diff --git a/include/bits/setjmp.h b/include/bits/setjmp.h
new file mode 100644 (file)
index 0000000..226de7f
--- /dev/null
@@ -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>
diff --git a/setjmp/jmpbuf-offsets.h b/setjmp/jmpbuf-offsets.h
new file mode 100644 (file)
index 0000000..0cd79b0
--- /dev/null
@@ -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.  */
index 7db0dbf..eb0b478 100644 (file)
  * 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/alpha/jmpbuf-offsets.h b/sysdeps/alpha/jmpbuf-offsets.h
new file mode 100644 (file)
index 0000000..c2503d4
--- /dev/null
@@ -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
index 4c8ed07..d5ae7e7 100644 (file)
    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/hppa/jmpbuf-offsets.h b/sysdeps/hppa/jmpbuf-offsets.h
new file mode 100644 (file)
index 0000000..d95ed8a
--- /dev/null
@@ -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)
index 7029673..0133c40 100644 (file)
 # 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
diff --git a/sysdeps/i386/jmpbuf-offsets.h b/sysdeps/i386/jmpbuf-offsets.h
new file mode 100644 (file)
index 0000000..c53d539
--- /dev/null
@@ -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
index 7b94623..4f159c4 100644 (file)
@@ -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 */
index 4221300..9c3e22a 100644 (file)
 
 #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
diff --git a/sysdeps/powerpc/jmpbuf-offsets.h b/sysdeps/powerpc/jmpbuf-offsets.h
new file mode 100644 (file)
index 0000000..5f74a85
--- /dev/null
@@ -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
index dcac2d2..5588c03 100644 (file)
 
 #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];
-
-#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
index cdc27dc..7e3fbd3 100644 (file)
@@ -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/sh/jmpbuf-offsets.h b/sysdeps/sh/jmpbuf-offsets.h
new file mode 100644 (file)
index 0000000..312051e
--- /dev/null
@@ -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)
index 62edd62..86ccc20 100644 (file)
 # 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
diff --git a/sysdeps/sparc/sparc32/jmpbuf-offsets.h b/sysdeps/sparc/sparc32/jmpbuf-offsets.h
new file mode 100644 (file)
index 0000000..1c6f7a9
--- /dev/null
@@ -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
index 360310f..b44cc0f 100644 (file)
@@ -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
index 656fbf7..f4d3dbb 100644 (file)
 
 #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
diff --git a/sysdeps/x86_64/jmpbuf-offsets.h b/sysdeps/x86_64/jmpbuf-offsets.h
new file mode 100644 (file)
index 0000000..46c7768
--- /dev/null
@@ -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)