diff options
| -rw-r--r-- | gcc/ChangeLog | 6 | ||||
| -rw-r--r-- | gcc/config/cris/cris.c | 9 |
2 files changed, 11 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5511750..433cdac 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2008-11-05 Hans-Peter Nilsson <hp@axis.com> + + PR target/38016 + * config/cris/cris.c (cris_order_for_addsi3): Test for !REG_P, not + just MEM_P. + 2008-11-05 Martin Jambor <mjambor@suse.cz> PR middle-end/37861 diff --git a/gcc/config/cris/cris.c b/gcc/config/cris/cris.c index 88d8999..75e2e18 100644 --- a/gcc/config/cris/cris.c +++ b/gcc/config/cris/cris.c @@ -3565,14 +3565,15 @@ cris_expand_pic_call_address (rtx *opp) } /* Make sure operands are in the right order for an addsi3 insn as - generated by a define_split. A MEM as the first operand isn't - recognized by addsi3 after reload. OPERANDS contains the operands, - with the first at OPERANDS[N] and the second at OPERANDS[N+1]. */ + generated by a define_split. Nothing but REG_P as the first + operand is recognized by addsi3 after reload. OPERANDS contains + the operands, with the first at OPERANDS[N] and the second at + OPERANDS[N+1]. */ void cris_order_for_addsi3 (rtx *operands, int n) { - if (MEM_P (operands[n])) + if (!REG_P (operands[n])) { rtx tem = operands[n]; operands[n] = operands[n + 1]; |
