diff options
author | uros <uros@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-11-06 12:01:23 +0000 |
---|---|---|
committer | uros <uros@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-11-06 12:01:23 +0000 |
commit | 458dbf04cb59077e26adb7b22bb0c1637cc7d5fc (patch) | |
tree | 4d0042906314a961d0a3980e433ba13bcb8b0780 /gcc/reg-stack.c | |
parent | d69178245d3c0e40aaafc0c485fe02eddccc0ae2 (diff) | |
download | gcc-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.c | 7 |
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); } |