* pa.h (TARGET_GAS): New target flag to control use of GAS specific
assembler directives.
(TARGET_SWITCHES): Support -mgas and -mno-gas.
(ASM_DECLARE_FUNCTION_NAME): If TARGET_GAS, then emit .PARAM directives
for static functions so that argument relocations work.
From-SVN: r5173
* pa.c (hppa_legitimize_address): Rework address computation
for x[n - m] so that problems with implicit space register
selection are avoided.
From-SVN: r5172
(fold, case EQ_EXPR): Re-enable converting signed MOD operations to
unsigned when inside comparisons against zero, but only when the
second operand of the MOD is an integral power of two.
From-SVN: r5166
* reorg.c (find_end_label): If a suitable RETURN insn exists at
the end of the current function, place a label in front of it
for the end_of_function_label.
From-SVN: r5162
(declare_hidden_char_array): New function to
factor out duplicate code in declare_function_name.
Don't set DECL_EXTERNAL (which is illegal without TREE_PUBLIC)
to prevent output; instead, set TREE_ASM_WRITTEN.
(declare_function_name): Use declare_hidden_char_array.
From-SVN: r5161
(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