From cb65c3b808a4ef1a09b2a82c29812e12d1e04f26 Mon Sep 17 00:00:00 2001 From: Hiroaki Etoh Date: Fri, 20 Jun 2003 08:40:46 +0000 Subject: To keep the frame pointer addressing for stack_protection, skip the following RTL conversion; (plus (plus fp offset) const) to (plus (plus fp const) offset). ok pvalchev@ --- gnu/egcs/gcc/expr.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'gnu/egcs/gcc/expr.c') diff --git a/gnu/egcs/gcc/expr.c b/gnu/egcs/gcc/expr.c index 829a3fe5535..db562c895d3 100644 --- a/gnu/egcs/gcc/expr.c +++ b/gnu/egcs/gcc/expr.c @@ -5162,7 +5162,9 @@ force_operand (value, target) && GET_CODE (XEXP (value, 0)) == PLUS && GET_CODE (XEXP (XEXP (value, 0), 0)) == REG && REGNO (XEXP (XEXP (value, 0), 0)) >= FIRST_VIRTUAL_REGISTER - && REGNO (XEXP (XEXP (value, 0), 0)) <= LAST_VIRTUAL_REGISTER) + && REGNO (XEXP (XEXP (value, 0), 0)) <= LAST_VIRTUAL_REGISTER + && (!flag_propolice_protection + || XEXP (XEXP (value, 0), 0) != virtual_stack_vars_rtx)) { rtx temp = expand_binop (GET_MODE (value), binoptab, XEXP (XEXP (value, 0), 0), op2, -- cgit v1.2.3