]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
reg-stack.c (reg_to_stack): Generate +QNaN using real_nan.
authorUros Bizjak <uros@gcc.gnu.org>
Thu, 6 Nov 2008 12:01:23 +0000 (13:01 +0100)
committerUros Bizjak <uros@gcc.gnu.org>
Thu, 6 Nov 2008 12:01:23 +0000 (13:01 +0100)
* reg-stack.c (reg_to_stack): Generate +QNaN using real_nan.

From-SVN: r141640

gcc/ChangeLog
gcc/reg-stack.c

index ac8bc74d035a00ed3fa2ac07dd0b5664855e05c9..e0f76e8456a335439b7988764fe94c7cd24d62a9 100644 (file)
@@ -1,3 +1,7 @@
+2008-11-06  Uros Bizjak  <ubizjak@gmail.com>
+
+       * reg-stack.c (reg_to_stack): Generate +QNaN using real_nan.
+
 2008-11-06  Ben Elliston  <bje@au.ibm.com>
 
        * 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.
 2008-10-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
 
        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.
 
index 0cde0cbc26ed09d657d6f467ff642bf49d1ebf29..7511d18139ee301364e883142d46bdce15c517e6 100644 (file)
@@ -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);
     }