diff options
author | DJ Delorie <dj@redhat.com> | 2001-02-23 18:05:33 -0500 |
---|---|---|
committer | DJ Delorie <dj@gcc.gnu.org> | 2001-02-23 18:05:33 -0500 |
commit | 4f0a3098c58f0f9740d3c6f9deb348d04f042575 (patch) | |
tree | b46e91340c6a24eceec2fa21ca053db73308a475 | |
parent | fce687f8769fbad7fba74cf9adb985dd5369df01 (diff) | |
download | gcc-4f0a3098c58f0f9740d3c6f9deb348d04f042575.zip gcc-4f0a3098c58f0f9740d3c6f9deb348d04f042575.tar.gz gcc-4f0a3098c58f0f9740d3c6f9deb348d04f042575.tar.bz2 |
i960.h (FRAME_POINTER_REQUIRED): Revert removal of check for current_function_has_nonlocal_goto from 1999-11-12.
* config/i960/i960.h (FRAME_POINTER_REQUIRED): Revert removal of
check for current_function_has_nonlocal_goto from 1999-11-12.
From-SVN: r40018
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/i960/i960.h | 7 |
2 files changed, 11 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 43ce072..7bb6f8c 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 510793b..4c85e95 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. |