diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1996-11-12 14:26:11 -0500 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1996-11-12 14:26:11 -0500 |
commit | 71e1e2c8431247a4f7c0961da1fff7e65d0ee14f (patch) | |
tree | 4e0c14f24f6bc08902ffbb8e2b02accc04d265e9 /gcc | |
parent | dfb331d6941fa829b0f060e79568875991e3eb70 (diff) | |
download | gcc-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.md | 14 |
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\"; }") |