aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKamil Iskra <iskra@student.uci.agh.edu.pl>1998-07-06 23:23:56 +0200
committerJeff Law <law@gcc.gnu.org>1998-07-06 15:23:56 -0600
commit392582fae8add8b11515a369699f0da0045bcaef (patch)
tree4023f9522127bb7970c79e125bb877dea021896c
parent702d7434a588f6436027d7794428b5bcbbcf3865 (diff)
downloadgcc-392582fae8add8b11515a369699f0da0045bcaef.zip
gcc-392582fae8add8b11515a369699f0da0045bcaef.tar.gz
gcc-392582fae8add8b11515a369699f0da0045bcaef.tar.bz2
m68k.c (output_scc_di): Use cmpw #0 instead of tstl when testing address registers on the 68000.
* m68k.c (output_scc_di): Use cmpw #0 instead of tstl when testing address registers on the 68000. From-SVN: r20963
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/m68k/m68k.c16
2 files changed, 20 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1aac5d0..073aadb 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Mon Jul 6 22:21:56 1998 Kamil Iskra <iskra@student.uci.agh.edu.pl>
+
+ * m68k.c (output_scc_di): Use cmpw #0 instead of tstl when
+ testing address registers on the 68000.
+
Mon Jul 6 22:17:19 1998 Alasdair Baird <alasdair@wildcat.demon.co.uk>
* jump.c (jump_optimize) Check for CONST_INT before using INTVAL.
diff --git a/gcc/config/m68k/m68k.c b/gcc/config/m68k/m68k.c
index 164cf6b..e6a3caba 100644
--- a/gcc/config/m68k/m68k.c
+++ b/gcc/config/m68k/m68k.c
@@ -1059,12 +1059,26 @@ output_scc_di(op, operand1, operand2, dest)
output_asm_insn ("cmp%.l %2,%0\n\tjne %l4\n\tcmp%.l %3,%1", loperands);
#endif
#endif
- else
+ else if (TARGET_68020 || TARGET_5200)
#ifdef MOTOROLA
output_asm_insn ("tst%.l %0\n\tjbne %l4\n\ttst%.l %1", loperands);
#else
output_asm_insn ("tst%.l %0\n\tjne %l4\n\ttst%.l %1", loperands);
#endif
+ else
+#ifdef MOTOROLA
+#ifdef SGS_CMP_ORDER
+ output_asm_insn ("cmp%.w %0,%#0\n\tjbne %l4\n\tcmp%.w %1,%#0", loperands);
+#else
+ output_asm_insn ("cmp%.w %#0,%0\n\tjbne %l4\n\tcmp%.w %#0,%1", loperands);
+#endif
+#else
+#ifdef SGS_CMP_ORDER
+ output_asm_insn ("cmp%.w %0,%#0\n\tjne %l4\n\tcmp%.w %1,%#0", loperands);
+#else
+ output_asm_insn ("cmp%.w %#0,%0\n\tjne %l4\n\tcmp%.w %#0,%1", loperands);
+#endif
+#endif
loperands[5] = dest;
switch (op_code)