summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordj <dj@138bc75d-0d04-0410-961f-82ee72b054a4>2001-02-23 23:05:33 +0000
committerdj <dj@138bc75d-0d04-0410-961f-82ee72b054a4>2001-02-23 23:05:33 +0000
commitd8745e9e73a561f714a0c0b8f636dcfc69eb0a70 (patch)
treeb46e91340c6a24eceec2fa21ca053db73308a475
parent0fc48b821fbfadbdebcb8ca8b309e5dfe1550c02 (diff)
downloadppe42-gcc-d8745e9e73a561f714a0c0b8f636dcfc69eb0a70.tar.gz
ppe42-gcc-d8745e9e73a561f714a0c0b8f636dcfc69eb0a70.zip
* config/i960/i960.h (FRAME_POINTER_REQUIRED): Revert removal of
check for current_function_has_nonlocal_goto from 1999-11-12. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@40018 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/i960/i960.h7
2 files changed, 11 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 43ce072896d..7bb6f8c1536 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2001-02-21 DJ Delorie <dj@redhat.com>
+
+ * config/i960/i960.h (FRAME_POINTER_REQUIRED): Revert removal of
+ check for current_function_has_nonlocal_goto from 1999-11-12.
+
Fri Feb 23 15:28:39 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* diagnostic.c (trim_filename): No longer static.
diff --git a/gcc/config/i960/i960.h b/gcc/config/i960/i960.h
index 510793b307f..4c85e95d8e8 100644
--- a/gcc/config/i960/i960.h
+++ b/gcc/config/i960/i960.h
@@ -617,7 +617,12 @@ extern int target_flags;
/* ??? It isn't clear to me why this is here. Perhaps because of a bug (since
fixed) in the definition of INITIAL_FRAME_POINTER_OFFSET which would have
caused this to fail. */
-#define FRAME_POINTER_REQUIRED (! leaf_function_p ())
+/* ??? Must check current_function_has_nonlocal_goto, otherwise frame pointer
+ elimination messes up nonlocal goto sequences. I think this works for other
+ targets because they use indirect jumps for the return which disables fp
+ elimination. */
+#define FRAME_POINTER_REQUIRED \
+ (! leaf_function_p () || current_function_has_nonlocal_goto)
/* Definitions for register eliminations.
OpenPOWER on IntegriCloud