diff options
author | amylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4> | 1997-10-31 00:40:46 +0000 |
---|---|---|
committer | amylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4> | 1997-10-31 00:40:46 +0000 |
commit | 49d768f2eb491c5ae8183a3c97b3ab3c470b7c7f (patch) | |
tree | 4fb95bf9642fef03d19c01d88d43fb99b5c8694f /gcc/expr.c | |
parent | b1ea96675809704a07cccf6732c054895cf71740 (diff) | |
download | gcc-49d768f2eb491c5ae8183a3c97b3ab3c470b7c7f.tar.gz |
* expr.c (expand_increment): When enqueing a postincrement for a MEM,
use copy_to_reg if address is not a general_operand.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@16247 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/expr.c')
-rw-r--r-- | gcc/expr.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/expr.c b/gcc/expr.c index 5cd1b435780..19a5e1b1735 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -9847,7 +9847,9 @@ expand_increment (exp, post, ignore) } if (icode != (int) CODE_FOR_nothing && GET_CODE (op0) == MEM) { - rtx addr = force_reg (Pmode, XEXP (op0, 0)); + rtx addr = (general_operand (XEXP (op0, 0), mode) + ? force_reg (Pmode, XEXP (op0, 0)) + : copy_to_reg (XEXP (op0, 0))); rtx temp, result; op0 = change_address (op0, VOIDmode, addr); |