Commit Graph

5457 Commits

Author SHA1 Message Date
Jan Brittenson
6a94387ce7 Initial revision
From-SVN: r5470
1993-09-25 03:17:32 -07:00
Doug Evans
1e513cfbd6 * stupid.c: (stupid_find_reg): never use HARD_FRAME_POINTER_REGNUM.
From-SVN: r5469
1993-09-24 19:56:27 +00:00
Doug Evans
a35ad16891 stmt.c: (expand_goto): Set hard_frame_pointer_rtx when restoring the frame.
* stmt.c: (expand_goto): Set hard_frame_pointer_rtx when restoring
the frame.  Use it when restoring other registers.
(expand_end_bindings): ARG_POINTER_REGNUM will be eliminated into
HARD_FRAME_POINTER_REGNUM, not FRAME_POINTER_REGNUM; adjust code accordingly.

From-SVN: r5468
1993-09-24 19:56:05 +00:00
Doug Evans
d8a0edf4b4 sdbout.c: (sdbout_symbol): Use HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
* sdbout.c: (sdbout_symbol): Use HARD_FRAME_POINTER_REGNUM instead of
FRAME_POINTER_REGNUM.

From-SVN: r5467
1993-09-24 19:55:19 +00:00
Doug Evans
cd0ca9ad6d sched.c: (memrefs_conflict_p): We can work out whether references via...
* sched.c: (memrefs_conflict_p): We can work out whether references
via hard_frame_pointer_rtx are likely to conflict.
(attach_deaths, case REG): Don't add death notes for
HARD_FRAME_POINTER_REGNUM.

From-SVN: r5466
1993-09-24 19:54:46 +00:00
Doug Evans
b3b6c9b3f3 rtlanal.c: (rtx_unstable_p): HARD_FRAME_POINTER_REGNUM is not an unstable register.
* rtlanal.c: (rtx_unstable_p): HARD_FRAME_POINTER_REGNUM is not
an unstable register.
(rtx_varies_p, case REG): hard_frame_pointer_rtx is invariant.
(rtx_addr_can_trap_p, case REG): hard_frame_pointer_rtx won't trap.

From-SVN: r5465
1993-09-24 19:54:09 +00:00
Doug Evans
b07ff75d63 reorg.c: (mark_referenced_resource): if frame_pointer_needed...
* reorg.c: (mark_referenced_resource): if frame_pointer_needed,
HARD_FRAME_POINTER_REGNUM is also a referenced resource.
(mark_target_live_regs): value in HARD_FRAME_POINTER_REGNUM is not
call-clobbered.
(dbr_schedule): HARD_FRAME_POINTER_REGNUM should be valid at the
end of a function.

From-SVN: r5464
1993-09-24 19:53:15 +00:00
Doug Evans
3ec2ea3e1d reload1.c: (init_reload): use HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
* reload1.c: (init_reload): use HARD_FRAME_POINTER_REGNUM instead of
FRAME_POINTER_REGNUM.
(reload): Only prohibit elimination of HARD_FRAME_POINTER_REGNUM, not
FRAME_POINTER_REGNUM if frame_pointer_needed.  Never prohibit
elimination of FRAME_POINTER_REGNUM into HARD_FRAME_POINTER_REGNUM.
Mark HARD_FRAME_POINTER_REGNUM as live at the start of a block if
it is still needed after elimination.
(eliminate_regs): For non-local goto's, don't delete stores into the
hard frame pointer.
(eliminate_regs_in_insn): adjust comment.
(mark_not_eliminable): if frame_pointer_rtx and hard_frame_pointer_rtx
are not the same, then frame_pointer_rtx is eliminable;
hard_frame_pointer_rtx never is if it is set..
(order_regs_for_reload): HARD_FRAME_POINTER_REGNUM is a bad spill reg.
(choose_reload_regs): HARD_FRAME_POINTER_REGNUM is a bad choice.

