diff options
author | Uros Bizjak <ubizjak@gmail.com> | 2016-10-21 00:57:11 +0200 |
---|---|---|
committer | Uros Bizjak <uros@gcc.gnu.org> | 2016-10-21 00:57:11 +0200 |
commit | a7cfe836779ddbabf98f23e47a61a1e4ed1cdb2c (patch) | |
tree | 67d874c908f67c48c4f5abfbea0b94e0aad06061 /gcc | |
parent | f3ecd50fd9ad38b211d12def589d47370465226b (diff) | |
download | gcc-a7cfe836779ddbabf98f23e47a61a1e4ed1cdb2c.zip gcc-a7cfe836779ddbabf98f23e47a61a1e4ed1cdb2c.tar.gz gcc-a7cfe836779ddbabf98f23e47a61a1e4ed1cdb2c.tar.bz2 |
i386.c (ix86_fold_builtin): Handle IX86_BUILTIN_INFQ and IX86_BUILTIN_HUGE_VALQ here ...
* config/i386/i386.c (ix86_fold_builtin): Handle IX86_BUILTIN_INFQ
and IX86_BUILTIN_HUGE_VALQ here ...
(ix86_expand_builtin): ... not here.
From-SVN: r241387
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 27 |
2 files changed, 15 insertions, 18 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f98e079..ae08bc6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2016-10-21 Uros Bizjak <ubizjak@gmail.com> + + * config/i386/i386.c (ix86_fold_builtin): Handle IX86_BUILTIN_INFQ + and IX86_BUILTIN_HUGE_VALQ here ... + (ix86_expand_builtin): ... not here. + 2016-10-20 Jakub Jelinek <jakub@redhat.com> * doc/gty.texi (for_user): Use @item next to @findex. diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 3e6f8fd..618d974 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -33323,6 +33323,15 @@ ix86_fold_builtin (tree fndecl, int n_args, return NULL_TREE; } + case IX86_BUILTIN_INFQ: + case IX86_BUILTIN_HUGE_VALQ: + { + tree type = TREE_TYPE (TREE_TYPE (fndecl)); + REAL_VALUE_TYPE inf; + real_inf (&inf); + return build_real (type, inf); + } + default: break; } @@ -36684,24 +36693,6 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget, case IX86_BUILTIN_VEC_SET_V16QI: return ix86_expand_vec_set_builtin (exp); - case IX86_BUILTIN_INFQ: - case IX86_BUILTIN_HUGE_VALQ: - { - REAL_VALUE_TYPE inf; - rtx tmp; - - real_inf (&inf); - tmp = const_double_from_real_value (inf, mode); - - tmp = validize_mem (force_const_mem (mode, tmp)); - - if (target == 0) - target = gen_reg_rtx (mode); - - emit_move_insn (target, tmp); - return target; - } - case IX86_BUILTIN_NANQ: case IX86_BUILTIN_NANSQ: return expand_call (exp, target, ignore); |