aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@issan.cs.uni-dortmund.de>1999-04-28 01:48:20 +0000
committerAndreas Schwab <schwab@gcc.gnu.org>1999-04-28 01:48:20 +0000
commit41a12ce742909b56b505f7b9d915de418b2dee2f (patch)
treec7b455895c29cf7a62be2db9b47ae2a2c8a88f1f /gcc
parent9eab71178383c48b104b6baa948323021d42876d (diff)
downloadgcc-41a12ce742909b56b505f7b9d915de418b2dee2f.zip
gcc-41a12ce742909b56b505f7b9d915de418b2dee2f.tar.gz
gcc-41a12ce742909b56b505f7b9d915de418b2dee2f.tar.bz2
m68k.md (cmpsi+1): Use cmp.w when comparing a 16 bit constant with an address register.
* config/m68k/m68k.md (cmpsi+1): Use cmp.w when comparing a 16 bit constant with an address register. From-SVN: r26684
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/m68k/m68k.md11
2 files changed, 16 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index db234ad..9bbb9d4 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Wed Apr 28 10:36:39 1999 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
+
+ * config/m68k/m68k.md (cmpsi+1): Use cmp.w when comparing a 16 bit
+ constant with an address register.
+
Wed Apr 28 00:14:41 PDT 1999 Jeff Law (law@cygnus.com)
* version.c: Bump for snapshot.
diff --git a/gcc/config/m68k/m68k.md b/gcc/config/m68k/m68k.md
index 03138d4..a8dac72 100644
--- a/gcc/config/m68k/m68k.md
+++ b/gcc/config/m68k/m68k.md
@@ -537,6 +537,17 @@
return \"cmp%.l %d0,%d1\";
#endif
}
+ if (ADDRESS_REG_P (operands[0])
+ && GET_CODE (operands[1]) == CONST_INT
+ && INTVAL (operands[1]) < 0x8000
+ && INTVAL (operands[1]) >= -0x8000)
+ {
+#ifdef SGS_CMP_ORDER
+ return \"cmp%.w %0,%1\";
+#else
+ return \"cmp%.w %1,%0\";
+#endif
+ }
#ifdef SGS_CMP_ORDER
return \"cmp%.l %d0,%d1\";
#else