From-SVN: r5463
1993-09-24 19:51:49 +00:00
Doug Evans
a36d4c6259 reload.c: (immune_p): Constants never overlap hard frame pointer references.
* reload.c: (immune_p): Constants never overlap hard frame pointer references.
(find_reloads_address): Compute invalid references to the hard
frame pointer in a register; also (reg + const)
and (reg + reg + const).

From-SVN: r5462
1993-09-24 19:50:44 +00:00
Doug Evans
6fa4004a0c * loop.c: (invariant_p, case REG): hard_frame_pointer_rtx is invariant.
From-SVN: r5461
1993-09-24 19:49:57 +00:00
Doug Evans
c2618f0522 local-alloc.c: (find_free_reg): Make sure we will always be able to eliminate...
* local-alloc.c: (find_free_reg): Make sure we will always be able
to eliminate FRAME_POINTER_REGNUM into HARD_FRAME_POINTER_REGNUM.

From-SVN: r5460
1993-09-24 19:49:18 +00:00
Doug Evans
cbe23927aa jump.c: (thread_jumps): Value in HARD_FRAME_POINTER_REGNUM is never modified by a call.
* jump.c: (thread_jumps): Value in HARD_FRAME_POINTER_REGNUM is never
modified by a call.

From-SVN: r5459
1993-09-24 19:46:12 +00:00
Doug Evans
7b0957a710 global.c: (global_alloc): Make sure that it is always possible to eliminate...
* global.c: (global_alloc): Make sure that it is always possible to
eliminate FRAME_POINTER_REGNUM into HARD_FRAME_POINTER_REGNUM.

From-SVN: r5458
1993-09-24 19:45:44 +00:00
Doug Evans
e408ec3591 * genattrtab.c (hard_frame_pointer_rtx): New Dummy definition.
From-SVN: r5457
1993-09-24 19:43:43 +00:00
Doug Evans
b37f453b2a function.c: (instantiate_virtual_regs_1...
* function.c: (instantiate_virtual_regs_1, case MEM): references to
MEM via the hard frame pointer shouldn't be copied.

From-SVN: r5456
1993-09-24 19:42:16 +00:00
Doug Evans
73a187c146 flow.c: (life_analysis): Mark HARD_FRAME_POINTER_REGNUM as live at the end of the function.
* flow.c: (life_analysis): Mark HARD_FRAME_POINTER_REGNUM as live at
the end of the function.
(insn_dead_p): Don't delete insns that set the hard frame pointer.
(mark_set_1): Don't add death information about
HARD_FRAME_POINTER_REGNUM.
(mark_used_regs, case REG): Don't put HARD_FRAME_POINTER_REGNUM in
regs_ever_live.  Don't mark it as needed either.
* function.c: (instantiate_virtual_regs_1, case MEM): references to
MEM via the hard frame pointer shouldn't be copied.

From-SVN: r5455
1993-09-24 19:40:36 +00:00
Doug Evans
11c50c5efd * explow.c: (copy_all_regs): Don't copy HARD_FRAME_POINTER_REGNUM.
From-SVN: r5454
1993-09-24 19:39:56 +00:00
Doug Evans
ac6f08b075 emit-rtl.c: (hard_frame_pointer_rtx): New variable.
* emit-rtl.c: (hard_frame_pointer_rtx): New variable.
(gen_rtx): return hard_frame_pointer_rtx if generating rtl
for HARD_FRAME_POINTER_REGNUM.
(enit_emit_once): Generate initial rtl for hard_frame_pointer_rtx.

From-SVN: r5453
1993-09-24 19:39:25 +00:00
Doug Evans
804f56d8d9 dbxout.c: (dbxout_symbol): FRAME_POINTER_REGNUM has been eliminated by now...
* dbxout.c: (dbxout_symbol): FRAME_POINTER_REGNUM has been eliminated
by now, use HARD_FRAME_POINTER_REGNUM.

From-SVN: r5452
1993-09-24 19:38:51 +00:00
Doug Evans
8bc169f258 cse.c: (FIXED_REGNO_P): HARD_FRAME_POINTER_REGNUM is fixed.
* cse.c: (FIXED_REGNO_P): HARD_FRAME_POINTER_REGNUM is fixed.
(CHEAP_REG): HARD_FRAME_POINTER_REGNUM is cheap.
(FIXED_BASE_PLUS): Allow hard frame pointer as base.
(NONZERO_BASE_PLUS_P): Likewise.
(cannon_hash, case REG): Add HARD_FRAME_POINTER_REGNUM to list of
special registers for SMALL_REGISTER_CLASSES.
(find_best_addr): Addresses containing HARD_FRAME_POINTER_REGNUM
cannot be replaced.
(cse_main): value in HARD_FRAME_POINTER_REGNUM is preserved across calls.

From-SVN: r5451
1993-09-24 19:38:20 +00:00
Doug Evans
6d7096b078 combine.c: (combinable_i3_pat): Don't add REG_DEAD notes for HARD_FRAME_POINTER_REGNUM.
* combine.c: (combinable_i3_pat): Don't add REG_DEAD notes for
HARD_FRAME_POINTER_REGNUM.
(subst, case SUBREG): Don't change register number or mode if it
is HARD_FRAME_POINTER_REGNUM.

From-SVN: r5450
1993-09-24 19:37:25 +00:00
Doug Evans
3ba7165675 rtl.h: (HARD_FRAME_POINTER_REGNUM): New macro.
* rtl.h: (HARD_FRAME_POINTER_REGNUM): New macro.
(hard_frame_pointer_rtx): New variable

From-SVN: r5449
1993-09-24 19:36:23 +00:00
Richard Stallman
fe089a905a Fix typo in previous change.
From-SVN: r5448
1993-09-24 19:24:53 +00:00
Richard Stallman
8b6813aad1 (gen_label_rtx): If output_bytecode, make a CODE_LABEL
but with different contents.

From-SVN: r5447
1993-09-24 19:22:53 +00:00
Richard Stallman
73e8e1ecab (BYTECODE_LABEL, BYTECODE_OFFSET, BYTECODE_BC_LABEL):
(BYTECODE_UID): New macros.
(struct rtx_def): Delete elements label, offset, bc_label, uid.

From-SVN: r5446
1993-09-24 19:22:11 +00:00
Richard Stallman
ff32812a47 (eliminate_regs): Specially handle the case where INSN is a note (an EXPR_LIST or INSN_LIST).
(eliminate_regs): Specially handle the case where INSN
is a note (an EXPR_LIST or INSN_LIST).
(eliminate_regs_in_insn): Pass the notes as INSN,
when calling eliminate_insn to process the notes.

From-SVN: r5445
1993-09-24 19:07:10 +00:00
Michael Meissner
7323e99b36 Add SET_ASM_OP
From-SVN: r5444
1993-09-24 15:26:41 +00:00
James Van Artsdalen
0b760f1ee6 (ASM_OUTPUT_ASCII): Enclose macro in "do { .. } while (0)".
From-SVN: r5443
1993-09-24 05:00:25 +00:00
Richard Stallman
4f1c4914f4 (bi-parser.c): Supply explicit rule.
Add bi-parser.h as target.
Put these files in srcdir.

(bc-optab.o, bc-emit.o): Add missing deps.
(bi-parser.c, bi-lexer.c): Don't depend on .h files here.

From-SVN: r5442
1993-09-23 21:34:43 +00:00
Richard Stallman
8305445b7a (lang_options): Add -fallow-single-precision.
From-SVN: r5441
1993-09-23 21:19:56 +00:00
Richard Stallman
50560a2954 (bc_gen_rtx): Deleted.
From-SVN: r5440
1993-09-23 18:57:49 +00:00
Jan Brittenson
1f57f40b33 declared yyerror before using it
From-SVN: r5439
1993-09-23 11:45:53 -07:00
Richard Stallman
da9f42b18e (handle_pragma_weak): Test HANDLE_PRAGMA_WEAK
and WEAK_ASM_OP and SET_ASM_OP.

From-SVN: r5438
1993-09-23 17:25:13 +00:00
Jan Brittenson
c53e944060 changed bytecode rtx structure references into macros
From-SVN: r5437
1993-09-23 10:15:31 -07:00
Jan Brittenson
45d7f9b959 change bytecode rtx structure references into macros
From-SVN: r5436
1993-09-23 10:08:59 -07:00
Jan Brittenson
e7a4277263 changed bytecode rtx structure references into macros
From-SVN: r5435
1993-09-23 10:08:13 -07:00
Richard Stallman
5b7ded0d78 (stmt.o): Fix typo.
From-SVN: r5434
1993-09-23 17:06:17 +00:00
Richard Stallman
a97f5a864f (expand_increment): Don't store directly ito a subreg
that is narrower than a word.

From-SVN: r5433
1993-09-23 16:56:28 +00:00
Jan Brittenson
672fd7e238 added bytecode dependencies
From-SVN: r5432
1993-09-23 09:48:35 -07:00
Richard Stallman
c059f055c2 Fix typos in recent changes.
(bc-arity.h, bc-opcode.h, bc-opname.h): Use `./'.

From-SVN: r5431
1993-09-23 16:02:22 +00:00
Richard Stallman
ef026f9101 (init_reg_last_arrays): New function.
(combine_instructions): Use it.
(force_to_mode): Narrow mask to fit mode (except VOIDmode).
(record_value_for_reg): When zeroing reg_last_set_value, also
zero reg_last_set_{mode,nonzero_bits,sign_bit_copies}.
(record_dead_and_set_regs): Likewise.

From-SVN: r5430
1993-09-23 06:11:30 +00:00
James Van Artsdalen
9f5cad0582 (record_label_references): Don't follow a null label reference chain.
From-SVN: r5429
1993-09-23 06:07:19 +00:00
Richard Stallman
a05afb9511 Include bytetypes.h only if __GNUC__.
(bc_initialize): Add MODE arg to REAL_VALUE_ATOF calls.

From-SVN: r5428
1993-09-23 05:52:37 +00:00
Richard Stallman
d5056595c0 (bi-lexer.c): File is in $(srcdir).
From-SVN: r5427
1993-09-23 04:32:46 +00:00
Richard Stallman
b3fe11b85b (flag_allow_single_precision): Declared.
From-SVN: r5426
1993-09-23 02:05:43 +00:00
Richard Stallman
55b4742bf3 (flag_allow_single_precision): New variable.
(c_decode_option): Handle -fallow-single-precision.

From-SVN: r5425
1993-09-23 02:04:32 +00:00
Richard Stallman
0e03210994 (set_init_index): Handle and allow CONST_DECL.
(build_c_cast): When making a CONSTRUCTOR for a union cast,
specify its type.

(default_conversion): Implement -fallow-single-precision.

From-SVN: r5424
1993-09-23 02:03:14 +00:00
Richard Stallman
27f32a5400 (bi-arity, bi-opcode, bi-opname, bi-unparse, bi-lexer):
Make the rules explicit.  Don't use $^.
(bi-run.o, bi-parser.o, bi-lexer.o): Eliminate $<.
(bc-arity.h, bc-opcode.h, bc-opname.h): Eliminate $< and $@.

From-SVN: r5423
1993-09-22 23:50:42 +00:00
Richard Stallman
a8ac57d39a Include bytetypes.h.
(bc_emit_bytecode): Likewise.
(bc_emit_instruction) [! __GNUC__]: Don't really use bc-typecd.def.

From-SVN: r5422
1993-09-22 22:26:59 +00:00
Richard Stallman
a68c760860 (bc_adjust_stack): Use VALIDATE_STACK_FOR_BC, not VALIDATE_STACK.
From-SVN: r5421
1993-09-22 22:01:15 +00:00