summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2004-01-27 22:13:29 +0000
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2004-01-27 22:13:29 +0000
commit5b8192c3a062f1ea510db78eb5d1eda8b5f729da (patch)
tree352a8578ef802d7d076d66f286fd368b5d2e4b4c
parent3ac25e739418b510e8eee6a703b085c00efbda1f (diff)
downloadgcc-5b8192c3a062f1ea510db78eb5d1eda8b5f729da.tar.gz
PR target/7297
* except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp(). git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@76754 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/except.c6
2 files changed, 7 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e121b9b777e..47cf998ac3a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2004-01-27 Richard Sandiford <rsandifo@redhat.com>
+
+ PR target/7297
+ * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
+
2004-01-27 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
diff --git a/gcc/except.c b/gcc/except.c
index b735cc1aef3..8c4c726cf1e 100644
--- a/gcc/except.c
+++ b/gcc/except.c
@@ -412,10 +412,8 @@ init_eh (void)
tmp = build_int_2 (FIRST_PSEUDO_REGISTER + 2 - 1, 0);
#endif
#else
- /* This is 2 for builtin_setjmp, plus whatever the target requires
- via STACK_SAVEAREA_MODE (SAVE_NONLOCAL). */
- tmp = build_int_2 ((GET_MODE_SIZE (STACK_SAVEAREA_MODE (SAVE_NONLOCAL))
- / GET_MODE_SIZE (Pmode)) + 2 - 1, 0);
+ /* builtin_setjmp takes a pointer to 5 words. */
+ tmp = build_int_2 (5 * BITS_PER_WORD / POINTER_SIZE - 1, 0);
#endif
tmp = build_index_type (tmp);
tmp = build_array_type (ptr_type_node, tmp);