aboutsummaryrefslogtreecommitdiff
path: root/gcc/reload.c
diff options
context:
space:
mode:
authorJim Wilson <wilson@gcc.gnu.org>1995-03-10 11:50:49 -0800
committerJim Wilson <wilson@gcc.gnu.org>1995-03-10 11:50:49 -0800
commit26ba4aeef6c188260472e687ee164a9c5f8955ef (patch)
tree1e1cae7a3d896937d947198eec71393acedc0beb /gcc/reload.c
parent01188446e8711717f6b0f9568340bb655b22f7b7 (diff)
downloadgcc-26ba4aeef6c188260472e687ee164a9c5f8955ef.zip
gcc-26ba4aeef6c188260472e687ee164a9c5f8955ef.tar.gz
gcc-26ba4aeef6c188260472e687ee164a9c5f8955ef.tar.bz2
(find_reloads, case 'o'): Accept a fully reloaded auto-increment address.
From-SVN: r9168
Diffstat (limited to 'gcc/reload.c')
-rw-r--r--gcc/reload.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/reload.c b/gcc/reload.c
index 0c00ffc..4ba5627 100644
--- a/gcc/reload.c
+++ b/gcc/reload.c
@@ -2802,6 +2802,14 @@ find_reloads (insn, replace, ind_levels, live_known, reload_reg_p)
reject that case. */
&& (ind_levels ? offsettable_memref_p (operand)
: offsettable_nonstrict_memref_p (operand)))
+ /* A reloaded auto-increment address is offsettable,
+ because it is now just a simple register indirect. */
+ || (GET_CODE (operand) == MEM
+ && address_reloaded[i]
+ && (GET_CODE (XEXP (operand, 0)) == PRE_INC
+ || GET_CODE (XEXP (operand, 0)) == PRE_DEC
+ || GET_CODE (XEXP (operand, 0)) == POST_INC
+ || GET_CODE (XEXP (operand, 0)) == POST_DEC))
/* Certain mem addresses will become offsettable
after they themselves are reloaded. This is important;
we don't want our own handling of unoffsettables