aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Earnshaw <erich@gnu.org>1994-10-09 16:39:43 +0000
committerRichard Earnshaw <erich@gnu.org>1994-10-09 16:39:43 +0000
commit660f1419f49c5f6f9f2341aac437607a16ad8e7f (patch)
treedfba7736e4a859640db84dcfe33db5f5ae6f175a
parent8184390eea42cd84b59c4902eaa6751566cca85f (diff)
downloadgcc-660f1419f49c5f6f9f2341aac437607a16ad8e7f.zip
gcc-660f1419f49c5f6f9f2341aac437607a16ad8e7f.tar.gz
gcc-660f1419f49c5f6f9f2341aac437607a16ad8e7f.tar.bz2
(reload_outdf): Don't emit an add insn if the address is just a register.
From-SVN: r8244
-rw-r--r--gcc/config/arm/arm.md7
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md
index e72acd3..5ace526 100644
--- a/gcc/config/arm/arm.md
+++ b/gcc/config/arm/arm.md
@@ -2493,8 +2493,11 @@
(match_operand:SI 2 "s_register_operand" "=&r")]
""
"
- emit_insn (gen_addsi3 (operands[2], XEXP (XEXP (operands[0], 0), 0),
- XEXP (XEXP (operands[0], 0), 1)));
+ if (GET_CODE (XEXP (operands[0], 0)) == REG)
+ operands[2] = XEXP (operands[0], 0);
+ else
+ emit_insn (gen_addsi3 (operands[2], XEXP (XEXP (operands[0], 0), 0),
+ XEXP (XEXP (operands[0], 0), 1)));
emit_insn (gen_rtx (SET, VOIDmode, gen_rtx (MEM, DFmode, operands[2]),
operands[1]));
DONE;