diff options
author | Richard Henderson <rth@redhat.com> | 2012-03-06 10:20:34 -0800 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2012-03-06 10:20:34 -0800 |
commit | 22a89c862f73f2d36543d0fb156863c8b96af04b (patch) | |
tree | 16e7a66043117f1b10c4cb863184ef27ae5c5bc4 | |
parent | 593f74bbab63d34c7060918088bcbad686c31c66 (diff) | |
download | gcc-22a89c862f73f2d36543d0fb156863c8b96af04b.zip gcc-22a89c862f73f2d36543d0fb156863c8b96af04b.tar.gz gcc-22a89c862f73f2d36543d0fb156863c8b96af04b.tar.bz2 |
m68k: Limit TAS to 68000 and CF ISA_B.
From-SVN: r185011
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/m68k/m68k.h | 1 | ||||
-rw-r--r-- | gcc/config/m68k/sync.md | 4 |
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") |