aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1996-11-12 14:26:11 -0500
committerRichard Kenner <kenner@gcc.gnu.org>1996-11-12 14:26:11 -0500
commit71e1e2c8431247a4f7c0961da1fff7e65d0ee14f (patch)
tree4e0c14f24f6bc08902ffbb8e2b02accc04d265e9 /gcc
parentdfb331d6941fa829b0f060e79568875991e3eb70 (diff)
downloadgcc-71e1e2c8431247a4f7c0961da1fff7e65d0ee14f.zip
gcc-71e1e2c8431247a4f7c0961da1fff7e65d0ee14f.tar.gz
gcc-71e1e2c8431247a4f7c0961da1fff7e65d0ee14f.tar.bz2
(addsi3): If TARGET_5200, use the lea insn to add small constants to
address registers. From-SVN: r13137
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/m68k/m68k.md14
1 files changed, 11 insertions, 3 deletions
diff --git a/gcc/config/m68k/m68k.md b/gcc/config/m68k/m68k.md
index b9b3bff..cb791f6 100644
--- a/gcc/config/m68k/m68k.md
+++ b/gcc/config/m68k/m68k.md
@@ -2173,9 +2173,17 @@
#endif
if (ADDRESS_REG_P (operands[0])
&& INTVAL (operands[2]) >= -0x8000
- && INTVAL (operands[2]) < 0x8000
- && !TARGET_5200)
- return \"add%.w %2,%0\";
+ && INTVAL (operands[2]) < 0x8000)
+ {
+ if (!TARGET_5200)
+ return \"add%.w %2,%0\";
+ else
+#ifdef MOTOROLA
+ return \"lea (%c2,%0),%0\";
+#else
+ return \"lea %0@(%c2),%0\";
+#endif
+ }
}
return \"add%.l %2,%0\";
}")