diff options
author | Hiroaki Etoh <etoh@cvs.openbsd.org> | 2003-06-20 08:40:46 +0000 |
---|---|---|
committer | Hiroaki Etoh <etoh@cvs.openbsd.org> | 2003-06-20 08:40:46 +0000 |
commit | cb65c3b808a4ef1a09b2a82c29812e12d1e04f26 (patch) | |
tree | 016d865854ff85e8c04789692cab55a743e35353 /gnu/egcs/gcc/expr.c | |
parent | f09cd16575c4ef86c7ffb46b8ee3d0e0b4d1799a (diff) |
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@
Diffstat (limited to 'gnu/egcs/gcc/expr.c')
-rw-r--r-- | gnu/egcs/gcc/expr.c | 4 |
1 files changed, 3 insertions, 1 deletions
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, |