(expand_mult_highpart): Use convert_modes instead of
authorJim Wilson <wilson@gcc.gnu.org>
Thu, 29 Dec 1994 19:06:04 +0000 (11:06 -0800)
committerJim Wilson <wilson@gcc.gnu.org>
Thu, 29 Dec 1994 19:06:04 +0000 (11:06 -0800)
gen_lowpart to do conversions.

From-SVN: r8704

gcc/expmed.c

index 2b9a29bf978e5203422f57c7544568cf12f2f806..b2862b6de259edf6ceace15b3a4c9df0e3ed3bd6 100644 (file)
@@ -2487,7 +2487,7 @@ expand_mult_highpart (mode, op0, cnst1, target, unsignedp)
       tem = expand_mult (wider_mode, op0, wide_op1, NULL_RTX, unsignedp);
       tem = expand_shift (RSHIFT_EXPR, wider_mode, tem,
                          build_int_2 (size, 0), NULL_RTX, 1);
-      return gen_lowpart (mode, tem);
+      return convert_modes (mode, wider_mode, tem, unsignedp);
     }
 
   if (target == 0)
@@ -2532,7 +2532,7 @@ expand_mult_highpart (mode, op0, cnst1, target, unsignedp)
              /* Extract the high half of the just generated product.  */
              tem = expand_shift (RSHIFT_EXPR, wider_mode, tem,
                                  build_int_2 (size, 0), NULL_RTX, 1);
-             tem = gen_lowpart (mode, tem);
+             tem = convert_modes (mode, wider_mode, tem, unsignedp);
              /* We used the wrong signedness.  Adjust the result.  */
              return expand_mult_highpart_adjust (mode, tem, op0, op1,
                                                  target, unsignedp);
@@ -2553,7 +2553,7 @@ expand_mult_highpart (mode, op0, cnst1, target, unsignedp)
   /* Extract the high half of the just generated product.  */
   tem = expand_shift (RSHIFT_EXPR, wider_mode, tem,
                      build_int_2 (size, 0), NULL_RTX, 1);
-  return gen_lowpart (mode, tem);
+  return convert_modes (mode, wider_mode, tem, unsignedp);
 }
 \f
 /* Emit the code to divide OP0 by OP1, putting the result in TARGET