]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
i386.c (ix86_legitimize_address): Call convert_to_mode unconditionally.
authorUros Bizjak <ubizjak@gmail.com>
Fri, 4 Jan 2013 18:19:22 +0000 (19:19 +0100)
committerUros Bizjak <uros@gcc.gnu.org>
Fri, 4 Jan 2013 18:19:22 +0000 (19:19 +0100)
* config/i386/i386.c (ix86_legitimize_address): Call convert_to_mode
unconditionally.
(ix86_expand_move): Ditto.
(ix86_zero_extend_to_Pmode): Ditto.
(ix86_expand_call): Ditto.
(ix86_expand_special_args_builtin): Ditto.
(ix86_expand_builtin): Ditto.

From-SVN: r194913

gcc/ChangeLog
gcc/config/i386/i386.c

index 1c6e735834c03d5d86c0da3ac196acc9401f7bee..be15aa3b938b4d2153d4fbcb48a7c3f13302cd26 100644 (file)
@@ -1,3 +1,13 @@
+2013-01-04  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.c (ix86_legitimize_address): Call convert_to_mode
+       unconditionally.
+       (ix86_expand_move): Ditto.
+       (ix86_zero_extend_to_Pmode): Ditto.
+       (ix86_expand_call): Ditto.
+       (ix86_expand_special_args_builtin): Ditto.
+       (ix86_expand_builtin): Ditto.
+
 2013-01-04  Richard Biener  <rguenther@suse.de>
 
        PR tree-optimization/55862
index 6dffe14b23f6097a162f656833fd6685b902e4fd..39c24a497a8dda0be0ed39387e54cd92c40e7816 100644 (file)
@@ -13247,8 +13247,7 @@ ix86_legitimize_address (rtx x, rtx oldx ATTRIBUTE_UNUSED,
          rtx val  = force_operand (XEXP (x, 1), temp);
          if (val != temp)
            {
-             if (GET_MODE (val) != Pmode)
-               val = convert_to_mode (Pmode, val, 1);
+             val = convert_to_mode (Pmode, val, 1);
              emit_move_insn (temp, val);
            }
 
@@ -13262,8 +13261,7 @@ ix86_legitimize_address (rtx x, rtx oldx ATTRIBUTE_UNUSED,
          rtx val  = force_operand (XEXP (x, 0), temp);
          if (val != temp)
            {
-             if (GET_MODE (val) != Pmode)
-               val = convert_to_mode (Pmode, val, 1);
+             val = convert_to_mode (Pmode, val, 1);
              emit_move_insn (temp, val);
            }
 
@@ -15931,8 +15929,7 @@ ix86_expand_move (enum machine_mode mode, rtx operands[])
          op1 = force_operand (op1, op0);
          if (op1 == op0)
            return;
-         if (GET_MODE (op1) != mode)
-           op1 = convert_to_mode (mode, op1, 1);
+         op1 = convert_to_mode (mode, op1, 1);
        }
       else if (TARGET_DLLIMPORT_DECL_ATTRIBUTES
               && SYMBOL_REF_DLLIMPORT_P (op1))
@@ -16013,8 +16010,7 @@ ix86_expand_move (enum machine_mode mode, rtx operands[])
              op1 = legitimize_pic_address (op1, reg);
              if (op0 == op1)
                return;
-             if (GET_MODE (op1) != mode)
-               op1 = convert_to_mode (mode, op1, 1);
+             op1 = convert_to_mode (mode, op1, 1);
            }
        }
     }
@@ -21650,9 +21646,7 @@ ix86_adjust_counter (rtx countreg, HOST_WIDE_INT value)
 rtx
 ix86_zero_extend_to_Pmode (rtx exp)
 {
-  if (GET_MODE (exp) != Pmode)
-    exp = convert_to_mode (Pmode, exp, 1);
-  return force_reg (Pmode, exp);
+  return force_reg (Pmode, convert_to_mode (Pmode, exp, 1));
 }
 
 /* Divide COUNTREG by SCALE.  */
@@ -23624,9 +23618,7 @@ ix86_expand_call (rtx retval, rtx fnaddr, rtx callarg1,
           ? !sibcall_insn_operand (XEXP (fnaddr, 0), word_mode)
           : !call_insn_operand (XEXP (fnaddr, 0), word_mode))
     {
-      fnaddr = XEXP (fnaddr, 0);
-      if (GET_MODE (fnaddr) != word_mode)
-       fnaddr = convert_to_mode (word_mode, fnaddr, 1);
+      fnaddr = convert_to_mode (word_mode, XEXP (fnaddr, 0), 1);
       fnaddr = gen_rtx_MEM (QImode, copy_to_mode_reg (word_mode, fnaddr));
     }
 
