(MAXDECEXP, MINDECEXP): New decimal exponent limits
that vary with definition of LONG_DOUBLE_TYPE_SIZE.
(endian, ereal_atof, real_value_truncate, einfin, emdnorm, asctoeg):
Add cases for TFmode.
(etartdouble): New function converts REAL_VALUE_TYPE to TFmode
for use by ASM_OUTPUT_LONG_DOUBLE.
(edivm, emulm): Ifdef out, replace by faster multiply and divide.
(etoe113, toe113, e113toe): New type conversions for TFmode.
(asctoe113, e113toasc): New TFmode binary <-> decimal conversions.
(at top level): Define constants ezero, eone, emtens, etens, ...
in a new 20-byte format when LONG_DOUBLE_TYPE_SIZE = 128 and
set NE to 10. Otherwise, the internal format remains 12 bytes wide.
(etoudi, etodi, ditoe, uditoe): New functions, signed and unsigned
DImode float and fix, for real.c used in a libgcc-of-last-resort.
(esqrt): New function, correctly rounded square root for libgcc.
(etodec): Delete ifdef'd version.
(eroundi, eroundui): Rename to efixi, efixui and always
round towards zero.
From frank@atom.ansto.gov.au (Frank Crawford):
(etoibm, toibm, ibmtoe): New conversions for IBM 370 float format.
(e53toe, e64toe, toe64, etoe53, toe53, etoe24, toe24, asctoe53,
asctoeg, make_nan): Ifdef for IBM.
From-SVN: r5153
(REAL_VALUE_TYPE): Define array at least 20 bytes wide
if LONG_DOUBLE_TYPE_SIZE is 128 bits.
(etartdouble): Declare and use for REAL_VALUE_TO_TARGET_LONG_DOUBLE
when long double is TFmode.
(REAL_VALUE_FIX, REAL_VALUE_UNSIGNED_FIX): Must always round
towards zero.
From-SVN: r5152
(output_init_element): Don't call default_conversion
for a STRING_CST if type is directly suitable for it.
(digest_init): Eliminate a lot of code that checks the variable
'element', since element is always 0 in these code paths.
(build_c_cast): For (void *) (FOO *) 0, return a nop_expr
so it doesn't count as a null pointer constant.
(convert_for_assignment, build_binary_op): Pedantically warn about
that case if looking for a null_pointer_constant.
(build_conditional_expr): Likewise.
From-SVN: r5150
(attribute "length"): New attribute; put on all insns that don't have default
length.
(branch patterns): If conditional branch won't reach, take conditional branch
around an unconditional branch.
(plus): Split (plus (COMPARISON FOO ...) ...) at FOO.
From-SVN: r5148
Fix all callers.
(emit_move_sequence): Delete 3rd arg SCRATCH_REG. Fix all
callers. If operand1 is an invalid PIC address, then legitimize
it before doing anything else.
From-SVN: r5145
* reorg.c (try_merge_delay_insns): Fix typo.
(fill_simple_delay_slots): Only access the JUMP_LABEL field
if the INSN needing delay slots is a JUMP_INSN.
From-SVN: r5135
(store_bit_field): Test that instead of STRICT_ALIGNMENT.
Also, allow fetching as non-bitfield if memory is aligned enough.
(extract_bit_field): Install code here like that in store_bit_field.
From-SVN: r5131
(cse_insn): After inserting src_eqv, check to see if it is
identical to any uninserted SET_SRCs, and if so, set their src_elt
to src_eqv_elt.
From-SVN: r5129
(store_expr): Likewise.
Rename arg SUGGEST_REG to WANT_VALUE.
Never return TARGET if WANT_VALUE unless BLKmode.
Instead, return TEMP or a value copied from TARGET.
Pass 0 for WANT_VALUE in recursive calls that ignore value.
(expand_expr, case PLUS_EXPR): Goto binop2 not
both_summands if we should not be returning a plus.
(do_tablejump) [PIC_CASE_VECTOR_ADDRESS]: If pic,
copy INDEX to a register early, to avoid invalid address later.
From-SVN: r5108