📄 itanium2.md
字号:
(eq_attr "itanium_class" "nop_f")) (eq (symbol_ref "bundling_p") (const_int 0))) "2_F0")(define_insn_reservation "2_nop_x" 0 (and (and (eq_attr "cpu" "itanium2") (eq_attr "itanium_class" "nop_x")) (eq (symbol_ref "bundling_p") (const_int 0))) "2_L0")(define_insn_reservation "2_unknown" 1 (and (and (eq_attr "cpu" "itanium2") (eq_attr "itanium_class" "unknown")) (eq (symbol_ref "bundling_p") (const_int 0))) "2_empty")(define_insn_reservation "2_nop" 0 (and (and (eq_attr "cpu" "itanium2") (eq_attr "itanium_class" "nop")) (eq (symbol_ref "bundling_p") (const_int 0))) "2_M0|2_NB|2_I0|2_F0")(define_insn_reservation "2_ignore" 0 (and (and (eq_attr "cpu" "itanium2") (eq_attr "itanium_class" "ignore")) (eq (symbol_ref "bundling_p") (const_int 0))) "nothing")(define_cpu_unit "2_m_cont_only, 2_b_cont_only" "two")(define_cpu_unit "2_mi_cont_only, 2_mm_cont_only, 2_mf_cont_only" "two")(define_cpu_unit "2_mb_cont_only, 2_bb_cont_only" "two")(final_presence_set "2_m_cont_only" "2_m_cont")(exclusion_set "2_m_cont_only" "2_0mi.i, 2_0mm.i, 2_0mf.i, 2_0mm.f, 2_0mb.b,\ 2_0mi.b, 2_0mm.b, 2_0mf.b, 2_0mlx.")(final_presence_set "2_b_cont_only" "2_b_cont")(exclusion_set "2_b_cont_only" "2_0bb.b")(final_presence_set "2_mi_cont_only" "2_mi_cont")(exclusion_set "2_mi_cont_only" "2_0mii., 2_0mib.")(final_presence_set "2_mm_cont_only" "2_mm_cont")(exclusion_set "2_mm_cont_only" "2_0mmi., 2_0mmf., 2_0mmb.")(final_presence_set "2_mf_cont_only" "2_mf_cont")(exclusion_set "2_mf_cont_only" "2_0mfi., 2_0mfb.")(final_presence_set "2_mb_cont_only" "2_mb_cont")(exclusion_set "2_mb_cont_only" "2_0mbb.")(final_presence_set "2_bb_cont_only" "2_bb_cont")(exclusion_set "2_bb_cont_only" "2_0bbb.")(define_insn_reservation "2_pre_cycle" 0 (and (and (eq_attr "cpu" "itanium2") (eq_attr "itanium_class" "pre_cycle")) (eq (symbol_ref "bundling_p") (const_int 0))) "nothing");;(define_insn_reservation "2_pre_cycle" 0;; (and (and (eq_attr "cpu" "itanium2");; (eq_attr "itanium_class" "pre_cycle"));; (eq (symbol_ref "bundling_p") (const_int 0)));; "(2_0m_bs, 2_m_cont) \;; | (2_0mi_bs, (2_mi_cont|nothing)) \;; | (2_0mm_bs, 2_mm_cont) \;; | (2_0mf_bs, (2_mf_cont|nothing)) \;; | (2_0b_bs, (2_b_cont|nothing)) \;; | (2_0bb_bs, (2_bb_cont|nothing)) \;; | (2_0mb_bs, (2_mb_cont|nothing)) \;; | (2_1m_bs, 2_m_cont) \;; | (2_1mi_bs, (2_mi_cont|nothing)) \;; | (2_1mm_bs, 2_mm_cont) \;; | (2_1mf_bs, (2_mf_cont|nothing)) \;; | (2_1b_bs, (2_b_cont|nothing)) \;; | (2_1bb_bs, (2_bb_cont|nothing)) \;; | (2_1mb_bs, (2_mb_cont|nothing)) \;; | (2_m_cont_only, (2_m_cont|nothing)) \;; | (2_b_cont_only, (2_b_cont|nothing)) \;; | (2_mi_cont_only, (2_mi_cont|nothing)) \;; | (2_mm_cont_only, (2_mm_cont|nothing)) \;; | (2_mf_cont_only, (2_mf_cont|nothing)) \;; | (2_mb_cont_only, (2_mb_cont|nothing)) \;; | (2_bb_cont_only, (2_bb_cont|nothing)) \;; | (2_m_stop, (2_0mmi_cont|nothing)) \;; | (2_mi_stop, (2_0mii_cont|nothing))");; Bypasses:(define_bypass 1 "2_fcmp" "2_br,2_scall")(define_bypass 0 "2_icmp" "2_br,2_scall")(define_bypass 0 "2_tbit" "2_br,2_scall")(define_bypass 2 "2_ld" "2_ld" "ia64_ld_address_bypass_p")(define_bypass 2 "2_ld" "2_st" "ia64_st_address_bypass_p")(define_bypass 2 "2_ld" "2_mmalua,2_mmmul,2_mmshf")(define_bypass 3 "2_ilog" "2_mmalua,2_mmmul,2_mmshf")(define_bypass 3 "2_ialu" "2_mmalua,2_mmmul,2_mmshf")(define_bypass 3 "2_mmalua,2_mmmul,2_mmshf" "2_ialu,2_ilog,2_ishf,2_st,2_ld")(define_bypass 6 "2_tofr" "2_frfr,2_stf")(define_bypass 7 "2_fmac" "2_frfr,2_stf");; We don't use here fcmp because scall may be predicated.(define_bypass 0 "2_fcvtfx,2_fld,2_fmac,2_fmisc,2_frar_i,2_frar_m,\ 2_frbr,2_frfr,2_frpr,2_ialu,2_ilog,2_ishf,2_ld,2_long_i,\ 2_mmalua,2_mmmul,2_mmshf,2_mmshfi,2_toar_m,2_tofr,\ 2_xmpy,2_xtd" "2_scall")(define_bypass 0 "2_unknown,2_ignore,2_stop_bit,2_br,2_fcmp,2_fcvtfx,2_fld,\ 2_fmac,2_fmisc,2_frar_i,2_frar_m,2_frbr,2_frfr,2_frpr,\ 2_ialu,2_icmp,2_ilog,2_ishf,2_ld,2_chk_s,2_long_i,\ 2_mmalua,2_mmmul,2_mmshf,2_mmshfi,2_nop,2_nop_b,2_nop_f,\ 2_nop_i,2_nop_m,2_nop_x,2_rse_m,2_scall,2_sem,2_stf,2_st,\ 2_syst_m0,2_syst_m,2_tbit,2_toar_i,2_toar_m,2_tobr,2_tofr,\ 2_topr,2_xmpy,2_xtd,2_lfetch" "2_ignore");; Bundling(define_automaton "twob");; Pseudo units for quicker searching for position in two packet window. */(define_query_cpu_unit "2_1,2_2,2_3,2_4,2_5,2_6" "twob");; All possible combinations of bundles/syllables(define_cpu_unit "2b_0m.ii, 2b_0m.mi, 2b_0m.fi, 2b_0m.mf, 2b_0b.bb, 2b_0m.bb,\ 2b_0m.ib, 2b_0m.mb, 2b_0m.fb, 2b_0m.lx" "twob")(define_cpu_unit "2b_0mi.i, 2b_0mm.i, 2b_0mf.i, 2b_0mm.f, 2b_0bb.b, 2b_0mb.b,\ 2b_0mi.b, 2b_0mm.b, 2b_0mf.b" "twob")(define_query_cpu_unit "2b_0mii., 2b_0mmi., 2b_0mfi., 2b_0mmf., 2b_0bbb., 2b_0mbb.,\ 2b_0mib., 2b_0mmb., 2b_0mfb., 2b_0mlx." "twob")(define_cpu_unit "2b_1m.ii, 2b_1m.mi, 2b_1m.fi, 2b_1m.mf, 2b_1b.bb, 2b_1m.bb,\ 2b_1m.ib, 2b_1m.mb, 2b_1m.fb, 2b_1m.lx" "twob")(define_cpu_unit "2b_1mi.i, 2b_1mm.i, 2b_1mf.i, 2b_1mm.f, 2b_1bb.b, 2b_1mb.b,\ 2b_1mi.b, 2b_1mm.b, 2b_1mf.b" "twob")(define_query_cpu_unit "2b_1mii., 2b_1mmi., 2b_1mfi., 2b_1mmf., 2b_1bbb., 2b_1mbb.,\ 2b_1mib., 2b_1mmb., 2b_1mfb., 2b_1mlx." "twob");; Slot 1(exclusion_set "2b_0m.ii" "2b_0m.mi, 2b_0m.fi, 2b_0m.mf, 2b_0b.bb, 2b_0m.bb,\ 2b_0m.ib, 2b_0m.mb, 2b_0m.fb, 2b_0m.lx")(exclusion_set "2b_0m.mi" "2b_0m.fi, 2b_0m.mf, 2b_0b.bb, 2b_0m.bb, 2b_0m.ib,\ 2b_0m.mb, 2b_0m.fb, 2b_0m.lx")(exclusion_set "2b_0m.fi" "2b_0m.mf, 2b_0b.bb, 2b_0m.bb, 2b_0m.ib, 2b_0m.mb, 2b_0m.fb, 2b_0m.lx")(exclusion_set "2b_0m.mf" "2b_0b.bb, 2b_0m.bb, 2b_0m.ib, 2b_0m.mb, 2b_0m.fb, 2b_0m.lx")(exclusion_set "2b_0b.bb" "2b_0m.bb, 2b_0m.ib, 2b_0m.mb, 2b_0m.fb, 2b_0m.lx")(exclusion_set "2b_0m.bb" "2b_0m.ib, 2b_0m.mb, 2b_0m.fb, 2b_0m.lx")(exclusion_set "2b_0m.ib" "2b_0m.mb, 2b_0m.fb, 2b_0m.lx")(exclusion_set "2b_0m.mb" "2b_0m.fb, 2b_0m.lx")(exclusion_set "2b_0m.fb" "2b_0m.lx");; Slot 2(exclusion_set "2b_0mi.i" "2b_0mm.i, 2b_0mf.i, 2b_0mm.f, 2b_0bb.b, 2b_0mb.b,\ 2b_0mi.b, 2b_0mm.b, 2b_0mf.b, 2b_0mlx.")(exclusion_set "2b_0mm.i" "2b_0mf.i, 2b_0mm.f, 2b_0bb.b, 2b_0mb.b,\ 2b_0mi.b, 2b_0mm.b, 2b_0mf.b, 2b_0mlx.")(exclusion_set "2b_0mf.i" "2b_0mm.f, 2b_0bb.b, 2b_0mb.b, 2b_0mi.b, 2b_0mm.b, 2b_0mf.b, 2b_0mlx.")(exclusion_set "2b_0mm.f" "2b_0bb.b, 2b_0mb.b, 2b_0mi.b, 2b_0mm.b, 2b_0mf.b, 2b_0mlx.")(exclusion_set "2b_0bb.b" "2b_0mb.b, 2b_0mi.b, 2b_0mm.b, 2b_0mf.b, 2b_0mlx.")(exclusion_set "2b_0mb.b" "2b_0mi.b, 2b_0mm.b, 2b_0mf.b, 2b_0mlx.")(exclusion_set "2b_0mi.b" "2b_0mm.b, 2b_0mf.b, 2b_0mlx.")(exclusion_set "2b_0mm.b" "2b_0mf.b, 2b_0mlx.")(exclusion_set "2b_0mf.b" "2b_0mlx.");; Slot 3(exclusion_set "2b_0mii." "2b_0mmi., 2b_0mfi., 2b_0mmf., 2b_0bbb., 2b_0mbb.,\ 2b_0mib., 2b_0mmb., 2b_0mfb., 2b_0mlx.")(exclusion_set "2b_0mmi." "2b_0mfi., 2b_0mmf., 2b_0bbb., 2b_0mbb.,\ 2b_0mib., 2b_0mmb., 2b_0mfb., 2b_0mlx.")(exclusion_set "2b_0mfi." "2b_0mmf., 2b_0bbb., 2b_0mbb., 2b_0mib., 2b_0mmb., 2b_0mfb., 2b_0mlx.")(exclusion_set "2b_0mmf." "2b_0bbb., 2b_0mbb., 2b_0mib., 2b_0mmb., 2b_0mfb., 2b_0mlx.")(exclusion_set "2b_0bbb." "2b_0mbb., 2b_0mib., 2b_0mmb., 2b_0mfb., 2b_0mlx.")(exclusion_set "2b_0mbb." "2b_0mib., 2b_0mmb., 2b_0mfb., 2b_0mlx.")(exclusion_set "2b_0mib." "2b_0mmb., 2b_0mfb., 2b_0mlx.")(exclusion_set "2b_0mmb." "2b_0mfb., 2b_0mlx.")(exclusion_set "2b_0mfb." "2b_0mlx.");; Slot 4(exclusion_set "2b_1m.ii" "2b_1m.mi, 2b_1m.fi, 2b_1m.mf, 2b_1b.bb, 2b_1m.bb,\ 2b_1m.ib, 2b_1m.mb, 2b_1m.fb, 2b_1m.lx")(exclusion_set "2b_1m.mi" "2b_1m.fi, 2b_1m.mf, 2b_1b.bb, 2b_1m.bb, 2b_1m.ib,\ 2b_1m.mb, 2b_1m.fb, 2b_1m.lx")(exclusion_set "2b_1m.fi" "2b_1m.mf, 2b_1b.bb, 2b_1m.bb, 2b_1m.ib, 2b_1m.mb, 2b_1m.fb, 2b_1m.lx")(exclusion_set "2b_1m.mf" "2b_1b.bb, 2b_1m.bb, 2b_1m.ib, 2b_1m.mb, 2b_1m.fb, 2b_1m.lx")(exclusion_set "2b_1b.bb" "2b_1m.bb, 2b_1m.ib, 2b_1m.mb, 2b_1m.fb, 2b_1m.lx")(exclusion_set "2b_1m.bb" "2b_1m.ib, 2b_1m.mb, 2b_1m.fb, 2b_1m.lx")(exclusion_set "2b_1m.ib" "2b_1m.mb, 2b_1m.fb, 2b_1m.lx")(exclusion_set "2b_1m.mb" "2b_1m.fb, 2b_1m.lx")(exclusion_set "2b_1m.fb" "2b_1m.lx");; Slot 5(exclusion_set "2b_1mi.i" "2b_1mm.i, 2b_1mf.i, 2b_1mm.f, 2b_1bb.b, 2b_1mb.b,\ 2b_1mi.b, 2b_1mm.b, 2b_1mf.b, 2b_1mlx.")(exclusion_set "2b_1mm.i" "2b_1mf.i, 2b_1mm.f, 2b_1bb.b, 2b_1mb.b,\ 2b_1mi.b, 2b_1mm.b, 2b_1mf.b, 2b_1mlx.")(exclusion_set "2b_1mf.i" "2b_1mm.f, 2b_1bb.b, 2b_1mb.b, 2b_1mi.b, 2b_1mm.b, 2b_1mf.b, 2b_1mlx.")(exclusion_set "2b_1mm.f" "2b_1bb.b, 2b_1mb.b, 2b_1mi.b, 2b_1mm.b, 2b_1mf.b, 2b_1mlx.")(exclusion_set "2b_1bb.b" "2b_1mb.b, 2b_1mi.b, 2b_1mm.b, 2b_1mf.b, 2b_1mlx.")(exclusion_set "2b_1mb.b" "2b_1mi.b, 2b_1mm.b, 2b_1mf.b, 2b_1mlx.")(exclusion_set "2b_1mi.b" "2b_1mm.b, 2b_1mf.b, 2b_1mlx.")(exclusion_set "2b_1mm.b" "2b_1mf.b, 2b_1mlx.")(exclusion_set "2b_1mf.b" "2b_1mlx.");; Slot 6(exclusion_set "2b_1mii." "2b_1mmi., 2b_1mfi., 2b_1mmf., 2b_1bbb., 2b_1mbb.,\ 2b_1mib., 2b_1mmb., 2b_1mfb., 2b_1mlx.")(exclusion_set "2b_1mmi." "2b_1mfi., 2b_1mmf., 2b_1bbb., 2b_1mbb.,\ 2b_1mib., 2b_1mmb., 2b_1mfb., 2b_1mlx.")(exclusion_set "2b_1mfi." "2b_1mmf., 2b_1bbb., 2b_1mbb., 2b_1mib., 2b_1mmb., 2b_1mfb., 2b_1mlx.")(exclusion_set "2b_1mmf." "2b_1bbb., 2b_1mbb., 2b_1mib., 2b_1mmb., 2b_1mfb., 2b_1mlx.")(exclusion_set "2b_1bbb." "2b_1mbb., 2b_1mib., 2b_1mmb., 2b_1mfb., 2b_1mlx.")(exclusion_set "2b_1mbb." "2b_1mib., 2b_1mmb., 2b_1mfb., 2b_1mlx.")(exclusion_set "2b_1mib." "2b_1mmb., 2b_1mfb., 2b_1mlx.")(exclusion_set "2b_1mmb." "2b_1mfb., 2b_1mlx.")(exclusion_set "2b_1mfb." "2b_1mlx.")(final_presence_set "2b_0mi.i" "2b_0m.ii")(final_presence_set "2b_0mii." "2b_0mi.i")(final_presence_set "2b_1mi.i" "2b_1m.ii")(final_presence_set "2b_1mii." "2b_1mi.i")(final_presence_set "2b_0mm.i" "2b_0m.mi")(final_presence_set "2b_0mmi." "2b_0mm.i")(final_presence_set "2b_1mm.i" "2b_1m.mi")(final_presence_set "2b_1mmi." "2b_1mm.i")(final_presence_set "2b_0mf.i" "2b_0m.fi")(final_presence_set "2b_0mfi." "2b_0mf.i")(final_presence_set "2b_1mf.i" "2b_1m.fi")(final_presence_set "2b_1mfi." "2b_1mf.i")(final_presence_set "2b_0mm.f" "2b_0m.mf")(final_presence_set "2b_0mmf." "2b_0mm.f")(final_presence_set "2b_1mm.f" "2b_1m.mf")(final_presence_set "2b_1mmf." "2b_1mm.f")(final_presence_set "2b_0bb.b" "2b_0b.bb")(final_presence_set "2b_0bbb." "2b_0bb.b")(final_presence_set "2b_1bb.b" "2b_1b.bb")(final_presence_set "2b_1bbb." "2b_1bb.b")(final_presence_set "2b_0mb.b" "2b_0m.bb")(final_presence_set "2b_0mbb." "2b_0mb.b")(final_presence_set "2b_1mb.b" "2b_1m.bb")(final_presence_set "2b_1mbb." "2b_1mb.b")(final_presence_set "2b_0mi.b" "2b_0m.ib")(final_presence_set "2b_0mib." "2b_0mi.b")(final_presence_set "2b_1mi.b" "2b_1m.ib")(final_presence_set "2b_1mib." "2b_1mi.b")(final_presence_set "2b_0mm.b" "2b_0m.mb")(final_presence_set "2b_0mmb." "2b_0mm.b")(final_presence_set "2b_1mm.b" "2b_1m.mb")(final_presence_set "2b_1mmb." "2b_1mm.b")(final_presence_set "2b_0mf.b" "2b_0m.fb")(final_presence_set "2b_0mfb." "2b_0mf.b")(final_presence_set "2b_1mf.b" "2b_1m.fb")(final_presence_set "2b_1mfb." "2b_1mf.b")(final_presence_set "2b_0mlx." "2b_0m.lx")(final_presence_set "2b_1mlx." "2b_1m.lx");; See the corresponding comment in non-bundling section above.(final_presence_set "2b_1m.lx" "2b_0mmi.,2b_0mfi.,2b_0mmf.,2b_0mib.,2b_0mmb.,2b_0mfb.,2b_0mlx.")(final_presence_set "2b_1b.bb" "2b_0mii.,2b_0mmi.,2b_0mfi.,2b_0mmf.,2b_0mlx.")(final_presence_set "2b_1m.ii,2b_1m.mi,2b_1m.fi,2b_1m.mf,2b_1m.bb,2b_1m.ib,2b_1m.mb,2b_1m.fb" "2b_0mii.,2b_0mmi.,2b_0mfi.,2b_0mmf.,2b_0mib.,2b_0mmb.,2b_0mfb.,2b_0mlx.");; Ports/units (nb means nop.b insn issued into given port):(define_cpu_unit "2b_um0, 2b_um1, 2b_um2, 2b_um3, 2b_ui0, 2b_ui1, 2b_uf0, 2b_uf1,\ 2b_ub0, 2b_ub1, 2b_ub2, 2b_unb0, 2b_unb1, 2b_unb2" "twob")(exclusion_set "2b_ub0" "2b_unb0")(exclusion_set "2b_ub1" "2b_unb1")(exclusion_set "2b_ub2" "2b_unb2");; The following rules are used to decrease number of alternatives.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -