diff options
author | Jim Wilson <wilson@gcc.gnu.org> | 1995-03-10 11:50:49 -0800 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 1995-03-10 11:50:49 -0800 |
commit | 26ba4aeef6c188260472e687ee164a9c5f8955ef (patch) | |
tree | 1e1cae7a3d896937d947198eec71393acedc0beb /gcc/reload.c | |
parent | 01188446e8711717f6b0f9568340bb655b22f7b7 (diff) | |
download | gcc-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.c | 8 |
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 |