diff options
author | Andreas Schwab <schwab@issan.cs.uni-dortmund.de> | 1999-04-28 01:48:20 +0000 |
---|---|---|
committer | Andreas Schwab <schwab@gcc.gnu.org> | 1999-04-28 01:48:20 +0000 |
commit | 41a12ce742909b56b505f7b9d915de418b2dee2f (patch) | |
tree | c7b455895c29cf7a62be2db9b47ae2a2c8a88f1f /gcc | |
parent | 9eab71178383c48b104b6baa948323021d42876d (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/m68k/m68k.md | 11 |
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 |