Commit Graph

3922 Commits

Author SHA1 Message Date
Richard Stallman ee7e54412f (real.o): New target.
(OBJS): Add real.o.

From-SVN: r3935
1993-03-31 05:41:37 +00:00
Richard Stallman fd76a739e5 If REAL_ARITHMETIC is defined or if LONG_DOUBLE_TYPE_SIZE is 96...
If REAL_ARITHMETIC is defined or if LONG_DOUBLE_TYPE_SIZE
is 96, then define REAL_VALUE_ macros to invoke functions in real.c.

(REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT):
New macros truncate toward zero to integer value but
return REAL_VALUE_TYPE.

(REAL_VALUE_TO_DECIMAL): New macro defaults to
fprintf if no REAL_ARITHMETIC, otherwise uses real.c for
binary to decimal conversion.  Used in ASM_OUTPUT_ macros.

From-SVN: r3934
1993-03-31 05:39:37 +00:00
Richard Stallman 985b6196e6 Initial revision
From-SVN: r3933
1993-03-31 05:30:24 +00:00
Jeff Law 751a3523c0 * Jeff for Tege.
* pa.md (sminsi3, smaxsi3): Fix bug in last change.

From-SVN: r3932
1993-03-30 15:02:05 -07:00
Michael Meissner 574c75a3b4 fkx
fix CLASS_MAX_NREGS to reflect -mfloat64 and -msoft-float.

From-SVN: r3931
1993-03-30 21:50:50 +00:00
Richard Kenner dbc131f3cc (record_dead_and_set_regs): Record death of all hard regs when a multi-reg object in hard regs dies.
(record_dead_and_set_regs): Record death of all hard regs when a multi-reg
object in hard regs dies.
(move_deaths): Handle the case when we only have to move part of a
multi-register death note.

From-SVN: r3930
1993-03-30 15:37:29 -05:00
Richard Kenner 99309f3bcb (find_regno_note): Find note that overlaps REGNO, not just one that
mentions REGNO explicitly.

From-SVN: r3929
1993-03-30 15:36:43 -05:00
Richard Kenner 2c0623e83a (form_sum): Use mode of inputs when making new PLUS.
From-SVN: r3928
1993-03-30 15:34:11 -05:00
Richard Kenner 118bdbf8fa (OBJS): Add insn-opinit.o.
(insn-opinit.o, insn-opinit.c, stamp-opinit): New rules.
(genopinit, genopinit.o): Likewise.

From-SVN: r3927
1993-03-30 15:31:01 -05:00
Richard Kenner 35be450715 (init_reload): Don't initialize optabs here.
From-SVN: r3926
1993-03-30 15:30:29 -05:00
Richard Kenner 5d81dc5b88 (extendtab, fixtab, fixtrunctab, floattab): Not static.
(init_extends, init_fixtab, init_floattab): Deleted.
(init_optabs): Move active stuff from above functions in.
Delete filling of optabs.
Call init_all_optabs.

From-SVN: r3925
1993-03-30 15:29:35 -05:00
Richard Kenner 27b3f75422 (extendtab, fixtab, fixtrunctab, floattab, movstr_optab): New
definitions.

From-SVN: r3924
1993-03-30 15:28:53 -05:00
Richard Kenner e6677db3fd (movstr_optab): No longer static.
(init_expr_once): Don't initialize movstr_optab.

From-SVN: r3923
1993-03-30 15:28:12 -05:00
Richard Kenner af9e4a0cf0 Initial revision
From-SVN: r3922
1993-03-30 15:25:14 -05:00
Richard Kenner d08ea79fd7 (emit_reload_insns): Properly track what was reloaded into what register when...
(emit_reload_insns): Properly track what was reloaded into what
register when what we reloaded was a hard register group.

From-SVN: r3921
1993-03-30 05:40:07 -05:00
Richard Kenner 9295e6afce (num_sign_bit_copies, case PLUS, case MULT): Replace occurrences of
HOST_BITS_PER_INT with HOST_BITS_PER_WIDE_INT.

From-SVN: r3920
1993-03-29 18:34:54 -05:00
Jim Wilson 6559c3f4f6 (movsi+2): Add f/f constraint case.
From-SVN: r3919
1993-03-29 14:39:25 -08:00
Jim Wilson 563465600f (schedule_block): Reset n_ready if schedule_select
removes all insns from ready list.

From-SVN: r3918
1993-03-29 14:34:25 -08:00
Jim Wilson 1e39f528f7 (FUNCTION_PROFILER): Call output_function_profiler.
(CALL_USED_REGISTERS): Add more comments about register usage.

From-SVN: r3917
1993-03-29 14:32:52 -08:00
Jim Wilson 7a24dbcfa9 (i960_function_prologue): When profiling, don't use those registers clobbered around an mcount call.
(i960_function_prologue): When profiling, don't use those
registers clobbered around an mcount call.
(output_function_profiler): New function.

From-SVN: r3916
1993-03-29 14:32:08 -08:00
Richard Kenner 77545d45a3 (secondary_memlocs_elim): Now one per mode per operand.
(get_secondary_mem, combine_reloads): Reflect changed var above.
(clear_secondary_mem): Use bzero.

