m68k: Limit TAS to 68000 and CF ISA_B.
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 6 Mar 2012 18:20:34 +0000 (18:20 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 6 Mar 2012 18:20:34 +0000 (18:20 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@185011 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/m68k/m68k.h
gcc/config/m68k/sync.md

index 6f5d9cb..aee953e 100644 (file)
@@ -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
index dbb9756..42d3779 100644 (file)
@@ -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)
index 6c840f5..d5cab79 100644 (file)
@@ -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")