aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2012-03-06 10:20:34 -0800
committerRichard Henderson <rth@gcc.gnu.org>2012-03-06 10:20:34 -0800
commit22a89c862f73f2d36543d0fb156863c8b96af04b (patch)
tree16e7a66043117f1b10c4cb863184ef27ae5c5bc4 /gcc
parent593f74bbab63d34c7060918088bcbad686c31c66 (diff)
downloadgcc-22a89c862f73f2d36543d0fb156863c8b96af04b.zip
gcc-22a89c862f73f2d36543d0fb156863c8b96af04b.tar.gz
gcc-22a89c862f73f2d36543d0fb156863c8b96af04b.tar.bz2
m68k: Limit TAS to 68000 and CF ISA_B.
From-SVN: r185011
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/m68k/m68k.h1
-rw-r--r--gcc/config/m68k/sync.md4
3 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6f5d9cb..aee953e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2012-03-06 Richard Henderson <rth@redhat.com>
+
+ * config/m68k/m68k.h (ISA_HAS_TAS): New.
+ * config/m68k/sync.md (atomic_test_and_set): Use it.
+ (atomic_test_and_set_1): Likewise.
+
2012-03-06 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/50310
diff --git a/gcc/config/m68k/m68k.h b/gcc/config/m68k/m68k.h
index dbb9756..42d3779 100644
--- a/gcc/config/m68k/m68k.h
+++ b/gcc/config/m68k/m68k.h
@@ -249,6 +249,7 @@ along with GCC; see the file COPYING3. If not see
/* Some instructions are common to more than one ISA. */
#define ISA_HAS_MVS_MVZ (TARGET_ISAB || TARGET_ISAC)
#define ISA_HAS_FF1 (TARGET_ISAAPLUS || TARGET_ISAC)
+#define ISA_HAS_TAS (!TARGET_COLDFIRE || TARGET_ISAB || TARGET_ISAC)
#define TUNE_68000 (m68k_tune == u68000)
#define TUNE_68010 (m68k_tune == u68010)
diff --git a/gcc/config/m68k/sync.md b/gcc/config/m68k/sync.md
index 6c840f5..d5cab79 100644
--- a/gcc/config/m68k/sync.md
+++ b/gcc/config/m68k/sync.md
@@ -60,7 +60,7 @@
[(match_operand:QI 0 "register_operand" "") ;; bool success output
(match_operand:QI 1 "memory_operand" "") ;; memory
(match_operand:SI 2 "const_int_operand" "")] ;; model
- ""
+ "ISA_HAS_TAS"
{
rtx t = gen_reg_rtx (QImode);
emit_insn (gen_atomic_test_and_set_1 (t, operands[1]));
@@ -77,5 +77,5 @@
UNSPECV_TAS_1))
(set (match_dup 1)
(unspec_volatile:QI [(match_dup 1)] UNSPECV_TAS_2))]
- ""
+ "ISA_HAS_TAS"
"tas %1\;sne %0")