static void
ix86_init_builtins (void)
{
- tree t;
+ tree ftype, decl;
ix86_init_builtin_types ();
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;
-
- 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);
+ 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;
+
+ 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 ();
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)
@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.