From-SVN: r3915
1993-03-29 16:39:58 -05:00
Richard Kenner 7967c666c2 Add prototypes for all functions defined in file.
Change a few occurrences of RTX_CODE to enum rtx_code for consistency.
(merge_trees): Add casts of args to mybcopy.
(write_tree_1): Now static.
(fatal): Always called with one arg, so define that way.

From-SVN: r3914
1993-03-29 16:16:35 -05:00
Richard Stallman e4135fa5a2 (collect_iterators): Cast tree code to int for indexing.
From-SVN: r3913
1993-03-29 18:57:45 +00:00
Richard Kenner 96c8223248 Add missing declarations for external functions in reload.c, reload1.c,
and caller-save.c.
(reload_strict_low, reload_needed_for_multiple, reload_needed_for): Deleted.
(reload_opnum): New array.
(enum reload_type): Renamed from reload_when_needed and expanded to include
more reload types.
(reload_n_operands): New variable.

From-SVN: r3912
1993-03-29 06:28:45 -05:00
Richard Kenner a8c9daebab Add prototypes for all static functions and clean up some definitions.
(struct decompose): Move to before function declarations.
(secondary_memlocs_elim): One per operand, not per mode.
(get_secondary_mem): Accept and use reload description (opnum and type).
(push_reload): Accept and use new reload description instead of old NEEDED_FOR.
Define two new macros: MERGEABLE_RELOADS and MERGE_TO_OTHER.
Use these macros to see if reloads can be merged and how to do it.
(transfer_replacements): New function.
(combine_reloads): Refine when we can combine reloads.
(find_reloads): Use new method of tracking what a reload is for.
When we make a CLOBBER insn, do so with DImode.
Merge cases of making optional reloads, avoid making output-only optional
reloads, refine when we may not make in-out optional reloads, and make an
optional reload for a pair of matching operands.
(find_reloads_toplev, find_reloads_address{,_1, part}): Accept and use reload
description.
(forget_volatility): Delete long-obsolete function.

From-SVN: r3911
1993-03-29 06:27:52 -05:00
Richard Kenner 546b63fb94 Add prototypes for static functions.
(REGISTER_MOVE_COST, MEMORY_MOVE_COST): Include default definitions.
(reload): Count number of registers needed for insn using new reload type
information.
If mode of insn is DImode, don't change it.
Refine the way we handle conflict with the return value register.
Don't try to account for needs already covered by previously spilled
registers; instead, put them back in the front of potential_reload_regs and
let them be allocated again.
(order_regs_for_reload): Don't restrict regs explicitly used if we have
SMALL_REGISTER_CLASSES defined.
(reload_as_needed): Don't need to deactivate optional reloads ever; if they
inherit, it must have been safe.
Call merge_assigned_reloads if SMALL_REGISTER_CLASSES.
(reload_reg_used_*): Refine our tracking of reload reg usage by defining more
of these HARD_REG_SETs.
(mark_reload_reg_in_use, reload_reg_free_p): Rework to use new method of
describing where a reload register is used.
(reload_reg_free_before_p, reload_reg_reaches_end_p): Likewise.
(allocate_reload_reg): Pass new reload descriptions.
(choose_reload_regs): Likewise.
Save and restore the new HARD_REG_SETs.
Remove now-redundant code to prevent conflicts.
(merge_assigned_reloads): New function.
(emit_reload_insns): Output each reload type into its own sequence, then
output the sequences in the proper order.
Put our output reloads after a CLOBBER made by find_reloads.
Pass ALL_REGS to find_equiv_regs; nothing special about GENERAL_REGS.
Don't use an old equivalence if doing so would be more expensive.
Clean up tracking of values still in reload regs using reload description
info to see if the reload reaches the end of the insn.
(gen_input_reload): Pass reload description and emit insns to end of current
sequence.
(inc_for_reload): Return void; no longer need INSN as operand.
Emit insns to end of current sequence.

From-SVN: r3910
1993-03-29 06:24:36 -05:00
Richard Stallman f81497d905 (expand_expr, case MAX_EXPR/MIN_EXPR): If mode is multiword int,
use do_jump_by_parts_greater_rtx to compare efficiently.
(do_jump_by_parts_greater_rtx): New function.

From-SVN: r3909
1993-03-29 08:23:24 +00:00
Richard Stallman 42f00318ab (store_parm_decls): Use pedwarn for "promoted arg doesn't
match prototype" warning.

From-SVN: r3908
1993-03-29 04:49:21 +00:00
Richard Kenner 5d2ac65e2b (expand_call): Always allocate TARGET in mode of result expression;
VALREG might have been promoted.
Ensure TARGET is a REG when checking for promotion and verify that we
get back the mode we expect.

