Lines Matching refs:mnemonic
68 class T_CMP <string mnemonic, bits<2> MajOp, bit isNot, Operand ImmOp>
71 "$dst = "#!if(isNot, "!","")#mnemonic#"($src1, #$src2)",
76 let CextOpcode = mnemonic;
77 let opExtentBits = !if(!eq(mnemonic, "cmp.gtu"), 9, 10);
78 let isExtentSigned = !if(!eq(mnemonic, "cmp.gtu"), 0, 1);
84 let Inst{21} = !if(!eq(mnemonic, "cmp.gtu"), 0, src2{9});
119 class T_ALU32_3op<string mnemonic, bits<3> MajOp, bits<3> MinOp, bit OpsRev,
122 "$Rd = "#mnemonic#"($Rs, $Rt)",
125 let BaseOpcode = mnemonic#_rr;
126 let CextOpcode = mnemonic;
142 class T_ALU32_3op_pred<string mnemonic, bits<3> MajOp, bits<3> MinOp,
146 "$Rd = "#mnemonic#"($Rs, $Rt)",
151 let BaseOpcode = mnemonic#_rr;
152 let CextOpcode = mnemonic;
182 class T_ALU32_3op_sfx<string mnemonic, string suffix, bits<3> MajOp,
185 let AsmString = "$Rd = "#mnemonic#"($Rs, $Rt)"#suffix;
206 multiclass T_ALU32_3op_p<string mnemonic, bits<3> MajOp, bits<3> MinOp,
208 def t : T_ALU32_3op_pred<mnemonic, MajOp, MinOp, OpsRev, 0, 0>;
209 def f : T_ALU32_3op_pred<mnemonic, MajOp, MinOp, OpsRev, 1, 0>;
210 def tnew : T_ALU32_3op_pred<mnemonic, MajOp, MinOp, OpsRev, 0, 1>;
211 def fnew : T_ALU32_3op_pred<mnemonic, MajOp, MinOp, OpsRev, 1, 1>;
214 multiclass T_ALU32_3op_A2<string mnemonic, bits<3> MajOp, bits<3> MinOp,
217 def A2_#NAME : T_ALU32_3op <mnemonic, MajOp, MinOp, OpsRev, IsComm>;
218 defm A2_p#NAME : T_ALU32_3op_p<mnemonic, MajOp, MinOp, OpsRev>;
256 class T_ALU32_3op_cmp<string mnemonic, bits<2> MinOp, bit IsNeg, bit IsComm>
258 "$Pd = "#mnemonic#"($Rs, $Rt)",
260 let CextOpcode = mnemonic;
395 multiclass Addri_Pred<string mnemonic, bit PredNot> {
404 multiclass Addri_base<string mnemonic, SDNode OpNode> {
405 let CextOpcode = mnemonic, BaseOpcode = mnemonic#_ri in {
410 defm A2_p#NAME#t : Addri_Pred<mnemonic, 0>;
411 defm A2_p#NAME#f : Addri_Pred<mnemonic, 1>;
428 class T_ALU32ri_logical <string mnemonic, SDNode OpNode, bits<2> MinOp>
431 "$Rd = "#mnemonic#"($Rs, #$s10)" ,
436 let CextOpcode = mnemonic;
733 class T_ALU32_2op <string mnemonic, bits<3> minOp> :
735 "$Rd = "#mnemonic#"($Rs)", [] > {
753 class T_ALU32_2op_Pred <string mnemonic, bits<3> minOp, bit isPredNot,
757 #!if(isPredNew, ".new) ",") ")#"$Rd = "#mnemonic#"($Rs)"> {
774 multiclass ALU32_2op_Pred<string mnemonic, bits<3> minOp, bit PredNot> {
776 def NAME : T_ALU32_2op_Pred<mnemonic, minOp, PredNot, 0>;
780 def NAME#new : T_ALU32_2op_Pred<mnemonic, minOp, PredNot, 1>;
784 multiclass ALU32_2op_base<string mnemonic, bits<3> minOp> {
785 let BaseOpcode = mnemonic in {
787 def A2_#NAME : T_ALU32_2op<mnemonic, minOp>;
790 defm A4_p#NAME#t : ALU32_2op_Pred<mnemonic, minOp, 0>;
791 defm A4_p#NAME#f : ALU32_2op_Pred<mnemonic, minOp, 1>;
825 multiclass ZXTB_base <string mnemonic, bits<3> minOp> {
826 let BaseOpcode = mnemonic in {
831 defm A4_p#NAME#t : ALU32_2op_Pred<mnemonic, minOp, 0>;
832 defm A4_p#NAME#f : ALU32_2op_Pred<mnemonic, minOp, 1>;
1208 class T_cmp64_rr<string mnemonic, bits<3> MinOp, bit IsComm>
1210 "$Pd = "#mnemonic#"($Rs, $Rt)", [], "", ALU64_tc_2early_SLOT23> {
1259 class T_ALU64_rr<string mnemonic, string suffix, bits<4> RegType,
1263 "$Rd = " #mnemonic# "($Rs, " #Op2Pfx# "$Rt)" #suffix, [],
1281 class T_ALU64_arith<string mnemonic, bits<3> MajOp, bits<3> MinOp, bit IsSat,
1283 : T_ALU64_rr<mnemonic, !if(IsSat,":sat",""), 0b0011, MajOp, MinOp, OpsRev,
1292 class T_ALU64_logical<string mnemonic, bits<3> MinOp, bit OpsRev, bit IsComm,
1294 : T_ALU64_rr<mnemonic, "", 0b0011, 0b111, MinOp, OpsRev, IsComm,
1624 class T_load_io <string mnemonic, RegisterClass RC, bits<4> MajOp,
1627 "$dst = "#mnemonic#"($src1 + #$offset)", []>, AddrModeRel {
1656 class T_pload_io <string mnemonic, RegisterClass RC, bits<4>MajOp,
1662 #") $dst = "#mnemonic#"($src2 + #$offset)",
1698 multiclass LD_Idxd<string mnemonic, string CextOp, RegisterClass RC,
1702 def L2_#NAME#_io : T_load_io <mnemonic, RC, MajOp, ImmOp>;
1705 def L2_p#NAME#t_io : T_pload_io <mnemonic, RC, MajOp, predImmOp, 0, 0>;
1706 def L2_p#NAME#f_io : T_pload_io <mnemonic, RC, MajOp, predImmOp, 1, 0>;
1709 def L2_p#NAME#tnew_io : T_pload_io <mnemonic, RC, MajOp, predImmOp, 0, 1>;
1710 def L2_p#NAME#fnew_io : T_pload_io <mnemonic, RC, MajOp, predImmOp, 1, 1>;
1815 class T_load_pi <string mnemonic, RegisterClass RC, Operand ImmOp,
1819 "$dst = "#mnemonic#"($src1++#$offset)" ,
1849 class T_pload_pi <string mnemonic, RegisterClass RC, Operand ImmOp,
1854 ") ")#"$dst = "#mnemonic#"($src2++#$offset)",
1891 multiclass LD_PostInc <string mnemonic, string BaseOp, RegisterClass RC,
1895 def L2_#NAME#_pi : T_load_pi < mnemonic, RC, ImmOp, MajOp>;
1898 def L2_p#NAME#t_pi : T_pload_pi < mnemonic, RC, ImmOp, MajOp, 0, 0>;
1899 def L2_p#NAME#f_pi : T_pload_pi < mnemonic, RC, ImmOp, MajOp, 1, 0>;
1902 def L2_p#NAME#tnew_pi : T_pload_pi < mnemonic, RC, ImmOp, MajOp, 0, 1>;
1903 def L2_p#NAME#fnew_pi : T_pload_pi < mnemonic, RC, ImmOp, MajOp, 1, 1>;
1942 class T_loadalign_pi <string mnemonic, Operand ImmOp, bits<4> MajOp >
1945 "$dst = "#mnemonic#"($src2++#$offset)" ,
1977 class T_load_pr <string mnemonic, RegisterClass RC, bits<4> MajOp,
1981 "$dst = "#mnemonic#"($src1++$src2)" ,
2032 class T_load_pcr<string mnemonic, RegisterClass RC, bits<4> MajOp>
2035 "$dst = "#mnemonic#"($Rz ++ I:circ($Mu))", [],
2079 class T_loadalign_pcr<string mnemonic, bits<4> MajOp, MemAccessSize AccessSz >
2082 "$dst = "#mnemonic#"($Rz ++ I:circ($Mu))", [],
2108 class T_load_pci <string mnemonic, RegisterClass RC,
2112 "$dst = "#mnemonic#"($Rz ++ #$offset:circ($Mu))", [],
2196 class T_load_locked <string mnemonic, RegisterClass RC>
2199 "$dst = "#mnemonic#"($src)"> {
2205 let Inst{13-12} = !if (!eq(mnemonic, "memd_locked"), 0b01, 0b00);
2216 class T_store_locked <string mnemonic, RegisterClass RC>
2218 mnemonic#"($Rs, $Pd) = $Rt"> {
2225 let Inst{22} = !if (!eq(mnemonic, "memw_locked"), 0b0, 0b1);
2242 class T_load_pbr<string mnemonic, RegisterClass RC,
2247 "$dst = "#mnemonic#"($Rz ++ $Mu:brev)" ,
2645 class T_MType_mpy <string mnemonic, bits<4> RegTyBits, RegisterClass RC,
2649 "$dst = "#mnemonic
2670 class T_MType_vrcmpy <string mnemonic, bits<3> MajOp, bits<3> MinOp, bit isHi>
2671 : T_MType_mpy <mnemonic, 0b1001, DoubleRegs, MajOp, MinOp, 1, 1, "", 1, isHi>;
2673 class T_MType_dd <string mnemonic, bits<3> MajOp, bits<3> MinOp,
2675 : T_MType_mpy <mnemonic, 0b1001, DoubleRegs, MajOp, MinOp, isSat, isRnd>;
2677 class T_MType_rr1 <string mnemonic, bits<3> MajOp, bits<3> MinOp,
2679 : T_MType_mpy<mnemonic, 0b1101, IntRegs, MajOp, MinOp, isSat, isRnd>;
2681 class T_MType_rr2 <string mnemonic, bits<3> MajOp, bits<3> MinOp,
2683 : T_MType_mpy<mnemonic, 0b1101, IntRegs, MajOp, MinOp, isSat, isRnd, op2str>;
2768 class T_MType_acc_ri <string mnemonic, bits<3> MajOp, Operand ImmOp,
2771 "$dst "#mnemonic#"($src2, #$src3)",
2788 class T_MType_acc_rr <string mnemonic, bits<3> MajOp, bits<3> MinOp,
2793 "$dst "#mnemonic#"($src2, "#!if(hasNot, "~$src3)","$src3)")
3106 class T_XTYPE_mpy64 <string mnemonic, bits<3> MajOp, bits<3> MinOp,
3110 "$Rdd = "#mnemonic#"($Rs, $Rt"#!if(isConj,"*)",")")
3289 class T_store_pi <string mnemonic, RegisterClass RC, Operand ImmOp,
3293 mnemonic#"($src1++#$offset) = $src2"#!if(isHalf, ".h", ""),
3324 class T_pstore_pi <string mnemonic, RegisterClass RC, Operand ImmOp,
3329 ") ")#mnemonic#"($src2++#$offset) = $src3"#!if(isHalf, ".h", ""),
3361 multiclass ST_PostInc<string mnemonic, string BaseOp, RegisterClass RC,
3365 def S2_#NAME#_pi : T_store_pi <mnemonic, RC, ImmOp, MajOp, isHalf>;
3368 def S2_p#NAME#t_pi : T_pstore_pi <mnemonic, RC, ImmOp, MajOp, isHalf, 0, 0>;
3369 def S2_p#NAME#f_pi : T_pstore_pi <mnemonic, RC, ImmOp, MajOp, isHalf, 1, 0>;
3372 def S2_p#NAME#tnew_pi : T_pstore_pi <mnemonic, RC, ImmOp, MajOp,
3374 def S2_p#NAME#fnew_pi : T_pstore_pi <mnemonic, RC, ImmOp, MajOp,
3408 class T_store_pr <string mnemonic, RegisterClass RC, bits<3> MajOp,
3412 mnemonic#"($src1++$src2) = $src3"#!if(isHalf, ".h", ""),
3437 class T_store_io <string mnemonic, RegisterClass RC, Operand ImmOp,
3441 mnemonic#"($src1+#$src2) = $src3"#!if(isH,".h","")>,
3471 class T_pstore_io <string mnemonic, RegisterClass RC, Operand ImmOp,
3476 ") ")#mnemonic#"($src2+#$src3) = $src4"#!if(isH,".h",""),
3512 multiclass ST_Idxd<string mnemonic, string CextOp, RegisterClass RC,
3515 def S2_#NAME#_io : T_store_io <mnemonic, RC, ImmOp, MajOp, isH>;
3518 def S2_p#NAME#t_io : T_pstore_io<mnemonic, RC, predImmOp, MajOp, 0, 0, isH>;
3519 def S2_p#NAME#f_io : T_pstore_io<mnemonic, RC, predImmOp, MajOp, 1, 0, isH>;
3522 def S4_p#NAME#tnew_io : T_pstore_io <mnemonic, RC, predImmOp,
3524 def S4_p#NAME#fnew_io : T_pstore_io <mnemonic, RC, predImmOp,
3669 class T_store_pci <string mnemonic, RegisterClass RC,
3674 #mnemonic#"($Rz ++ #$offset:circ($Mu)) = $"#RegSrc#"",
3710 class T_storenew_pci <string mnemonic, Operand Imm,
3714 #mnemonic#"($Rz ++ #$offset:circ($Mu)) = $Nt.new",
3766 class T_store_pcr <string mnemonic, RegisterClass RC, bits<4>MajOp,
3770 #mnemonic#"($Rz ++ I:circ($Mu)) = $"#RegSrc#"",
3800 class T_storenew_pcr <string mnemonic, bits<2>MajOp,
3804 #mnemonic#"($Rz ++ I:circ($Mu)) = $Nt.new" ,
3831 class T_store_pbr<string mnemonic, RegisterClass RC,
3837 #mnemonic#"($Rz ++ $Mu:brev) = $src"#!if (!eq(isHalf, 1), ".h", ""),
3876 class T_storenew_pbr<string mnemonic, MemAccessSize addrSize, bits<2> majOp>
3879 #mnemonic#"($Rz ++ $Mu:brev) = $Nt.new", [],
3933 class T_S2op_1 <string mnemonic, bits<4> RegTyBits, RegisterClass RCOut,
3936 "$dst = "#mnemonic#"($src)"#!if(isSat, ":sat", ""),
3951 class T_S2op_1_di <string mnemonic, bits<2> MajOp, bits<3> MinOp>
3952 : T_S2op_1 <mnemonic, 0b0100, DoubleRegs, IntRegs, MajOp, MinOp, 0>;
3955 class T_S2op_1_id <string mnemonic, bits<2> MajOp, bits<3> MinOp, bit isSat = 0>
3956 : T_S2op_1 <mnemonic, 0b1000, IntRegs, DoubleRegs, MajOp, MinOp, isSat>;
3959 class T_S2op_1_ii <string mnemonic, bits<2> MajOp, bits<3> MinOp, bit isSat = 0>
3960 : T_S2op_1 <mnemonic, 0b1100, IntRegs, IntRegs, MajOp, MinOp, isSat>;
4040 class T_S2op_2 <string mnemonic, bits<4> RegTyBits, RegisterClass RCOut,
4045 "$dst = "#mnemonic#"($src, #$u5)"#!if(isSat, ":sat", "")
4063 class T_S2op_2_di <string mnemonic, bits<3> MajOp, bits<3> MinOp>
4064 : T_S2op_2 <mnemonic, 0b1000, DoubleRegs, IntRegs, MajOp, MinOp, 0, 0>;
4067 class T_S2op_2_id <string mnemonic, bits<3> MajOp, bits<3> MinOp>
4068 : T_S2op_2 <mnemonic, 0b1000, IntRegs, DoubleRegs, MajOp, MinOp, 0, 0>;
4071 class T_S2op_2_ii <string mnemonic, bits<3> MajOp, bits<3> MinOp,
4073 : T_S2op_2 <mnemonic, 0b1100, IntRegs, IntRegs, MajOp, MinOp,
4076 class T_S2op_shift <string mnemonic, bits<3> MajOp, bits<3> MinOp, SDNode OpNd>
4077 : T_S2op_2_ii <mnemonic, MajOp, MinOp, 0, 0,
4540 class LOOP_iBase<string mnemonic, Operand brOp, bit mustExtend = 0>
4542 #mnemonic#"($offset, #$src2)",
4550 let Inst{21} = !if (!eq(mnemonic, "loop0"), 0b0, 0b1);
4560 class LOOP_rBase<string mnemonic, Operand brOp, bit mustExtend = 0>
4562 #mnemonic#"($offset, $src2)",
4570 let Inst{21} = !if (!eq(mnemonic, "loop0"), 0b0, 0b1);
4576 multiclass LOOP_ri<string mnemonic> {
4577 def i : LOOP_iBase<mnemonic, brtarget>;
4578 def r : LOOP_rBase<mnemonic, brtarget>;
4581 def iext: LOOP_iBase<mnemonic, brtargetExt, 1>;
4582 def rext: LOOP_rBase<mnemonic, brtargetExt, 1>;
4647 multiclass SPLOOP_ri<string mnemonic, bits<2> op> {
4648 def i : SPLOOP_iBase<mnemonic, op>;
4649 def r : SPLOOP_rBase<mnemonic, op>;
5328 class T_S3op_1 <string mnemonic, RegisterClass RC, bits<2> MajOp, bits<3> MinOp,
5332 "$dst = "#mnemonic#"($src1, $src2)"#!if(isRnd, ":rnd", "")
5350 class T_S3op_64 <string mnemonic, bits<2> MajOp, bits<3> MinOp, bit SwapOps,
5352 : T_S3op_1 <mnemonic, DoubleRegs, MajOp, MinOp, SwapOps,
5368 class T_S3op_2 <string mnemonic, bits<3> MajOp, bit SwapOps>
5371 "$Rdd = "#mnemonic#"($Rss, $Rtt, $Pu)",
5397 class T_S3op_3 <string mnemonic, RegisterClass RC, bits<2> MajOp,
5401 "$dst = "#mnemonic#"($src1, $src2)"#!if(isSat, ":sat", ""),
5418 class T_S3op_shift32 <string mnemonic, SDNode OpNode, bits<2> MinOp>
5419 : T_S3op_3 <mnemonic, IntRegs, 0b01, MinOp, 0,
5424 class T_S3op_shift32_Sat <string mnemonic, bits<2> MinOp>
5425 : T_S3op_3 <mnemonic, IntRegs, 0b00, MinOp, 1, []>;
5428 class T_S3op_shift64 <string mnemonic, SDNode OpNode, bits<2> MinOp>
5429 : T_S3op_3 <mnemonic, DoubleRegs, 0b10, MinOp, 0,
5434 class T_S3op_shiftVect <string mnemonic, bits<2> MajOp, bits<2> MinOp>
5435 : T_S3op_3 <mnemonic, DoubleRegs, MajOp, MinOp, 0, []>;
5490 class T_S3op_7 <string mnemonic, bit MajOp >
5493 "$Rdd = "#mnemonic#"($Rss, $Rtt, #$u3)" ,
5517 class T_S3op_insert <string mnemonic, RegisterClass RC>
5520 "$dst = "#mnemonic#"($src2, $src3)" ,
5617 class T_S3op_extract <string mnemonic, bits<2> MinOp>
5619 "$Rd = "#mnemonic#"($Rs, $Rtt)",
5635 class T_S2op_extract <string mnemonic, bits<4> RegTyBits,
5638 "$dst = "#mnemonic#"($src1, #$src2, #$src3)",
5649 !if (!eq(mnemonic, "extractu"), 0, 1));
5750 class tableidx_goodsyntax <string mnemonic>
5753 "$Rx = "#mnemonic#"($Rs, #$u4, #$u5)",