mirror of git://gcc.gnu.org/git/gcc.git
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
|
|
@ -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>
|
2016-06-12 Uros Bizjak <ubizjak@gmail.com>
|
||||||
|
|
||||||
PR target/71241
|
PR target/71241
|
||||||
|
|
|
||||||
|
|
@ -38260,7 +38260,7 @@ ix86_init_builtin_types (void)
|
||||||
static void
|
static void
|
||||||
ix86_init_builtins (void)
|
ix86_init_builtins (void)
|
||||||
{
|
{
|
||||||
tree t;
|
tree ftype, decl;
|
||||||
|
|
||||||
ix86_init_builtin_types ();
|
ix86_init_builtin_types ();
|
||||||
|
|
||||||
|
|
@ -38273,31 +38273,31 @@ ix86_init_builtins (void)
|
||||||
def_builtin_const (0, "__builtin_huge_valq",
|
def_builtin_const (0, "__builtin_huge_valq",
|
||||||
FLOAT128_FTYPE_VOID, IX86_BUILTIN_HUGE_VALQ);
|
FLOAT128_FTYPE_VOID, IX86_BUILTIN_HUGE_VALQ);
|
||||||
|
|
||||||
t = ix86_get_builtin_func_type (FLOAT128_FTYPE_CONST_STRING);
|
ftype = ix86_get_builtin_func_type (FLOAT128_FTYPE_CONST_STRING);
|
||||||
t = add_builtin_function ("__builtin_nanq", t, IX86_BUILTIN_NANQ,
|
decl = add_builtin_function ("__builtin_nanq", ftype, IX86_BUILTIN_NANQ,
|
||||||
BUILT_IN_MD, "nanq", NULL_TREE);
|
BUILT_IN_MD, "nanq", NULL_TREE);
|
||||||
TREE_READONLY (t) = 1;
|
TREE_READONLY (decl) = 1;
|
||||||
ix86_builtins[(int) IX86_BUILTIN_NANQ] = t;
|
ix86_builtins[(int) IX86_BUILTIN_NANQ] = decl;
|
||||||
|
|
||||||
t = ix86_get_builtin_func_type (FLOAT128_FTYPE_CONST_STRING);
|
decl = add_builtin_function ("__builtin_nansq", ftype, IX86_BUILTIN_NANSQ,
|
||||||
t = add_builtin_function ("__builtin_nansq", t, IX86_BUILTIN_NANSQ,
|
BUILT_IN_MD, "nansq", NULL_TREE);
|
||||||
BUILT_IN_MD, "nansq", NULL_TREE);
|
TREE_READONLY (decl) = 1;
|
||||||
TREE_READONLY (t) = 1;
|
ix86_builtins[(int) IX86_BUILTIN_NANSQ] = decl;
|
||||||
ix86_builtins[(int) IX86_BUILTIN_NANSQ] = t;
|
|
||||||
|
|
||||||
/* We will expand them to normal call if SSE isn't available since
|
/* We will expand them to normal call if SSE isn't available since
|
||||||
they are used by libgcc. */
|
they are used by libgcc. */
|
||||||
t = ix86_get_builtin_func_type (FLOAT128_FTYPE_FLOAT128);
|
ftype = ix86_get_builtin_func_type (FLOAT128_FTYPE_FLOAT128);
|
||||||
t = add_builtin_function ("__builtin_fabsq", t, IX86_BUILTIN_FABSQ,
|
decl = add_builtin_function ("__builtin_fabsq", ftype, IX86_BUILTIN_FABSQ,
|
||||||
BUILT_IN_MD, "__fabstf2", NULL_TREE);
|
BUILT_IN_MD, "__fabstf2", NULL_TREE);
|
||||||
TREE_READONLY (t) = 1;
|
TREE_READONLY (decl) = 1;
|
||||||
ix86_builtins[(int) IX86_BUILTIN_FABSQ] = t;
|
ix86_builtins[(int) IX86_BUILTIN_FABSQ] = decl;
|
||||||
|
|
||||||
t = ix86_get_builtin_func_type (FLOAT128_FTYPE_FLOAT128_FLOAT128);
|
ftype = ix86_get_builtin_func_type (FLOAT128_FTYPE_FLOAT128_FLOAT128);
|
||||||
t = add_builtin_function ("__builtin_copysignq", t, IX86_BUILTIN_COPYSIGNQ,
|
decl = add_builtin_function ("__builtin_copysignq", ftype,
|
||||||
BUILT_IN_MD, "__copysigntf3", NULL_TREE);
|
IX86_BUILTIN_COPYSIGNQ, BUILT_IN_MD,
|
||||||
TREE_READONLY (t) = 1;
|
"__copysigntf3", NULL_TREE);
|
||||||
ix86_builtins[(int) IX86_BUILTIN_COPYSIGNQ] = t;
|
TREE_READONLY (decl) = 1;
|
||||||
|
ix86_builtins[(int) IX86_BUILTIN_COPYSIGNQ] = decl;
|
||||||
|
|
||||||
ix86_init_tm_builtins ();
|
ix86_init_tm_builtins ();
|
||||||
ix86_init_mmx_sse_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
|
entire vector register, interpreting it as a 128-bit integer, these use mode
|
||||||
@code{TI}.
|
@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
|
functions for efficient use of @code{TF} (@code{__float128}) 128-bit
|
||||||
floating point and @code{TC} 128-bit complex floating-point values.
|
floating point and @code{TC} 128-bit complex floating-point values.
|
||||||
|
|
||||||
The following floating-point built-in functions are available in 64-bit
|
The following floating-point built-in functions are always available. All
|
||||||
mode. All of them implement the function that is part of the name.
|
of them implement the function that is part of the name.
|
||||||
|
|
||||||
@smallexample
|
@smallexample
|
||||||
__float128 __builtin_fabsq (__float128)
|
__float128 __builtin_fabsq (__float128)
|
||||||
__float128 __builtin_copysignq (__float128, __float128)
|
__float128 __builtin_copysignq (__float128, __float128)
|
||||||
@end smallexample
|
@end smallexample
|
||||||
|
|
||||||
The following built-in function is always available.
|
The following built-in functions are 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.
|
|
||||||
|
|
||||||
@table @code
|
@table @code
|
||||||
@item __float128 __builtin_infq (void)
|
@item __float128 __builtin_infq (void)
|
||||||
|
|
@ -18486,6 +18477,14 @@ Similar to @code{__builtin_nans}, except the return type is @code{__float128}.
|
||||||
@findex __builtin_nansq
|
@findex __builtin_nansq
|
||||||
@end table
|
@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
|
The following built-in functions are always available and can be used to
|
||||||
check the target platform type.
|
check the target platform type.
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue