This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[3.4 Committed] PR18371: Backport from mainline
- From: Roger Sayle <roger at eyesopen dot com>
- To: gcc-patches at gcc dot gnu dot org
- Date: Wed, 16 Mar 2005 08:26:29 -0700 (MST)
- Subject: [3.4 Committed] PR18371: Backport from mainline
Another simple backport allows us to close this regression PR.
The following patch has been bootstrapped on i686-pc-linux-gnu against
the gcc-3_4-branch will a full "make bootstrap", all default languages,
and regression tested with a top-level "make -k check" with no new
failures.
Committed to the gcc-3_4-branch.
2005-03-16 Roger Sayle <roger@eyesopen.com>
PR target/18371
Backport from mainline
2004-12-19 Steven Bosscher <stevenb@suse.de>
* config/i386/i386.c (ix86_split_to_parts): Use an array with
four elements for decoding a CONST_DOUBLE on 64 bits targets.
Index: config/i386/i386.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/i386/i386.c,v
retrieving revision 1.635.2.19
diff -c -3 -p -r1.635.2.19 i386.c
*** config/i386/i386.c 23 Dec 2004 01:31:17 -0000 1.635.2.19
--- config/i386/i386.c 16 Mar 2005 03:32:36 -0000
*************** ix86_split_to_parts (rtx operand, rtx *p
*** 10646,10655 ****
else if (GET_CODE (operand) == CONST_DOUBLE)
{
REAL_VALUE_TYPE r;
! long l[3];
REAL_VALUE_FROM_CONST_DOUBLE (r, operand);
real_to_target (l, &r, mode);
/* Do not use shift by 32 to avoid warning on 32bit systems. */
if (HOST_BITS_PER_WIDE_INT >= 64)
parts[0]
--- 10646,10656 ----
else if (GET_CODE (operand) == CONST_DOUBLE)
{
REAL_VALUE_TYPE r;
! long l[4];
REAL_VALUE_FROM_CONST_DOUBLE (r, operand);
real_to_target (l, &r, mode);
+
/* Do not use shift by 32 to avoid warning on 32bit systems. */
if (HOST_BITS_PER_WIDE_INT >= 64)
parts[0]
*************** ix86_split_to_parts (rtx operand, rtx *p
*** 10659,10664 ****
--- 10660,10666 ----
DImode);
else
parts[0] = immed_double_const (l[0], l[1], DImode);
+
if (upper_mode == SImode)
parts[1] = gen_int_mode (l[2], SImode);
else if (HOST_BITS_PER_WIDE_INT >= 64)
Roger
--