fix alpha glibc build failure
Richard Henderson
rth@redhat.com
Sun Sep 29 20:27:00 GMT 2002
I didn't manage to reduce the test case, but it was one of
the libm functions that does a lot of int/float union frobbing.
r~
* combine.c (force_to_mode): Handle FLOAT_MODE destinations
for CONST_INT.
Index: combine.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/combine.c,v
retrieving revision 1.319
diff -c -p -d -r1.319 combine.c
*** combine.c 29 Sep 2002 13:16:42 -0000 1.319
--- combine.c 29 Sep 2002 19:51:32 -0000
*************** force_to_mode (x, mode, mask, reg, just_
*** 6817,6828 ****
/* If none of the bits in X are needed, return a zero. */
if (! just_select && (nonzero & mask) == 0)
! return const0_rtx;
/* If X is a CONST_INT, return a new one. Do this here since the
test below will fail. */
if (GET_CODE (x) == CONST_INT)
! return gen_int_mode (INTVAL (x) & mask, mode);
/* If X is narrower than MODE and we want all the bits in X's mode, just
get X in the proper mode. */
--- 6817,6836 ----
/* If none of the bits in X are needed, return a zero. */
if (! just_select && (nonzero & mask) == 0)
! x = const0_rtx;
/* If X is a CONST_INT, return a new one. Do this here since the
test below will fail. */
if (GET_CODE (x) == CONST_INT)
! {
! if (SCALAR_INT_MODE_P (mode))
! return gen_int_mode (INTVAL (x) & mask, mode);
! else
! {
! x = GEN_INT (INTVAL (x) & mask);
! return gen_lowpart_common (mode, x);
! }
! }
/* If X is narrower than MODE and we want all the bits in X's mode, just
get X in the proper mode. */
More information about the Gcc-patches
mailing list