From: DJ Delorie Date: Fri, 23 Feb 2001 23:05:33 +0000 (-0500) Subject: i960.h (FRAME_POINTER_REQUIRED): Revert removal of check for current_function_has_non... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=4f0a3098c58f0f9740d3c6f9deb348d04f042575;p=gcc.git 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 --- 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 + + * 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 * 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.