This patch fixes out the GEN_INT/gen_int_mode that Richard pointed out
in the wide-int review. It also passes "mode" rather than "VOIDmode"
to immed_double_int_const. (As discussed in that thread, the latter
change shouldn't make any difference in practice, but is still more
correct in principle.)
Bootstrapped & regression-tested on x86_64-linux-gnu. OK to install?
Richard
gcc/
* explow.c (plus_constant): Pass "mode" to immed_double_int_const.
Use gen_int_mode rather than GEN_INT.
Index: gcc/explow.c
===================================================================
--- gcc/explow.c 2013-02-25 09:41:58.000000000 +0000
+++ gcc/explow.c 2013-04-30 15:52:57.270362112 +0100
@@ -106,10 +106,10 @@ plus_constant (enum machine_mode mode, r
if (overflow)
gcc_unreachable ();
- return immed_double_int_const (v, VOIDmode);
+ return immed_double_int_const (v, mode);
}
- return GEN_INT (INTVAL (x) + c);
+ return gen_int_mode (INTVAL (x) + c, mode);
case CONST_DOUBLE:
{
@@ -124,7 +124,7 @@ plus_constant (enum machine_mode mode, r
To fix, add constant support wider than CONST_DOUBLE. */
gcc_assert (GET_MODE_BITSIZE (mode) <= HOST_BITS_PER_DOUBLE_INT);
- return immed_double_int_const (v, VOIDmode);
+ return immed_double_int_const (v, mode);
}
case MEM: