Fix CRIS build errors with --enable-build-with-cxx.
authorHans-Peter Nilsson <hp@axis.com>
Sat, 9 Jun 2012 20:53:39 +0000 (20:53 +0000)
committerHans-Peter Nilsson <hp@gcc.gnu.org>
Sat, 9 Jun 2012 20:53:39 +0000 (20:53 +0000)
* config/cris/cris.c (cris_emit_trap_for_misalignment): Rename
variable "and" to "andop".
* config/cris/sync.md ("atomic_fetch_<atomic_op_name><mode>"): Use
temporary variable for memory model, passing C++-type-correct
parameter type to expand_mem_thread_fence.
("atomic_compare_and_swap<mode>"): Ditto.

From-SVN: r188362

gcc/ChangeLog
gcc/config/cris/cris.c
gcc/config/cris/sync.md

index 1342b2df648931459fc21a30f10040a02e9dc98b..7ecc132082ef241e0cc3bf52658add3158841cdb 100644 (file)
@@ -1,3 +1,13 @@
+2012-06-09  Hans-Peter Nilsson  <hp@axis.com>
+
+       Fix CRIS build errors with --enable-build-with-cxx.
+       * config/cris/cris.c (cris_emit_trap_for_misalignment): Rename
+       variable "and" to "andop".
+       * config/cris/sync.md ("atomic_fetch_<atomic_op_name><mode>"): Use
+       temporary variable for memory model, passing C++-type-correct
+       parameter type to expand_mem_thread_fence.
+       ("atomic_compare_and_swap<mode>"): Ditto.
+
 2012-06-09  Richard Henderson  <rth@redhat.com>
 
        PR c++/53602
index 947a6a5141650523ddb20c75fee03f068cf1593b..f5bd6dbdb3a55df955cb8921099df78f10f8fff9 100644 (file)
@@ -1929,7 +1929,7 @@ cris_simple_epilogue (void)
 void
 cris_emit_trap_for_misalignment (rtx mem)
 {
-  rtx addr, reg, ok_label, and, jmp;
+  rtx addr, reg, ok_label, andop, jmp;
   int natural_alignment;
   gcc_assert (MEM_P (mem));
 
@@ -1941,8 +1941,8 @@ cris_emit_trap_for_misalignment (rtx mem)
   /* This will yield a btstq without a separate register used, usually -
      with the exception for PRE hoisting the "and" but not the branch
      around the trap: see gcc.dg/target/cris/sync-3s.c.  */
-  and = gen_rtx_AND (Pmode, reg, GEN_INT (natural_alignment - 1));
-  emit_cmp_and_jump_insns (force_reg (SImode, and), const0_rtx, EQ,
+  andop = gen_rtx_AND (Pmode, reg, GEN_INT (natural_alignment - 1));
+  emit_cmp_and_jump_insns (force_reg (SImode, andop), const0_rtx, EQ,
                           NULL_RTX, Pmode, 1, ok_label);
   jmp = get_last_insn ();
   gcc_assert (JUMP_P (jmp));
index 6acd2b611584b236f4bdda74915ecf96e6aeb26c..d0cc3b28e4e5326e3d52c45e37af080ebfc74e86 100644 (file)
    (atomic_op:BWD (match_dup 0) (match_dup 1))]
   ""
 {
+  enum memmodel mmodel = (enum memmodel) INTVAL (operands[3]);
+
   if (<MODE>mode != QImode && TARGET_TRAP_UNALIGNED_ATOMIC)
     cris_emit_trap_for_misalignment (operands[1]);
 
-  expand_mem_thread_fence (INTVAL (operands[3]));
+  expand_mem_thread_fence (mmodel);
   emit_insn (gen_cris_atomic_fetch_<atomic_op_name><mode>_1 (operands[0],
                                                             operands[1],
                                                             operands[2]));
-  expand_mem_thread_fence (INTVAL (operands[3]));
+  expand_mem_thread_fence (mmodel);
   DONE;
 })
 
    (match_operand 7)]
   ""
 {
+  enum memmodel mmodel = (enum memmodel) INTVAL (operands[6]);
+
   if (<MODE>mode != QImode && TARGET_TRAP_UNALIGNED_ATOMIC)
     cris_emit_trap_for_misalignment (operands[2]);
 
-  expand_mem_thread_fence (INTVAL (operands[6]));
+  expand_mem_thread_fence (mmodel);
   emit_insn (gen_cris_atomic_compare_and_swap<mode>_1 (operands[0],
                                                       operands[1],
                                                       operands[2],
                                                       operands[3],
                                                       operands[4]));
-  expand_mem_thread_fence (INTVAL (operands[6]));
+  expand_mem_thread_fence (mmodel);
   DONE;
 })