diff options
| author | dj <dj@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-02-23 23:05:33 +0000 |
|---|---|---|
| committer | dj <dj@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-02-23 23:05:33 +0000 |
| commit | d8745e9e73a561f714a0c0b8f636dcfc69eb0a70 (patch) | |
| tree | b46e91340c6a24eceec2fa21ca053db73308a475 | |
| parent | 0fc48b821fbfadbdebcb8ca8b309e5dfe1550c02 (diff) | |
| download | ppe42-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/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 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. |

