Commit Graph

15 Commits

Author SHA1 Message Date
Joern Rennecke
33f7f35385 rtl.h (addr_diff_vec_flags): New typedef.
* rtl.h (addr_diff_vec_flags): New typedef.
	(union rtunion_def): New member rt_addr_diff_vec_flags.
	(ADDR_DIFF_VEC_FLAGS): New macro.
	* sh.c (output_branch): Fix offset overflow problems.
	* final.c (shorten_branches): Implement CASE_VECTOR_SHORTEN_MODE.
	(final_scan_insn): New argument BODY for ASM_OUTPUT_ADDR_DIFF_ELT.
	* rtl.def (ADDR_DIFF_VEC): Three new fields (min, max and flags).
	* stmt.c (expand_end_case): Supply new arguments to
	gen_rtx_ADDR_DIFF_VEC.
	* 1750a.h (ASM_OUTPUT_ADDR_DIFF_ELT): New argument BODY.
	* alpha.h, arc.h, clipper.h, convex.h : Likewise.
	* dsp16xx.h, elxsi.h, fx80.h, gmicro.h, h8300.h : Likewise.
	* i370.h, i386.h, i860.h, i960.h, m32r.h, m68k.h, m88k.h : Likewise.
	* mips.h, mn10200.h, mn10300.h, ns32k.h, pa.h, pyr.h : Likewise.
	* rs6000.h, sh.h, sparc.h, spur.h, tahoe.h, v850.h : Likewise.
	* vax.h, we32k.h, alpha/vms.h, arm/aof.h, arm/aout.h : Likewise.
	* i386/386bsd.h, i386/freebsd-elf.h : Likewise.
	* i386/freebsd.h, i386/linux.h : Likewise.
	* i386/netbsd.h, i386/osfrose.h, i386/ptx4-i.h, i386/sco5.h : Likewise.
	* i386/sysv4.h, m68k/3b1.h, m68k/dpx2.h, m68k/hp320.h : Likewise.
	* m68k/mot3300.h, m68k/sgs.h : Likewise.
	* m68k/tower-as.h, ns32k/encore.h, sparc/pbd.h : Likewise.
	* sh.h (INSN_ALIGN, INSN_LENGTH_ALIGNMENT): Define.
	(CASE_VECTOR_SHORTEN_MODE): Define.
	(short_cbranch_p, align_length, addr_diff_vec_adjust): Don't declare.
	(med_branch_p, braf_branch_p): Don't declare.
	(mdep_reorg_phase, barrier_align): Declare.
	(ADJUST_INSN_LENGTH): Remove alignment handling.
	* sh.c (uid_align, uid_align_max): Deleted.
	(max_uid_before_fixup_addr_diff_vecs, branch_offset): Deleted.
	(short_cbranch_p, med_branch_p, braf_branch_p, align_length): Deleted.
	(cache_align_p, fixup_aligns, addr_diff_vec_adjust): Deleted.
	(output_far_jump): Don't use braf_branch_p.
	(output_branchy_insn): Don't use branch_offset.
	(find_barrier): Remove checks for max_uid_before_fixup_addr_diff_vecs.
	Remove paired barrier stuff.
	Don't use cache_align_p.
	Take alignment insns into account.
	(fixup_addr_diff_vecs): Reduce to only fixing up the base label of
	the addr_diff_vec.
	(barrier_align, branch_dest): New function.
	(machine_dependent_reorg, split_branches): Remove infrastructure
	for branch shortening that is now provided in the backend.
	* sh.md (short_cbranch_p, med_branch_p, med_cbranch_p): New attributes.
	(braf_branch_p, braf_cbranch_p): Likewise.
	(attribute length): Use new attributes.
	(casesi_worker): Get mode and unsignednedd from ADDR_DIFF_VEC.
	(addr_diff_vec_adjust): Delete.
	(align_2): Now a define_expand.
	(align_log): Now length 0.

