summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHiroaki Etoh <etoh@cvs.openbsd.org>2003-02-03 09:17:40 +0000
committerHiroaki Etoh <etoh@cvs.openbsd.org>2003-02-03 09:17:40 +0000
commit868ae747c718dffa9416fd64924a0f93279c7b8a (patch)
tree5ab693eae35c369f27e7fdaeeb12ddc3106248b7
parentd2e7d652311e2aff60d568d1a2c6057472dc749b (diff)
modify expand_expr not to modify the addressing form of local variables: frame pointer plus constant.
-rw-r--r--gnu/egcs/gcc/expr.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gnu/egcs/gcc/expr.c b/gnu/egcs/gcc/expr.c
index 996c277a5cc..829a3fe5535 100644
--- a/gnu/egcs/gcc/expr.c
+++ b/gnu/egcs/gcc/expr.c
@@ -41,6 +41,7 @@ Boston, MA 02111-1307, USA. */
#include "typeclass.h"
#include "defaults.h"
#include "toplev.h"
+#include "protector.h"
#define CEIL(x,y) (((x) + (y) - 1) / (y))
@@ -7077,7 +7078,7 @@ expand_expr (exp, target, tmode, modifier)
associate it to put the constant outside. */
if (GET_CODE (op1) == PLUS
&& CONSTANT_P (XEXP (op1, 1))
- && !(flag_propolice_protection && XEXP (op1, 0) == virtual_stack_vars_rtx))
+ && !(flag_propolice_protection && (contains_fp (op0) || contains_fp (op1))))
{
rtx constant_term = const0_rtx;