diff options
author | Hans-Peter Nilsson <hp@axis.com> | 2004-09-29 19:46:18 +0000 |
---|---|---|
committer | Hans-Peter Nilsson <hp@axis.com> | 2004-09-29 19:46:18 +0000 |
commit | ade79c2283417a65845ffb568eb993d7842e9607 (patch) | |
tree | cc5465ee34f8f7a14ece2536147cd1434557e968 | |
parent | 3e8397bb52db5f16591c223e59d6b70c2cfabec7 (diff) |
* config/cris/cris.md (moverside, movemside): With MEM, make sure
the address is (plus reg mem).
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@88298 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/cris/cris.md | 14 |
2 files changed, 13 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 170879c882b..7b1103cc6e3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2004-09-29 Hans-Peter Nilsson <hp@axis.com> + + * config/cris/cris.md (moverside, movemside): With MEM, make sure + the address is (plus reg mem). + 2004-09-29 David Edelsohn <edelsohn@gnu.org> * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Define. diff --git a/gcc/config/cris/cris.md b/gcc/config/cris/cris.md index 6092d241b73..1e925dbf4ba 100644 --- a/gcc/config/cris/cris.md +++ b/gcc/config/cris/cris.md @@ -4904,9 +4904,10 @@ rtx otherop = rtx_equal_p (operands[2], operands[0]) ? operands[3] : operands[2]; - /* Make sure we have canonical RTX so we match the insn pattern - a - register or MULT in the first operand, not a constant. */ - if (CONSTANT_P (otherop)) + /* Make sure we have canonical RTX so we match the insn pattern - + not a constant in the first operand. We also require the order + (plus reg mem) to match the final pattern. */ + if (CONSTANT_P (otherop) || MEM_P (otherop)) { operands[7] = operands[1]; operands[8] = otherop; @@ -4954,9 +4955,10 @@ rtx otherop = rtx_equal_p (operands[2], operands[0]) ? operands[3] : operands[2]; - /* Make sure we have canonical RTX so we match the insn pattern - a - register or MULT in the first operand, not a constant. */ - if (CONSTANT_P (otherop)) + /* Make sure we have canonical RTX so we match the insn pattern - + not a constant in the first operand. We also require the order + (plus reg mem) to match the final pattern. */ + if (CONSTANT_P (otherop) || MEM_P (otherop)) { operands[7] = operands[1]; operands[8] = otherop; |