esize = UI_To_Int (Esize (gnat_entity));
if (IN (kind, Float_Kind))
-#ifdef WIDEST_HARDWARE_FP_SIZE
- max_esize = fp_prec_to_size (WIDEST_HARDWARE_FP_SIZE);
-#else
- max_esize
- = fp_prec_to_size (TYPE_PRECISION (long_double_type_node));
-#endif
+ {
+ /* This block is executed the first time to translate the GNAT
+ node corresponding to Gigi's longest_float_type_node, so the
+ tree is not yet saved at this time. */
+ if (longest_float_type_node)
+ max_esize
+ = fp_prec_to_size (TYPE_PRECISION (longest_float_type_node));
+ else
+ max_esize = esize;
+ }
else if (IN (kind, Access_Kind))
max_esize = POINTER_SIZE * 2;
else
#define LONG_LONG_TYPE_SIZE 64
-#define WIDEST_HARDWARE_FP_SIZE 64
-
/* This value is the amount of bytes a caller is allowed to drop the stack
before probing has to be done for stack clash protection. */
#define STACK_CLASH_CALLER_GUARD 1024
/* Define the size of `long long'. The default is the twice the word size. */
#define LONG_LONG_TYPE_SIZE 64
-/* Work around target_flags dependency in ada/targtyps.cc. */
-#define WIDEST_HARDWARE_FP_SIZE 64
-
#define WCHAR_TYPE "unsigned int"
#define WCHAR_TYPE_SIZE 32
#define POINTER_SIZE (TARGET_X32 ? 32 : BITS_PER_WORD)
#define LONG_LONG_TYPE_SIZE 64
-#define WIDEST_HARDWARE_FP_SIZE 80
-
#if defined (TARGET_BI_ARCH) || TARGET_64BIT_DEFAULT
#define MAX_BITS_PER_WORD 64
#else
#undef MAX_OFILE_ALIGNMENT
#define MAX_OFILE_ALIGNMENT 524288 /* 8 x 2^16 by DEC Ada Test CD40VRA */
-/* Widest floating-point type efficiently supported by hardware and OS. */
-#undef WIDEST_HARDWARE_FP_SIZE
-#define WIDEST_HARDWARE_FP_SIZE 64
-
/* The structure return address arrives as an "argument" on VMS. */
#undef PCC_STATIC_STRUCT_RETURN
#define MIN_UNITS_PER_WORD 4
#endif
-/* The widest floating point format supported by the hardware. Note that
- setting this influences some Ada floating point type sizes, currently
- required for GNAT to operate properly. */
-#define WIDEST_HARDWARE_FP_SIZE 64
-
/* Allocation boundary (in *bits*) for storing arguments in argument list. */
#define PARM_BOUNDARY BITS_PER_WORD
words. */
#define LONG_LONG_TYPE_SIZE 64
-/* Work around rs6000_long_double_type_size dependency in ada/targtyps.cc. */
-#define WIDEST_HARDWARE_FP_SIZE 64
-
/* Width in bits of a pointer.
See also the macro `Pmode' defined below. */
extern unsigned rs6000_pointer_size;
#define LONG_TYPE_SIZE (TARGET_64BIT ? 64 : 32)
#define LONG_LONG_TYPE_SIZE 64
-/* Work around target_flags dependency in ada/targtyps.cc. */
-#define WIDEST_HARDWARE_FP_SIZE 64
-
/* We use "unsigned char" as default. */
#define DEFAULT_SIGNED_CHAR 0
/* SPARC_LONG_DOUBLE_TYPE_SIZE is defined per OS even though the
SPARC ABI says that it is 128-bit wide. LONG_DOUBLE_TYPE_SIZE
get poisoned, so add SPARC_ prefix. */
-/* #define SPARC_LONG_DOUBLE_TYPE_SIZE 128 */
-
-/* The widest floating-point format really supported by the hardware. */
-#define WIDEST_HARDWARE_FP_SIZE 64
+#define SPARC_LONG_DOUBLE_TYPE_SIZE 128
/* Width in bits of a pointer. This is the size of ptr_mode. */
#define POINTER_SIZE (TARGET_PTR64 ? 64 : 32)
it is rounded up to one unit.) */
#define CHAR_TYPE_SIZE 8
-/* `WIDEST_HARDWARE_FP_SIZE'
-
- A C expression for the size in bits of the widest floating-point
- format supported by the hardware. If you define this macro, you
- must specify a value less than or equal to mode precision of the
- mode used for C type long double (from hook
- targetm.c.mode_for_floating_type with tree_index
- TI_LONG_DOUBLE_TYPE). If you do not define this macro, mode
- precision of the mode used for C type long double is the
- default. */
-
/* `DEFAULT_SIGNED_CHAR'
An expression whose value is 1 or 0, according to whether the type
the libgcc @file{config.host}.
@end defmac
-@defmac WIDEST_HARDWARE_FP_SIZE
-A C expression for the size in bits of the widest floating-point format
-supported by the hardware. If you define this macro, you must specify a
-value less than or equal to mode precision of the mode used for C type
-@code{long double} (from hook @code{targetm.c.mode_for_floating_type}
-with argument @code{TI_LONG_DOUBLE_TYPE}). If you do not define this
-macro, mode precision of the mode used for C type @code{long double} is
-the default.
-@end defmac
-
@defmac DEFAULT_SIGNED_CHAR
An expression whose value is 1 or 0, according to whether the type
@code{char} should be signed or unsigned by default. The user can
the libgcc @file{config.host}.
@end defmac
-@defmac WIDEST_HARDWARE_FP_SIZE
-A C expression for the size in bits of the widest floating-point format
-supported by the hardware. If you define this macro, you must specify a
-value less than or equal to mode precision of the mode used for C type
-@code{long double} (from hook @code{targetm.c.mode_for_floating_type}
-with argument @code{TI_LONG_DOUBLE_TYPE}). If you do not define this
-macro, mode precision of the mode used for C type @code{long double} is
-the default.
-@end defmac
-
@defmac DEFAULT_SIGNED_CHAR
An expression whose value is 1 or 0, according to whether the type
@code{char} should be signed or unsigned by default. The user can
STANDARD_INCLUDE_DIR STANDARD_INCLUDE_COMPONENT \
LINK_ELIMINATE_DUPLICATE_LDIRECTORIES MIPS_DEBUGGING_INFO \
IDENT_ASM_OP ALL_COP_ADDITIONAL_REGISTER_NAMES \
- RANGE_TEST_NON_SHORT_CIRCUIT \
+ RANGE_TEST_NON_SHORT_CIRCUIT EXTENDED_SDB_BASIC_TYPES \
REAL_VALUE_TRUNCATE REVERSE_CONDEXEC_PREDICATES_P \
TARGET_ALIGN_ANON_BITFIELDS TARGET_NARROW_VOLATILE_BITFIELDS \
IDENT_ASM_OP UNALIGNED_SHORT_ASM_OP UNALIGNED_INT_ASM_OP \
EH_FRAME_IN_DATA_SECTION TARGET_FLT_EVAL_METHOD_NON_DEFAULT \
JCR_SECTION_NAME TARGET_USE_JCR_SECTION SDB_DEBUGGING_INFO \
SDB_DEBUG NO_IMPLICIT_EXTERN_C NOTICE_UPDATE_CC \
- CC_STATUS_MDEP_INIT CC_STATUS_MDEP CC_STATUS SLOW_SHORT_ACCESS
+ CC_STATUS_MDEP_INIT CC_STATUS_MDEP CC_STATUS SLOW_SHORT_ACCESS \
+ WIDEST_HARDWARE_FP_SIZE
/* Hooks that are no longer used. */
#pragma GCC poison LANG_HOOKS_FUNCTION_MARK LANG_HOOKS_FUNCTION_FREE \
TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN \
TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD \
TARGET_MD_ASM_CLOBBERS TARGET_RELAXED_ORDERING \
- EXTENDED_SDB_BASIC_TYPES TARGET_INVALID_PARAMETER_TYPE \
+ TARGET_INVALID_PARAMETER_TYPE \
TARGET_INVALID_RETURN_TYPE
/* Arrays that were deleted in favor of a functional interface. */