(mov[sd]i and splits): Change call to alpha_emit_set_const.
authorRichard Kenner <kenner@gcc.gnu.org>
Fri, 28 Apr 1995 14:38:02 +0000 (10:38 -0400)
committerRichard Kenner <kenner@gcc.gnu.org>
Fri, 28 Apr 1995 14:38:02 +0000 (10:38 -0400)
From-SVN: r9533

gcc/config/alpha/alpha.md

index 350d32bc750c0749b02cecaecc7c41b34fc45111..4f46a130c412d2dfa9e0de9b45f839cb488a6c20 100644 (file)
     ;
   else if (GET_CODE (operands[1]) == CONST_INT)
     {
-      if (alpha_emit_set_const (operands[0], INTVAL (operands[1]), 3))
+      operands[1]
+       = alpha_emit_set_const (operands[0], SImode, INTVAL (operands[1]), 3);
+      if (rtx_equal_p (operands[0], operands[1]))
        DONE;
-      else
-       abort ();
     }
 }")
 
   [(set (match_dup 0) (match_dup 2))
    (set (match_dup 0) (plus:SI (match_dup 0) (match_dup 3)))]
   "
-{ if (alpha_emit_set_const (operands[0], INTVAL (operands[1]), 2))
+{ rtx tem
+    = alpha_emit_set_const (operands[0], SImode, INTVAL (operands[1]), 2);
+
+  if (tem == operands[0])
     DONE;
   else
     FAIL;
   ""
   "
 {
+  rtx tem;
+
   if (GET_CODE (operands[0]) == MEM
       && ! reg_or_0_operand (operands[1], DImode))
     operands[1] = force_reg (DImode, operands[1]);
   if (! CONSTANT_P (operands[1]) || input_operand (operands[1], DImode))
     ;
   else if (GET_CODE (operands[1]) == CONST_INT
-          && alpha_emit_set_const (operands[0], INTVAL (operands[1]), 3))
-    DONE;
+          && (tem = alpha_emit_set_const (operands[0], DImode,
+                                          INTVAL (operands[1]), 3)) != 0)
+    {
+      if (rtx_equal_p (tem, operands[0]))
+       DONE;
+      else
+       operands[1] = tem;
+    }
   else if (CONSTANT_P (operands[1]))
     {
       operands[1] = force_const_mem (DImode, operands[1]);
   [(set (match_dup 0) (match_dup 2))
    (set (match_dup 0) (plus:DI (match_dup 0) (match_dup 3)))]
   "
-{ if (alpha_emit_set_const (operands[0], INTVAL (operands[1]), 2))
+{ rtx tem
+    = alpha_emit_set_const (operands[0], DImode, INTVAL (operands[1]), 2);
+
+  if (tem == operands[0])
     DONE;
   else
     FAIL;