]> git.ipfire.org Git - thirdparty/gcc.git/commit
rtl.h (addr_diff_vec_flags): New typedef.
authorJoern Rennecke <amylaar@gcc.gnu.org>
Fri, 6 Mar 1998 14:54:07 +0000 (14:54 +0000)
committerJoern Rennecke <amylaar@gcc.gnu.org>
Fri, 6 Mar 1998 14:54:07 +0000 (14:54 +0000)
commit33f7f3538517099ebde6568a519d1449a08cb37d
treec69562295412a4bbb90276f4abbb3f6d1cfe26cc
parent170a16c7f6f3de8ba786d3a18dab44296c387b9d
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
60 files changed:
gcc/ChangeLog
gcc/config/1750a/1750a.h
gcc/config/alpha/alpha.h
gcc/config/alpha/vms.h
gcc/config/arc/arc.h
gcc/config/arm/aof.h
gcc/config/arm/aout.h
gcc/config/clipper/clipper.h
gcc/config/convex/convex.h
gcc/config/dsp16xx/dsp16xx.h
gcc/config/elxsi/elxsi.h
gcc/config/fx80/fx80.h
gcc/config/gmicro/gmicro.h
gcc/config/h8300/h8300.h
gcc/config/i370/i370.h
gcc/config/i386/386bsd.h
gcc/config/i386/freebsd-elf.h
gcc/config/i386/freebsd.h
gcc/config/i386/i386.h
gcc/config/i386/linux.h
gcc/config/i386/netbsd.h
gcc/config/i386/osfrose.h
gcc/config/i386/ptx4-i.h
gcc/config/i386/sco5.h
gcc/config/i386/sysv4.h
gcc/config/i860/i860.h
gcc/config/i960/i960.h
gcc/config/m32r/m32r.h
gcc/config/m68k/3b1.h
gcc/config/m68k/dpx2.h
gcc/config/m68k/hp320.h
gcc/config/m68k/m68k.h
gcc/config/m68k/mot3300.h
gcc/config/m68k/sgs.h
gcc/config/m68k/tower-as.h
gcc/config/m88k/m88k.h
gcc/config/mips/mips.h
gcc/config/mn10200/mn10200.h
gcc/config/mn10300/mn10300.h
gcc/config/ns32k/encore.h
gcc/config/ns32k/ns32k.h
gcc/config/pa/pa.h
gcc/config/pyr/pyr.h
gcc/config/rs6000/rs6000.h
gcc/config/sh/sh.c
gcc/config/sh/sh.h
gcc/config/sh/sh.md
gcc/config/sparc/pbd.h
gcc/config/sparc/sparc.h
gcc/config/spur/spur.h
gcc/config/tahoe/tahoe.h
gcc/config/v850/v850.h
gcc/config/vax/vax.h
gcc/config/we32k/we32k.h
gcc/final.c
gcc/rtl.def
gcc/rtl.h
gcc/rtl.texi
gcc/stmt.c
gcc/tm.texi