mips.h (ISA_HAS_LL_SC): Exclude TARGET_MIPS5900.
authorJürgen Urban <JuergenUrban@gmx.de>
Sun, 16 Jun 2013 09:16:23 +0000 (09:16 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Sun, 16 Jun 2013 09:16:23 +0000 (09:16 +0000)
gcc/
2013-06-16  Jürgen Urban  <JuergenUrban@gmx.de>

* config/mips/mips.h (ISA_HAS_LL_SC): Exclude TARGET_MIPS5900.
* config/mips/mips.c (mips_start_ll_sc_sync_block): Output
".set mips3" for 64-bit targets.

From-SVN: r200132

gcc/ChangeLog
gcc/config/mips/mips.c
gcc/config/mips/mips.h

index d4a354623844c496a3d13b666ab7804342f35cbe..3b3044f218930efa783713e76971a96021a9bdea 100644 (file)
@@ -1,3 +1,9 @@
+2013-06-16  Jürgen Urban  <JuergenUrban@gmx.de>
+
+       * config/mips/mips.h (ISA_HAS_LL_SC): Exclude TARGET_MIPS5900.
+       * config/mips/mips.c (mips_start_ll_sc_sync_block): Output
+       ".set mips3" for 64-bit targets.
+
 2013-06-15  Dehao Chen  <dehao@google.com>
 
        * tree-flow.h (gimple_check_call_matching_types): Add new argument.
index ff316449812dd800e3a449331fe7ca9089e71375..bd1d10b0e4ed363d7381ddece88948b75894aa79 100644 (file)
@@ -12463,7 +12463,10 @@ mips_start_ll_sc_sync_block (void)
   if (!ISA_HAS_LL_SC)
     {
       output_asm_insn (".set\tpush", 0);
-      output_asm_insn (".set\tmips2", 0);
+      if (TARGET_64BIT)
+       output_asm_insn (".set\tmips3", 0);
+      else
+       output_asm_insn (".set\tmips2", 0);
     }
 }
 
index 48a8b42f5bc2ae51b9947b9efff56f922ccc77a8..479bdd4531ce336839dc7d1348d98c8d8537857e 100644 (file)
@@ -1063,7 +1063,7 @@ struct mips_cpu_info {
 /* ISA includes ll and sc.  Note that this implies ISA_HAS_SYNC
    because the expanders use both ISA_HAS_SYNC and ISA_HAS_LL_SC
    instructions.  */
-#define ISA_HAS_LL_SC (mips_isa >= 2 && !TARGET_MIPS16)
+#define ISA_HAS_LL_SC (mips_isa >= 2 && !TARGET_MIPS5900 && !TARGET_MIPS16)
 #define GENERATE_LL_SC                 \
   (target_flags_explicit & MASK_LLSC   \
    ? TARGET_LLSC && !TARGET_MIPS16     \