Commit 523fbd9d by Richard Kenner Committed by Richard Kenner

i386.c (ix86_split_to_parts): Use trunc_int_for_mode to ensure valid SImode constants.

	* config/i386/i386.c (ix86_split_to_parts): Use trunc_int_for_mode
	to ensure valid SImode constants.

From-SVN: r46032
parent 17d69790
Fri Oct 5 08:17:46 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* config/i386/i386.c (ix86_split_to_parts): Use trunc_int_for_mode
to ensure valid SImode constants.
2001-10-05 Alexandre Oliva <aoliva@redhat.com>
* Makefile.in (c-decl.o): Depend on tree-inline.h.
......
......@@ -8465,7 +8465,7 @@ ix86_split_to_parts (operand, parts, mode)
case XFmode:
case TFmode:
REAL_VALUE_TO_TARGET_LONG_DOUBLE (r, l);
parts[2] = GEN_INT (l[2]);
parts[2] = GEN_INT (trunc_int_for_mode (l[2], SImode));
break;
case DFmode:
REAL_VALUE_TO_TARGET_DOUBLE (r, l);
......@@ -8473,8 +8473,8 @@ ix86_split_to_parts (operand, parts, mode)
default:
abort ();
}
parts[1] = GEN_INT (l[1]);
parts[0] = GEN_INT (l[0]);
parts[1] = GEN_INT (trunc_int_for_mode (l[1], SImode));
parts[0] = GEN_INT (trunc_int_for_mode (l[0], SImode));
}
else
abort ();
......@@ -8506,10 +8506,12 @@ ix86_split_to_parts (operand, parts, mode)
REAL_VALUE_TO_TARGET_LONG_DOUBLE (r, l);
/* Do not use shift by 32 to avoid warning on 32bit systems. */
if (HOST_BITS_PER_WIDE_INT >= 64)
parts[0] = GEN_INT (l[0] + ((l[1] << 31) << 1));
parts[0]
= GEN_INT (trunc_int_for_mode (l[0] + ((l[1] << 31) << 1),
SImode));
else
parts[0] = immed_double_const (l[0], l[1], DImode);
parts[1] = GEN_INT (l[2]);
parts[1] = GEN_INT (trunc_int_for_mode (l[2], SImode));
}
else
abort ();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment