From 11f48903b00851c8edc5cf24a3497b8cf9957173 Mon Sep 17 00:00:00 2001 From: Uros Bizjak Date: Thu, 6 Nov 2008 13:01:23 +0100 Subject: [PATCH] reg-stack.c (reg_to_stack): Generate +QNaN using real_nan. * reg-stack.c (reg_to_stack): Generate +QNaN using real_nan. From-SVN: r141640 --- gcc/ChangeLog | 10 +++++++--- gcc/reg-stack.c | 7 +++++-- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ac8bc74d035..e0f76e8456a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2008-11-06 Uros Bizjak + + * reg-stack.c (reg_to_stack): Generate +QNaN using real_nan. + 2008-11-06 Ben Elliston * gcc.c: Remove ancient comment about a bug in Sun cc. @@ -35,7 +39,8 @@ qualified pointer conversion before stripping qualifiers. * gimplify.c (create_tmp_from_val): Use correctly qualified type. * tree-flow.h (may_propagate_address_into_dereference): Declare. - * tree-ssa-ccp.c (may_propagate_address_into_dereference): New function. + * tree-ssa-ccp.c (may_propagate_address_into_dereference): New + function. (ccp_fold): Use it. * tree-ssa-forwprop.c (rhs_to_tree): Remove useless conversions, properly canonicalize binary ops. @@ -718,8 +723,7 @@ 2008-10-19 Manuel López-Ibáñez PR c/30260 - * c-decl.c (finish_enum): Convert non-integer enumerators to enum - type. + * c-decl.c (finish_enum): Convert non-integer enumerators to enum type. (build_enumerator): Convert enumerators that fit in integer to integer type. diff --git a/gcc/reg-stack.c b/gcc/reg-stack.c index 0cde0cbc26e..7511d18139e 100644 --- a/gcc/reg-stack.c +++ b/gcc/reg-stack.c @@ -3180,14 +3180,17 @@ reg_to_stack (void) ??? We can't load from constant memory in PIC mode, because we're inserting these instructions before the prologue and the PIC register hasn't been set up. In that case, fall back - on zero, which we can get from `ldz'. */ + on zero, which we can get from `fldz'. */ if ((flag_pic && !TARGET_64BIT) || ix86_cmodel == CM_LARGE || ix86_cmodel == CM_LARGE_PIC) not_a_num = CONST0_RTX (SFmode); else { - not_a_num = gen_lowpart (SFmode, GEN_INT (0x7fc00000)); + REAL_VALUE_TYPE r; + + real_nan (&r, "", 1, SFmode); + not_a_num = CONST_DOUBLE_FROM_REAL_VALUE (r, SFmode); not_a_num = force_const_mem (SFmode, not_a_num); } -- 2.30.2