summaryrefslogtreecommitdiff
path: root/gcc/reg-stack.c
diff options
context:
space:
mode:
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>2008-11-06 12:01:23 +0000
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>2008-11-06 12:01:23 +0000
commit458dbf04cb59077e26adb7b22bb0c1637cc7d5fc (patch)
tree4d0042906314a961d0a3980e433ba13bcb8b0780 /gcc/reg-stack.c
parentd69178245d3c0e40aaafc0c485fe02eddccc0ae2 (diff)
downloadgcc-458dbf04cb59077e26adb7b22bb0c1637cc7d5fc.tar.gz
* reg-stack.c (reg_to_stack): Generate +QNaN using real_nan.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@141640 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/reg-stack.c')
-rw-r--r--gcc/reg-stack.c7
1 files changed, 5 insertions, 2 deletions
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);
}