From 7f71709fbfde869b0bb9e098613db516ee2a762f Mon Sep 17 00:00:00 2001 From: steven Date: Sun, 19 Dec 2004 20:10:41 +0000 Subject: [PATCH] * config/i386/i386.c (ix86_split_to_parts): Use an array with four elements for decoding a CONST_DOUBLE on 64 bits targets. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@92387 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 29 +++++++++++++++++------------ gcc/config/i386/i386.c | 4 +++- 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7c9cd9c4899..c3ee48f5790 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2003-12-19 Steven Bosscher + + * config/i386/i386.c (ix86_split_to_parts): Use an array with + four elements for decoding a CONST_DOUBLE on 64 bits targets. + 2004-12-19 Bernardo Innocenti * config/m68k/m68kemb.h (TARGET_OS_CPP_BUILTINS): Remove redundant @@ -5,7 +10,7 @@ 2004-12-18 Daniel Berlin - * lambda-code.c (can_convert_to_perfect_nest): Make checking + * lambda-code.c (can_convert_to_perfect_nest): Make checking match up with what perfect_nestify can actually handle. (perfect_nestify): Don't return false in the phi node loop. @@ -68,17 +73,17 @@ 2004-12-18 Zdenek Dvorak - PR tree-optimization/18800 - * params.def (PARAM_IV_ALWAYS_PRUNE_CAND_SET_BOUND): New parameter. - * tree-ssa-loop-ivopts.c (struct iv_ca): Add n_cands field. - (ALWAYS_PRUNE_CAND_SET_BOUND): New macro. - (iv_ca_set_no_cp, iv_ca_set_cp, iv_ca_new): Update n_cands field. - (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_n_cands, iv_ca_prune): - New functions. - (iv_ca_extend): Return number of candidates in the set. - (try_add_cand_for): Add argument to iv_ca_extend calls. - (try_improve_iv_set): Use iv_ca_prune. - * doc/invoke.texi (iv-always-prune-cand-set-bound): Document. + PR tree-optimization/18800 + * params.def (PARAM_IV_ALWAYS_PRUNE_CAND_SET_BOUND): New parameter. + * tree-ssa-loop-ivopts.c (struct iv_ca): Add n_cands field. + (ALWAYS_PRUNE_CAND_SET_BOUND): New macro. + (iv_ca_set_no_cp, iv_ca_set_cp, iv_ca_new): Update n_cands field. + (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_n_cands, iv_ca_prune): + New functions. + (iv_ca_extend): Return number of candidates in the set. + (try_add_cand_for): Add argument to iv_ca_extend calls. + (try_improve_iv_set): Use iv_ca_prune. + * doc/invoke.texi (iv-always-prune-cand-set-bound): Document. 2004-12-18 Zdenek Dvorak diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index bb54c22a6c5..04ebe8c2a04 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -9835,10 +9835,11 @@ ix86_split_to_parts (rtx operand, rtx *parts, enum machine_mode mode) else if (GET_CODE (operand) == CONST_DOUBLE) { REAL_VALUE_TYPE r; - long l[3]; + 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] @@ -9848,6 +9849,7 @@ ix86_split_to_parts (rtx operand, rtx *parts, enum machine_mode mode) 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) -- 2.11.0