i386.c (ix86_init_builtins): Calculate FLOAT128_FTYPE_CONST_STRING function type only once.
* config/i386/i386.c (ix86_init_builtins): Calculate FLOAT128_FTYPE_CONST_STRING function type only once. * doc/extend.texi (x86 Built-in Functions): Update text, __float128 built-in functions are available for x86-32 and x86-64 targets. From-SVN: r237342
This commit is contained in:
parent
ee38bd2e97
commit
e449556dc8
3 changed files with 40 additions and 34 deletions
|
@ -1,3 +1,10 @@
|
|||
2016-06-12 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
* config/i386/i386.c (ix86_init_builtins): Calculate
|
||||
FLOAT128_FTYPE_CONST_STRING function type only once.
|
||||
* doc/extend.texi (x86 Built-in Functions): Update text, __float128
|
||||
built-in functions are available for x86-32 and x86-64 targets.
|
||||
|
||||
2016-06-12 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
PR target/71241
|
||||
|
|
|
@ -38260,7 +38260,7 @@ ix86_init_builtin_types (void)
|
|||
static void
|
||||
ix86_init_builtins (void)
|
||||
{
|
||||
tree t;
|
||||
tree ftype, decl;
|
||||
|
||||
ix86_init_builtin_types ();
|
||||
|
||||
|
@ -38273,31 +38273,31 @@ ix86_init_builtins (void)
|
|||
def_builtin_const (0, "__builtin_huge_valq",
|
||||
FLOAT128_FTYPE_VOID, IX86_BUILTIN_HUGE_VALQ);
|
||||
|
||||
t = ix86_get_builtin_func_type (FLOAT128_FTYPE_CONST_STRING);
|
||||
t = add_builtin_function ("__builtin_nanq", t, IX86_BUILTIN_NANQ,
|
||||
BUILT_IN_MD, "nanq", NULL_TREE);
|
||||
TREE_READONLY (t) = 1;
|
||||
ix86_builtins[(int) IX86_BUILTIN_NANQ] = t;
|
||||
ftype = ix86_get_builtin_func_type (FLOAT128_FTYPE_CONST_STRING);
|
||||
decl = add_builtin_function ("__builtin_nanq", ftype, IX86_BUILTIN_NANQ,
|
||||
BUILT_IN_MD, "nanq", NULL_TREE);
|
||||
TREE_READONLY (decl) = 1;
|
||||
ix86_builtins[(int) IX86_BUILTIN_NANQ] = decl;
|
||||
|
||||
t = ix86_get_builtin_func_type (FLOAT128_FTYPE_CONST_STRING);
|
||||
t = add_builtin_function ("__builtin_nansq", t, IX86_BUILTIN_NANSQ,
|
||||
BUILT_IN_MD, "nansq", NULL_TREE);
|
||||
TREE_READONLY (t) = 1;
|
||||
ix86_builtins[(int) IX86_BUILTIN_NANSQ] = t;
|
||||
decl = add_builtin_function ("__builtin_nansq", ftype, IX86_BUILTIN_NANSQ,
|
||||
BUILT_IN_MD, "nansq", NULL_TREE);
|
||||
TREE_READONLY (decl) = 1;
|
||||
ix86_builtins[(int) IX86_BUILTIN_NANSQ] = decl;
|
||||
|
||||
/* We will expand them to normal call if SSE isn't available since
|
||||
they are used by libgcc. */
|
||||
t = ix86_get_builtin_func_type (FLOAT128_FTYPE_FLOAT128);
|
||||
t = add_builtin_function ("__builtin_fabsq", t, IX86_BUILTIN_FABSQ,
|
||||
BUILT_IN_MD, "__fabstf2", NULL_TREE);
|
||||
TREE_READONLY (t) = 1;
|
||||
ix86_builtins[(int) IX86_BUILTIN_FABSQ] = t;
|
||||
ftype = ix86_get_builtin_func_type (FLOAT128_FTYPE_FLOAT128);
|
||||
decl = add_builtin_function ("__builtin_fabsq", ftype, IX86_BUILTIN_FABSQ,
|
||||
BUILT_IN_MD, "__fabstf2", NULL_TREE);
|
||||
TREE_READONLY (decl) = 1;
|
||||
ix86_builtins[(int) IX86_BUILTIN_FABSQ] = decl;
|
||||
|
||||
t = ix86_get_builtin_func_type (FLOAT128_FTYPE_FLOAT128_FLOAT128);
|
||||
t = add_builtin_function ("__builtin_copysignq", t, IX86_BUILTIN_COPYSIGNQ,
|
||||
BUILT_IN_MD, "__copysigntf3", NULL_TREE);
|
||||
TREE_READONLY (t) = 1;
|
||||
ix86_builtins[(int) IX86_BUILTIN_COPYSIGNQ] = t;
|
||||
ftype = ix86_get_builtin_func_type (FLOAT128_FTYPE_FLOAT128_FLOAT128);
|
||||
decl = add_builtin_function ("__builtin_copysignq", ftype,
|
||||
IX86_BUILTIN_COPYSIGNQ, BUILT_IN_MD,
|
||||
"__copysigntf3", NULL_TREE);
|
||||
TREE_READONLY (decl) = 1;
|
||||
ix86_builtins[(int) IX86_BUILTIN_COPYSIGNQ] = decl;
|
||||
|
||||
ix86_init_tm_builtins ();
|
||||
ix86_init_mmx_sse_builtins ();
|
||||
|
|
|
@ -18445,28 +18445,19 @@ integers, these use @code{V4SI}. Finally, some instructions operate on an
|
|||
entire vector register, interpreting it as a 128-bit integer, these use mode
|
||||
@code{TI}.
|
||||
|
||||
In 64-bit mode, the x86-64 family of processors uses additional built-in
|
||||
The x86-32 and x86-64 family of processors use additional built-in
|
||||
functions for efficient use of @code{TF} (@code{__float128}) 128-bit
|
||||
floating point and @code{TC} 128-bit complex floating-point values.
|
||||
|
||||
The following floating-point built-in functions are available in 64-bit
|
||||
mode. All of them implement the function that is part of the name.
|
||||
The following floating-point built-in functions are always available. All
|
||||
of them implement the function that is part of the name.
|
||||
|
||||
@smallexample
|
||||
__float128 __builtin_fabsq (__float128)
|
||||
__float128 __builtin_copysignq (__float128, __float128)
|
||||
@end smallexample
|
||||
|
||||
The following built-in function is always available.
|
||||
|
||||
@table @code
|
||||
@item void __builtin_ia32_pause (void)
|
||||
Generates the @code{pause} machine instruction with a compiler memory
|
||||
barrier.
|
||||
@end table
|
||||
|
||||
The following floating-point built-in functions are made available in the
|
||||
64-bit mode.
|
||||
The following built-in functions are always available.
|
||||
|
||||
@table @code
|
||||
@item __float128 __builtin_infq (void)
|
||||
|
@ -18486,6 +18477,14 @@ Similar to @code{__builtin_nans}, except the return type is @code{__float128}.
|
|||
@findex __builtin_nansq
|
||||
@end table
|
||||
|
||||
The following built-in function is always available.
|
||||
|
||||
@table @code
|
||||
@item void __builtin_ia32_pause (void)
|
||||
Generates the @code{pause} machine instruction with a compiler memory
|
||||
barrier.
|
||||
@end table
|
||||
|
||||
The following built-in functions are always available and can be used to
|
||||
check the target platform type.
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue