aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>2001-10-05 12:14:22 +0000
committerRichard Kenner <kenner@gcc.gnu.org>2001-10-05 08:14:22 -0400
commit523fbd9df50a45bf6543df72fcb0fa29fa4b12b9 (patch)
tree4228a1f975a7f1d320e0cc13a58dee949f400d4e
parent17d69790a51eb0d883feb686d97fd65514db378b (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--gcc/config/i386/i386.c12
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 ();