diff options
author | Richard Kenner <kenner@vlsi1.ultra.nyu.edu> | 2001-10-05 12:14:22 +0000 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 2001-10-05 08:14:22 -0400 |
commit | 523fbd9df50a45bf6543df72fcb0fa29fa4b12b9 (patch) | |
tree | 4228a1f975a7f1d320e0cc13a58dee949f400d4e | |
parent | 17d69790a51eb0d883feb686d97fd65514db378b (diff) | |
download | gcc-523fbd9df50a45bf6543df72fcb0fa29fa4b12b9.zip gcc-523fbd9df50a45bf6543df72fcb0fa29fa4b12b9.tar.gz gcc-523fbd9df50a45bf6543df72fcb0fa29fa4b12b9.tar.bz2 |
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
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 12 |
2 files changed, 12 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 74b4f9b..a3efa63 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +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. diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 7e65b0e..d88c853 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -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 (); |