From-SVN: r18433
1998-03-06 14:54:07 +00:00
J"orn Rennecke
fc470718ac final.c (insn_last_address, [...]): New variables.
* final.c (insn_last_address, insn_current_align, uid_align):
	New variables.
	(in_align_chain, align_fuzz, align_shrink_fuzz): New functions.
	(insn_current_reference_address): Likewise.
	(shorten_branches, final_scan_insn): Implement LABEL_ALIGN,
	LABEL_ALIGN_AFTER_BARRIER and LOOP_ALIGN target macros.
	(label_to_alignment): New function.
	* genattrtab.c (write_test_expr): If one of LABEL_ALIGN,
	LABEL_ALIGN_AFTER_BARRIER or LOOP_ALIGN is defined, call
	insn_current_reference_address instead of insn_current_address.
	(or_attr_value, write_length_unit_log): New functions.
	(main): Call write_length_unit_log.
	(write_const_num_delay_slots): Output extra '\n'.
	* alpha.h (ASM_OUTPUT_LOOP_ALIGN, ASM_OUTPUT_ALIGN_CODE):
	replace with:
	(LOOP_ALIGN, ALIGN_LABEL_AFTER_BARRIER).
	* i386.h, i386/osfrose.h, i386/svr3dbx.h, m68k.h, sparc.h: Likewise.
	* arc.h, m32r.h (ASM_OUTPUT_LOOP_ALIGN): replace with:
	(LOOP_ALIGN).
	* i960.h, m88k.h: (ASM_OUTPUT_ALIGN_CODE): Replace with:
	(LABEL_ALIGN_AFTER_BARRIER).
	* ns32k/encore.h, ns32k/merlin.h, ns32k.h, ns32k/sequent.h: Likewise.
	* ns32k/tek6000.h: Likewise.
	* i386/gas.h (ASM_OUTPUT_LOOP_ALIGN, ASM_OUTPUT_ALIGN_CODE): Delete.
	* i386.md (casesi+1): Use ASM_OUTPUT_ALIGN instead of
	ASM_OUTPUT_ALIGN_CODE.

From-SVN: r18357
1998-03-02 11:54:35 +00:00
Richard Kenner
0e29e3c9c6 Change FSF address.
From-SVN: r9980
1995-06-15 15:44:43 -04:00
Doug Evans
c178c4f503 (ASM_OUTPUT_ASCII): Fix typo.
From-SVN: r6677
1994-02-28 23:22:31 +00:00
Richard Kenner
9e269f7292 (ASM_OUTPUT_ASCII): Wrap in `do { ... } while (0)'.
From-SVN: r6225
1993-12-13 19:09:31 -05:00
Richard Stallman
72f180fbf0 (ASM_OUTPUT_ASCII): Declare i.
From-SVN: r6064
1993-11-11 03:30:32 +00:00
Doug Evans
65c4237934 (CPP_PREDEFINES): Add system/cpu/machine assertions where missing.
From-SVN: r5557
1993-10-02 08:55:06 +00:00
Richard Kenner
8edfb249b9 (ASM_OUTPUT_ADDR_DIFF_ELT): Use .double instead of .word.
From-SVN: r5167
1993-08-16 18:58:03 -04:00
Richard Stallman
8e90a239ee (ASM_OUTPUT_ALIGN_CODE): Override as no-op.
From-SVN: r5158
1993-08-13 21:09:57 +00:00
Richard Stallman
e5ec2eb878 Comment fix.
From-SVN: r5157
1993-08-13 19:00:02 +00:00
Richard Stallman
5c23d95b4f (ASM_OUTPUT_ALIGN_CODE): Override to avoid generating a second argument.
From-SVN: r5156
1993-08-13 18:59:37 +00:00
James Van Artsdalen
deda1f9fab Use new file names for included ns32k files.
From-SVN: r3094
1993-01-05 05:54:06 +00:00
Richard Stallman
81ac6aa564 entered into RCS
From-SVN: r770
1992-04-18 00:04:05 +00:00
Richard Stallman
78c7cb7413 *** empty log message ***
From-SVN: r467
1992-03-13 22:34:08 +00:00
Richard Stallman
35d965d5c9 Initial revision
From-SVN: r103
1991-12-06 02:11:44 +00:00