Richard Stallman [Fri, 23 Jul 1993 19:19:04 +0000 (19:19 +0000)]
(cast_expr): Use new initializer parsing functions.
(initdcl, notype_initdcl): Likewise.
(init): Likewise.
(initlist_maybe_comma, initlist1): These replace initlist.
(initelt): New nonterminal.
Change specified index syntax to `[INDEX]='.
Change specified field syntax to `.NAME='.
Richard Stallman [Fri, 23 Jul 1993 18:50:33 +0000 (18:50 +0000)]
(output_constant_def_contents): New function.
(output_constant_def): Use it.
(deferred_constants): New list of constants not yet output.
(defer_addressed_constants): New function.
(output_deferred_addressed_constants): New function.
(make_decl_rtl): Don't ever replace old rtl;
instead, change its mode if necessary.
Richard Stallman [Fri, 23 Jul 1993 18:49:55 +0000 (18:49 +0000)]
Output most constructors an element at a time.
(digest_init): Deleted code for raw constructors.
(process_init_constructor): Function deleted.
(start_init, finish_init): New functions.
(really_start_incremental_init)
(push_init_level, check_init_type_bitfields, pop_init_level)
(set_init_index, set_init_label, process_init_element)
(output_init_element, output_pending_init_elements): New functions.
Jeff Law [Fri, 23 Jul 1993 02:59:46 +0000 (20:59 -0600)]
reorg.c (relax_delay_slots): Do not redirect a jump if doing so invalidates insns in the jump's delay slots.
* reorg.c (relax_delay_slots): Do not redirect a jump if doing so
invalidates insns in the jump's delay slots.
(redirect_with_delay_slots_safe_p): New function.
Jim Wilson [Wed, 21 Jul 1993 22:00:03 +0000 (15:00 -0700)]
(output_move_double): Only set highest_first if first reg of dest overlaps memory src address.
(output_move_double): Only set highest_first if first reg
of dest overlaps memory src address. Otherwise, if addreg1 set and
is same as second reg of dest, suppress trailing decrement.
Richard Stallman [Sun, 18 Jul 1993 18:10:11 +0000 (18:10 +0000)]
(common_type): Use TYPE_MAIN_VARIANT when preferring
long int to int (when width is the same).
(check_format): With -Wformat, warn about
printf("%ld", 1) even if sizeof (int) == sizeof (long),
since the code isn't portable. Similarly for "%d" vs 1L.
(convert_arguments) [PROMOTE_PROTOTYPES]:
With -Wconversion, use unpromoted type to check for signedness changes.
Richard Stallman [Sun, 18 Jul 1993 06:07:02 +0000 (06:07 +0000)]
(assemble_variable): Move debugging output calls to after section has been selected.
(assemble_variable): Move debugging output calls
to after section has been selected. Select the section again
if the debugging output call changes the section.
Jeff Law [Wed, 14 Jul 1993 16:23:19 +0000 (10:23 -0600)]
pa.md (uncond_branch): New type attribute.
* pa.md (uncond_branch): New type attribute. Explicitly disallow
uncond_branch in most delay slots.
(in_call_delay attribute): New test for delay slot of call insns.
Allow uncond_branches in the delay slot if TARGET_JUMP_IN_DELAY.
(define_delay for calls, millicode calls, branches, returns, etc):
Broken up into two define delays. One for calls and millicode
calls, a second for branches, returns, etc.
(millicode insns): Pass the current insn down to
output_{mul,div,mod}_insn.
(jump insn): Use "uncond_branch" type attribute. Length of this
insn varies if it is in the delay slot of a call.
(call_internal_symref): Use output_call.
(call_value_internal_symref): Likewise.
(call_internal_reg): Use %r syntax instead of just register numbers.
(call_value_internal_reg): Likewise.
Jeff Law [Wed, 14 Jul 1993 16:22:49 +0000 (10:22 -0600)]
pa.c (output_call): New function to output a function call or millicode call...
* pa.c (output_call): New function to output a function call or
millicode call, possibly with a jump in the delay slot.
(output_mul_insn): Accept additional argument, use output_call.
(output_div_insn): Likewise.
(output_mod_insn): Likewise.
(jump_in_call_delay): New function to determine if the given
JUMP_INSN is in the delay slot of a call or millicode call.
Jeff Law [Wed, 14 Jul 1993 16:22:23 +0000 (10:22 -0600)]
pa.h (TARGET_JUMP_IN_DELAY): New target flag to allow/disallow jump instructions in call delay slots.
* pa.h (TARGET_JUMP_IN_DELAY): New target flag to allow/disallow
jump instructions in call delay slots.
(TARGET_SWITCHES): Add -mjump-in-delay and -mno-jump-in-delay.
Provide -mno alternatives for most options.
(output_call): Declare.
Richard Stallman [Sun, 11 Jul 1993 22:52:46 +0000 (22:52 +0000)]
(output_move_double): Fix typos in Jun 28 change.
Only set highest_first if first reg
of dest overlaps memory src address. Otherwise, if addreg1 set and
is same as second reg of dest, suppress trailing decrement.
Richard Stallman [Sun, 11 Jul 1993 22:44:54 +0000 (22:44 +0000)]
(convert_arguments): Don't warn about sign change for an INTEGER_CST inside NOP_EXPR, if value not fits new type.
(convert_arguments): Don't warn about sign change
for an INTEGER_CST inside NOP_EXPR, if value not fits new type.
Delete the code to check for VAL having enumeration type.
Richard Stallman [Sat, 10 Jul 1993 19:26:27 +0000 (19:26 +0000)]
(HARD_REG_ELT_TYPE): New unsigned type to avoid signed arithmetic overflow.
(HARD_REG_ELT_TYPE): New unsigned type to
avoid signed arithmetic overflow.
(HARD_REG_SET): Define as HARD_REG_ELT_TYPE, or array thereof.
(HARD_CONST): Always cast to HARD_REG_ELT_TYPE.
(*_HARD_REG_*): Use unsigned HARD_CONST and HARD_REG_ELT_TYPE
types instead of assuming HOST_WIDE_INT.
Jeff Law [Fri, 9 Jul 1993 20:22:50 +0000 (14:22 -0600)]
pa.c (pa_adjust_insn_length): dbra and movb insns which have their output in a FP register do not need adjustment.
* pa.c (pa_adjust_insn_length): dbra and movb insns which have
their output in a FP register do not need adjustment.
(output_cbranch, output_bb): Handle conditional jump to the
following instruction.
(output_dbra): New function extracted from dbra pattern.
(output_movb): New function.
(eq_neq_comparison_operator): New function.
(movb_comparison_operator): New function.