Jim Wilson [Mon, 12 Apr 1993 19:45:58 +0000 (12:45 -0700)]
(fold...
(fold, COMPOUND_EXPR case): When pedantic, don't
simplify a COMPOUND_EXPR, so that it won't be mistaken for an
lvalue or an integer constant expression.
Jim Wilson [Mon, 12 Apr 1993 19:44:47 +0000 (12:44 -0700)]
(internal_build_compound_expr): When pedantic...
(internal_build_compound_expr): When pedantic, don't
simplify a COMPOUND_EXPR, so that it won't be mistaken for an
lvalue or an integer constant expression.
Richard Kenner [Sun, 11 Apr 1993 10:41:55 +0000 (06:41 -0400)]
(layout_record): After copying the offsets of a field that is an anonymous union to the offsets of the fields of that union...
(layout_record): After copying the offsets of a field that is an
anonymous union to the offsets of the fields of that union, zero the
offset of the anonymous field in case it is used to access the inner
fields.
Richard Kenner [Sun, 11 Apr 1993 10:39:54 +0000 (06:39 -0400)]
(make_compound_operation, case xSHIFTRT):
Clean up code so more readable and don't restrict to case where C2 >= C1.
Pass correct (inner) code to recursive call.
(make_compound_operation, case SUBREG): Pass the code of our operand
to recursive call, not SUBREG, and make another recursive call after
calling force_to_mode.
Richard Stallman [Sun, 11 Apr 1993 08:08:54 +0000 (08:08 +0000)]
(expand_divmod): When adjusting op0 for trunc_div or trunc_mod...
(expand_divmod): When adjusting op0 for trunc_div or
trunc_mod, using shifts (not branches), make a new pseudo for the
result. Don't use target for adjusted_op0.
Richard Kenner [Sat, 10 Apr 1993 14:56:57 +0000 (10:56 -0400)]
(alpha_sa_size): Need to save $26 if it is used or if any other register is saved...
(alpha_sa_size): Need to save $26 if it is used or if any other
register is saved, but not just because a stack space is needed.
(output_prolog): Add code to probe the stack if we allocate more than
4096 bytes; required by chapter 7 (for threads).
Know when to save $26.
(output_epilog): Know when to restore $26.
Richard Kenner [Sat, 10 Apr 1993 14:56:02 +0000 (10:56 -0400)]
(add/sub): Correct predicates and constraints for sNaddX and addX insns...
(add/sub): Correct predicates and constraints for sNaddX and addX insns; we
can use sNsubX and subX to add small negative constants.
Don't split addition to SP since we want to update it just once.
(beq, bne): Use subtract, not compare for ints; it's more efficient.
(define_split for comparisons): Always prefer add/sub if it will work.
(probe_stack, allocate_stack): New patterns.
Jim Wilson [Sat, 10 Apr 1993 00:02:10 +0000 (17:02 -0700)]
(free_tree_list): New variable.
(digest_init): Set free_tree_list.
(process_init_constructor): Use add_double to do arithmetic with
double integers instead of using fold/build to to arithmetic in
type of array index. Use free_tree_list when available instead of
generating a new tree_list.
Tom Wood [Fri, 9 Apr 1993 23:11:51 +0000 (23:11 +0000)]
(comptypes, convert_for_assignment): Check for Objective-C protocols (non-reflexive use of maybe_objc_comptypes).
(comptypes, convert_for_assignment): Check for
Objective-C protocols (non-reflexive use of maybe_objc_comptypes).
(comp_target_types): Rewrite so that maybe_objc_comptypes checks
protocols when processing an Objective-C module. For C modules,
the code path is unchanged.
(convert_for_assignment): Improve the error message for
incompatible message arguments.
Richard Kenner [Fri, 9 Apr 1993 01:44:57 +0000 (21:44 -0400)]
Include hard-reg-set.h.
(reg_nonzero_bits): Should be unsigned.
(reg_last_set_{mode,nonzero_bits,sign_bit_copies}): New variables.
(combine_instructions): Allocate and initialized them.
(nonzero_bits, num_sign_bit_copies, case REG): Use new variables to get
information on regs we've seen before.
(record_value_for_reg): Set new variables for register being modified.
(record_dead_and_set_regs): Invalidate regs clobbered by CALL_INSN.
Jeff Law [Tue, 6 Apr 1993 00:52:19 +0000 (18:52 -0600)]
pa.c (print_stw, print_ldw): Delete.
* pa.c (print_stw, print_ldw): Delete.
(eligible_for_epilogue_delay): Delete.
(hppa_epilogue_delay_slots): Delete.
(store_reg, load_reg, set_reg_plus_d): New helper functions.
(output_function_prologue): Only emit assembler pseudo-ops
to denote the start of a function. Place the correct
value into hp_profile_label_name if profiling.
(output_function_epilogue): Only emit assembler pseudo-ops
to deonte the end of a function.
(hppa_expand_prologue): New function to emit all prologue
code as RTL.
(hppa_expand_epilogue): Likewise for the epilogue.
(compute_frame_size): Update to account for using %r4 as an
allocatable register if the frame pointer was eliminated.
Jeff Law [Tue, 6 Apr 1993 00:51:37 +0000 (18:51 -0600)]
pa.h (FIXED_REGISTERS): %r4 is no longer fixed.
* pa.h (FIXED_REGISTERS): %r4 is no longer fixed.
(CALL_USED_REGISTERS): %r4 is no longer CALL_USED either.
(REG_ALLOC_ORDER): Move %r4 up in the allocation order.
(DELAY_SLOTS_FOR_EPILOGUE): Delete.
(ELIGIBLE_FOR_EPILOGUE_DELAY): Delete.
Jeff Law [Mon, 5 Apr 1993 00:12:54 +0000 (18:12 -0600)]
pa.md (dbra pattern): Extend to allow any 5 bit increment...
* pa.md (dbra pattern): Extend to allow any 5 bit increment,
any comparison operator for the compare against zero, and
no longer require the REG_NONNEG note.
Jeff Law [Mon, 5 Apr 1993 00:08:54 +0000 (18:08 -0600)]
pa.md (movsi for FP regs): Delete special case patterns.
* pa.md (movsi for FP regs): Delete special case patterns.
(movdi for FP regs): Likewise.
(movsi main recognizer): Allow fp<->memory copies.
(movdi main recognizer): Likewise.