@@ -31276,9 +31268,8 @@ ix86_expand_special_args_builtin (const struct builtin_description *d,
       gcc_assert (target == 0);
       if (memory)
        {
-         if (GET_MODE (op) != Pmode)
-           op = convert_to_mode (Pmode, op, 1);
-         target = gen_rtx_MEM (tmode, force_reg (Pmode, op));
+         op = force_reg (Pmode, convert_to_mode (Pmode, op, 1));
+         target = gen_rtx_MEM (tmode, op);
        }
       else
        target = force_reg (tmode, op);
@@ -31322,9 +31313,8 @@ ix86_expand_special_args_builtin (const struct builtin_description *d,
          if (i == memory)
            {
              /* This must be the memory operand.  */
-             if (GET_MODE (op) != Pmode)
-               op = convert_to_mode (Pmode, op, 1);
-             op = gen_rtx_MEM (mode, force_reg (Pmode, op));
+             op = force_reg (Pmode, convert_to_mode (Pmode, op, 1));
+             op = gen_rtx_MEM (mode, op);
              gcc_assert (GET_MODE (op) == mode
                          || GET_MODE (op) == VOIDmode);
            }
@@ -31572,9 +31562,8 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget ATTRIBUTE_UNUSED,
       mode1 = insn_data[icode].operand[1].mode;
       mode2 = insn_data[icode].operand[2].mode;
 
-      if (GET_MODE (op0) != Pmode)
-       op0 = convert_to_mode (Pmode, op0, 1);
-      op0 = gen_rtx_MEM (mode1, force_reg (Pmode, op0));
+      op0 = force_reg (Pmode, convert_to_mode (Pmode, op0, 1));
+      op0 = gen_rtx_MEM (mode1, op0);
 
       if (!insn_data[icode].operand[0].predicate (op0, mode0))
        op0 = copy_to_mode_reg (mode0, op0);
@@ -31605,11 +31594,7 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget ATTRIBUTE_UNUSED,
        op0 = expand_normal (arg0);
        icode = CODE_FOR_sse2_clflush;
        if (!insn_data[icode].operand[0].predicate (op0, Pmode))
-         {
-           if (GET_MODE (op0) != Pmode)
-             op0 = convert_to_mode (Pmode, op0, 1);
-           op0 = force_reg (Pmode, op0);
-         }
+         op0 = force_reg (Pmode, convert_to_mode (Pmode, op0, 1));
 
        emit_insn (gen_sse2_clflush (op0));
        return 0;
@@ -31622,11 +31607,7 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget ATTRIBUTE_UNUSED,
       op1 = expand_normal (arg1);
       op2 = expand_normal (arg2);
       if (!REG_P (op0))
-       {
-         if (GET_MODE (op0) != Pmode)
-           op0 = convert_to_mode (Pmode, op0, 1);
-         op0 = force_reg (Pmode, op0);
-       }
+       op0 = force_reg (Pmode, convert_to_mode (Pmode, op0, 1));
       if (!REG_P (op1))
        op1 = copy_to_mode_reg (SImode, op1);
       if (!REG_P (op2))
@@ -31863,11 +31844,7 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget ATTRIBUTE_UNUSED,
       op0 = expand_normal (arg0);
       icode = CODE_FOR_lwp_llwpcb;
       if (!insn_data[icode].operand[0].predicate (op0, Pmode))
-       {
-         if (GET_MODE (op0) != Pmode)
-           op0 = convert_to_mode (Pmode, op0, 1);
-         op0 = force_reg (Pmode, op0);
-       }
+       op0 = force_reg (Pmode, convert_to_mode (Pmode, op0, 1));
       emit_insn (gen_lwp_llwpcb (op0));
       return 0;
 
@@ -32013,9 +31990,7 @@ addcarryx:
 
       /* Generate CF from input operand.  */
       op1 = expand_normal (arg0);
-      if (GET_MODE (op1) != QImode)
-       op1 = convert_to_mode (QImode, op1, 1);
-      op1 = copy_to_mode_reg (QImode, op1);
+      op1 = copy_to_mode_reg (QImode, convert_to_mode (QImode, op1, 1));
       emit_insn (gen_addqi3_cc (op0, op1, constm1_rtx));
 
       /* Gen ADCX instruction to compute X+Y+CF.  */
@@ -32165,9 +32140,7 @@ addcarryx:
       /* Force memory operand only with base register here.  But we
         don't want to do it on memory operand for other builtin
         functions.  */
-      if (GET_MODE (op1) != Pmode)
-       op1 = convert_to_mode (Pmode, op1, 1);
-      op1 = force_reg (Pmode, op1);
+      op1 = force_reg (Pmode, convert_to_mode (Pmode, op1, 1));
 
       if (!insn_data[icode].operand[1].predicate (op0, mode0))
        op0 = copy_to_mode_reg (mode0, op0);