From-SVN: r3907
1993-03-28 20:26:03 -05:00
Jeff Law 994571561f pa.md (smin, [...]): New patterns.
* pa.md (smin, umin, smax, umax): New patterns.

	* pa.md (cbranch define_delay): Enable nullification of
	conditional branch delay slots (based upon branch direction).
	(conditional branch patterns): Call output_cbranch to get the
	correct output template.  Long conditional branches with an
	annulled delay slot have a length of 3.
	(branch on bit patterns): Call output_bb to get the correct
	output template.  Long branches with an annulled delay slot have
	a length of 3.
	(decrement and branch pattern): Handle nullification of long

From-SVN: r3906
1993-03-28 16:56:26 -07:00
Richard Stallman f2878c6b32 (expand_expr): For COMPONENT_REF, don't force_reg op0 if it is BLKmode.
From-SVN: r3905
1993-03-28 23:55:45 +00:00
Jeff Law 35523fce74 reorg.c (ANNUL_IFTRUE_SLOTS, [...]): Add new flags variable to these dummy macros.
* reorg.c (ANNUL_IFTRUE_SLOTS, ANNUL_IFFALSE_SLOTS): Add new
	flags variable to these dummy macros.
	(get_jump_flags): New function.
	(optimize_skip): Get jump flags information from the delay insn.
	(steal_delay_list_from_target): Get jump flags information from the
	delay insn and the label of the trial jump.
	(steal_delay_list_from_fallthrough): Get jump flags information
	from the delay insn.
	(try_merge_delay_insns): Likewise.
	(fill_simple_delay_slots): Likewise.
	(fill_slots_from_thread): Likewise.
	(make_return_insn): Likewise.

From-SVN: r3904
1993-03-28 14:25:08 -07:00
Jeff Law 0b0316dc43 genattrtab.c (write_eligible_delay): Add new variable "flags" to the generated functions.
* genattrtab.c (write_eligible_delay): Add new variable
	"flags" to the generated functions.  All callers changed.
	(check_attr_test): Handle ATTR_FLAG.
	(clear_struct_flag): Likewise.
	(count_sub_rtxs): Likewise.
	(write_test_expr): Likewise.

From-SVN: r3903
1993-03-28 14:23:09 -07:00
Jeff Law 417a6986d3 * rtl.def (ATTR_FLAG): New RTL code.
From-SVN: r3902
1993-03-28 14:22:43 -07:00
Jeff Law eaa48dabf5 * genattr.c (main): Output ATTR_FLAG masks.
From-SVN: r3901
1993-03-28 14:22:00 -07:00
Richard Stallman 8caf703ce2 Move comments about big sed command outside the command itself.
From-SVN: r3900
1993-03-28 07:46:33 +00:00
Richard Stallman 103b7b1789 (process_init_constructor, digest_init):
Check and set new static var partial_bracket_mentioned.

From-SVN: r3899
1993-03-28 05:48:46 +00:00
Richard Stallman f41372d40f (lang_options): Add -W{no-,}missing-braces.
From-SVN: r3898
1993-03-28 05:48:06 +00:00
Richard Stallman c4c7fef15c Updated for recent change in c-parse.gperf.
From-SVN: r3897
1993-03-28 05:42:22 +00:00
Richard Kenner 4752d3bc31 (expand_function_start): When evaluating sizes of variable types, do
so just for side-effects (the SAVE_EXPRs).

From-SVN: r3896
1993-03-27 13:41:59 -05:00
Richard Kenner 93609dfb14 (variable_size): When evaluating sizes of variable types, do so just
for side-effects (the SAVE_EXPRs).

From-SVN: r3895
1993-03-27 13:41:31 -05:00
Jeff Law f16fe3947b * From Jukka Virtanen.
* pa.h (TRAMPOLINE_TEMPLATE): Define for the PA.
	(TRAMPOLINE_SIZE): Define for the PA.
	(INITIALIZE_TRAMPOLINE): Define for the PA.

From-SVN: r3894
1993-03-27 11:40:46 -07:00
Jeff Law 0002b1a854 * pa.md (cacheflush): New pattern.
From-SVN: r3893
1993-03-27 11:40:27 -07:00
Richard Kenner f18c857663 Major rework to agree with new calling sequence.
From-SVN: r3892
1993-03-27 08:35:43 -05:00
Richard Kenner e76e75bb70 (mov[qhs]i): Allow moving a special reg to itself.
From-SVN: r3891
1993-03-27 08:21:59 -05:00
Richard Stallman 6ac2ba936e (S_MODES, D_MODES, T_MODES):
Accept only those complex modes that are small enough.
Rewrite to make the expressions simpler.

From-SVN: r3890
1993-03-27 08:49:19 +00:00
Richard Stallman ae698e41ed (stabilize_reference_1): For division and remainder, make a save_expr.
From-SVN: r3889
1993-03-27 07:23:42 +00:00
Richard Kenner cf1c49cb56 Use STDIO_PROTO for prototypes with FILE.
From-SVN: r3888
1993-03-26 19:20:31 -05:00
Richard Kenner d7f6896adb Add standard copyright notice.
From-SVN: r3887
1993-03-26 19:19:59 -05:00
Richard Kenner c1f0402289 Add prototypes for static functions.
(choose_hard_reg_mode): Add missing parameters declaration.

From-SVN: r3886
1993-03-26 17:29:57 -05:00