Lines Matching refs:mnemonic

622 /// 1. Concatenates together the instruction mnemonic with the appropriate
629 string mnemonic, string args, list<dag> pattern>
633 !strconcat(mnemonic, "{", typeinfo.InstrSuffix, "}\t", args), pattern> {
641 class BinOpRR<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
645 mnemonic, "{$src2, $src1|$src1, $src2}", pattern>,
650 class BinOpRR_F<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
652 : BinOpRR<opcode, mnemonic, typeinfo, (outs), WriteALU,
658 class BinOpRR_RF<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
660 : BinOpRR<opcode, mnemonic, typeinfo, (outs typeinfo.RegClass:$dst), WriteALU,
666 class BinOpRR_RFF<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
668 : BinOpRR<opcode, mnemonic, typeinfo, (outs typeinfo.RegClass:$dst), WriteADC,
674 class BinOpRR_Rev<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
679 mnemonic, "{$src2, $dst|$dst, $src2}", []>,
688 class BinOpRR_RFF_Rev<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo>
689 : BinOpRR_Rev<opcode, mnemonic, typeinfo, WriteADC>;
692 class BinOpRR_F_Rev<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo>
695 mnemonic, "{$src2, $src1|$src1, $src2}", []>,
704 class BinOpRM<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
708 mnemonic, "{$src2, $src1|$src1, $src2}", pattern>,
713 class BinOpRM_ImplicitUse<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
717 mnemonic, "{$src2, $src1|$src1, $src2}", pattern>,
725 class BinOpRM_F<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
727 : BinOpRM<opcode, mnemonic, typeinfo, (outs), WriteALU,
732 class BinOpRM_RF<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
734 : BinOpRM<opcode, mnemonic, typeinfo, (outs typeinfo.RegClass:$dst), WriteALU,
739 class BinOpRM_RFF<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
741 : BinOpRM_ImplicitUse<opcode, mnemonic, typeinfo, (outs typeinfo.RegClass:$dst), WriteADC,
747 class BinOpRI<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
751 mnemonic, "{$src2, $src1|$src1, $src2}", pattern>,
757 class BinOpRI_F<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
759 : BinOpRI<opcode, mnemonic, typeinfo, f, (outs), WriteALU,
764 class BinOpRI_RF<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
766 : BinOpRI<opcode, mnemonic, typeinfo, f, (outs typeinfo.RegClass:$dst), WriteALU,
770 class BinOpRI_RFF<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
772 : BinOpRI<opcode, mnemonic, typeinfo, f, (outs typeinfo.RegClass:$dst), WriteADC,
778 class BinOpRI8<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
782 mnemonic, "{$src2, $src1|$src1, $src2}", pattern>,
788 class BinOpRI8_F<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
790 : BinOpRI8<opcode, mnemonic, typeinfo, f, (outs), WriteALU,
795 class BinOpRI8_RF<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
797 : BinOpRI8<opcode, mnemonic, typeinfo, f, (outs typeinfo.RegClass:$dst), WriteALU,
802 class BinOpRI8_RFF<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
804 : BinOpRI8<opcode, mnemonic, typeinfo, f, (outs typeinfo.RegClass:$dst), WriteADC,
810 class BinOpMR<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
814 mnemonic, "{$src, $dst|$dst, $src}", pattern>;
817 class BinOpMR_RMW<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
819 : BinOpMR<opcode, mnemonic, typeinfo,
828 class BinOpMR_RMW_FF<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
830 : BinOpMR<opcode, mnemonic, typeinfo,
841 class BinOpMR_F<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
843 : BinOpMR<opcode, mnemonic, typeinfo,
850 class BinOpMI<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
854 mnemonic, "{$src, $dst|$dst, $src}", pattern> {
859 class BinOpMI_RMW<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
861 : BinOpMI<opcode, mnemonic, typeinfo, f,
866 class BinOpMI_RMW_FF<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
868 : BinOpMI<opcode, mnemonic, typeinfo, f,
874 class BinOpMI_F<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
876 : BinOpMI<opcode, mnemonic, typeinfo, f,
882 class BinOpMI8<string mnemonic, X86TypeInfo typeinfo,
886 mnemonic, "{$src, $dst|$dst, $src}", pattern> {
891 class BinOpMI8_RMW<string mnemonic, X86TypeInfo typeinfo,
893 : BinOpMI8<mnemonic, typeinfo, f,
899 class BinOpMI8_RMW_FF<string mnemonic, X86TypeInfo typeinfo,
901 : BinOpMI8<mnemonic, typeinfo, f,
907 class BinOpMI8_F<string mnemonic, X86TypeInfo typeinfo,
909 : BinOpMI8<mnemonic, typeinfo, f,
915 class BinOpAI<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
919 mnemonic, operands, []>, Sched<[sched]> {
928 class BinOpAI_RFF<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
930 : BinOpAI<opcode, mnemonic, typeinfo, areg, operands, WriteADC> {
935 class BinOpAI_F<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
937 : BinOpAI<opcode, mnemonic, typeinfo, areg, operands> {
947 string mnemonic, Format RegMRM, Format MemMRM,
955 def NAME#8rr : BinOpRR_RF<BaseOpc, mnemonic, Xi8 , opnodeflag>;
956 def NAME#16rr : BinOpRR_RF<BaseOpc, mnemonic, Xi16, opnodeflag>;
957 def NAME#32rr : BinOpRR_RF<BaseOpc, mnemonic, Xi32, opnodeflag>;
958 def NAME#64rr : BinOpRR_RF<BaseOpc, mnemonic, Xi64, opnodeflag>;
962 def NAME#8rr_REV : BinOpRR_Rev<BaseOpc2, mnemonic, Xi8>, FoldGenData<NAME#8rr>;
963 def NAME#16rr_REV : BinOpRR_Rev<BaseOpc2, mnemonic, Xi16>, FoldGenData<NAME#16rr>;
964 def NAME#32rr_REV : BinOpRR_Rev<BaseOpc2, mnemonic, Xi32>, FoldGenData<NAME#32rr>;
965 def NAME#64rr_REV : BinOpRR_Rev<BaseOpc2, mnemonic, Xi64>, FoldGenData<NAME#64rr>;
967 def NAME#8rm : BinOpRM_RF<BaseOpc2, mnemonic, Xi8 , opnodeflag>;
968 def NAME#16rm : BinOpRM_RF<BaseOpc2, mnemonic, Xi16, opnodeflag>;
969 def NAME#32rm : BinOpRM_RF<BaseOpc2, mnemonic, Xi32, opnodeflag>;
970 def NAME#64rm : BinOpRM_RF<BaseOpc2, mnemonic, Xi64, opnodeflag>;
973 def NAME#8ri : BinOpRI_RF<0x80, mnemonic, Xi8 , opnodeflag, RegMRM>;
977 def NAME#16ri8 : BinOpRI8_RF<0x82, mnemonic, Xi16, opnodeflag, RegMRM>;
978 def NAME#32ri8 : BinOpRI8_RF<0x82, mnemonic, Xi32, opnodeflag, RegMRM>;
979 def NAME#64ri8 : BinOpRI8_RF<0x82, mnemonic, Xi64, opnodeflag, RegMRM>;
981 def NAME#16ri : BinOpRI_RF<0x80, mnemonic, Xi16, opnodeflag, RegMRM>;
982 def NAME#32ri : BinOpRI_RF<0x80, mnemonic, Xi32, opnodeflag, RegMRM>;
983 def NAME#64ri32: BinOpRI_RF<0x80, mnemonic, Xi64, opnodeflag, RegMRM>;
988 def NAME#8mr : BinOpMR_RMW<BaseOpc, mnemonic, Xi8 , opnode>;
989 def NAME#16mr : BinOpMR_RMW<BaseOpc, mnemonic, Xi16, opnode>;
990 def NAME#32mr : BinOpMR_RMW<BaseOpc, mnemonic, Xi32, opnode>;
991 def NAME#64mr : BinOpMR_RMW<BaseOpc, mnemonic, Xi64, opnode>;
996 def NAME#16mi8 : BinOpMI8_RMW<mnemonic, Xi16, opnode, MemMRM>;
997 def NAME#32mi8 : BinOpMI8_RMW<mnemonic, Xi32, opnode, MemMRM>;
999 def NAME#64mi8 : BinOpMI8_RMW<mnemonic, Xi64, opnode, MemMRM>;
1001 def NAME#8mi : BinOpMI_RMW<0x80, mnemonic, Xi8 , opnode, MemMRM>;
1002 def NAME#16mi : BinOpMI_RMW<0x80, mnemonic, Xi16, opnode, MemMRM>;
1003 def NAME#32mi : BinOpMI_RMW<0x80, mnemonic, Xi32, opnode, MemMRM>;
1005 def NAME#64mi32 : BinOpMI_RMW<0x80, mnemonic, Xi64, opnode, MemMRM>;
1012 def NAME#8ri8 : BinOpRI8_RF<0x82, mnemonic, Xi8, null_frag, RegMRM>;
1014 def NAME#8mi8 : BinOpMI8_RMW<mnemonic, Xi8, null_frag, MemMRM>;
1018 def NAME#8i8 : BinOpAI<BaseOpc4, mnemonic, Xi8 , AL,
1020 def NAME#16i16 : BinOpAI<BaseOpc4, mnemonic, Xi16, AX,
1022 def NAME#32i32 : BinOpAI<BaseOpc4, mnemonic, Xi32, EAX,
1024 def NAME#64i32 : BinOpAI<BaseOpc4, mnemonic, Xi64, RAX,
1035 string mnemonic, Format RegMRM, Format MemMRM,
1041 def NAME#8rr : BinOpRR_RFF<BaseOpc, mnemonic, Xi8 , opnode>;
1043 def NAME#16rr : BinOpRR_RFF<BaseOpc, mnemonic, Xi16, opnode>;
1044 def NAME#32rr : BinOpRR_RFF<BaseOpc, mnemonic, Xi32, opnode>;
1045 def NAME#64rr : BinOpRR_RFF<BaseOpc, mnemonic, Xi64, opnode>;
1049 def NAME#8rr_REV : BinOpRR_RFF_Rev<BaseOpc2, mnemonic, Xi8>, FoldGenData<NAME#8rr>;
1050 def NAME#16rr_REV : BinOpRR_RFF_Rev<BaseOpc2, mnemonic, Xi16>, FoldGenData<NAME#16rr>;
1051 def NAME#32rr_REV : BinOpRR_RFF_Rev<BaseOpc2, mnemonic, Xi32>, FoldGenData<NAME#32rr>;
1052 def NAME#64rr_REV : BinOpRR_RFF_Rev<BaseOpc2, mnemonic, Xi64>, FoldGenData<NAME#64rr>;
1054 def NAME#8rm : BinOpRM_RFF<BaseOpc2, mnemonic, Xi8 , opnode>;
1055 def NAME#16rm : BinOpRM_RFF<BaseOpc2, mnemonic, Xi16, opnode>;
1056 def NAME#32rm : BinOpRM_RFF<BaseOpc2, mnemonic, Xi32, opnode>;
1057 def NAME#64rm : BinOpRM_RFF<BaseOpc2, mnemonic, Xi64, opnode>;
1059 def NAME#8ri : BinOpRI_RFF<0x80, mnemonic, Xi8 , opnode, RegMRM>;
1064 def NAME#16ri8 : BinOpRI8_RFF<0x82, mnemonic, Xi16, opnode, RegMRM>;
1065 def NAME#32ri8 : BinOpRI8_RFF<0x82, mnemonic, Xi32, opnode, RegMRM>;
1066 def NAME#64ri8 : BinOpRI8_RFF<0x82, mnemonic, Xi64, opnode, RegMRM>;
1068 def NAME#16ri : BinOpRI_RFF<0x80, mnemonic, Xi16, opnode, RegMRM>;
1069 def NAME#32ri : BinOpRI_RFF<0x80, mnemonic, Xi32, opnode, RegMRM>;
1070 def NAME#64ri32: BinOpRI_RFF<0x80, mnemonic, Xi64, opnode, RegMRM>;
1074 def NAME#8mr : BinOpMR_RMW_FF<BaseOpc, mnemonic, Xi8 , opnode>;
1075 def NAME#16mr : BinOpMR_RMW_FF<BaseOpc, mnemonic, Xi16, opnode>;
1076 def NAME#32mr : BinOpMR_RMW_FF<BaseOpc, mnemonic, Xi32, opnode>;
1077 def NAME#64mr : BinOpMR_RMW_FF<BaseOpc, mnemonic, Xi64, opnode>;
1081 def NAME#16mi8 : BinOpMI8_RMW_FF<mnemonic, Xi16, opnode, MemMRM>;
1082 def NAME#32mi8 : BinOpMI8_RMW_FF<mnemonic, Xi32, opnode, MemMRM>;
1084 def NAME#64mi8 : BinOpMI8_RMW_FF<mnemonic, Xi64, opnode, MemMRM>;
1086 def NAME#8mi : BinOpMI_RMW_FF<0x80, mnemonic, Xi8 , opnode, MemMRM>;
1087 def NAME#16mi : BinOpMI_RMW_FF<0x80, mnemonic, Xi16, opnode, MemMRM>;
1088 def NAME#32mi : BinOpMI_RMW_FF<0x80, mnemonic, Xi32, opnode, MemMRM>;
1090 def NAME#64mi32 : BinOpMI_RMW_FF<0x80, mnemonic, Xi64, opnode, MemMRM>;
1097 def NAME#8ri8 : BinOpRI8_RFF<0x82, mnemonic, Xi8, null_frag, RegMRM>;
1099 def NAME#8mi8 : BinOpMI8_RMW_FF<mnemonic, Xi8, null_frag, MemMRM>;
1103 def NAME#8i8 : BinOpAI_RFF<BaseOpc4, mnemonic, Xi8 , AL,
1105 def NAME#16i16 : BinOpAI_RFF<BaseOpc4, mnemonic, Xi16, AX,
1107 def NAME#32i32 : BinOpAI_RFF<BaseOpc4, mnemonic, Xi32, EAX,
1109 def NAME#64i32 : BinOpAI_RFF<BaseOpc4, mnemonic, Xi64, RAX,
1118 string mnemonic, Format RegMRM, Format MemMRM,
1123 def NAME#8rr : BinOpRR_F<BaseOpc, mnemonic, Xi8 , opnode>;
1125 def NAME#16rr : BinOpRR_F<BaseOpc, mnemonic, Xi16, opnode>;
1126 def NAME#32rr : BinOpRR_F<BaseOpc, mnemonic, Xi32, opnode>;
1127 def NAME#64rr : BinOpRR_F<BaseOpc, mnemonic, Xi64, opnode>;
1131 def NAME#8rr_REV : BinOpRR_F_Rev<BaseOpc2, mnemonic, Xi8>, FoldGenData<NAME#8rr>;
1132 def NAME#16rr_REV : BinOpRR_F_Rev<BaseOpc2, mnemonic, Xi16>, FoldGenData<NAME#16rr>;
1133 def NAME#32rr_REV : BinOpRR_F_Rev<BaseOpc2, mnemonic, Xi32>, FoldGenData<NAME#32rr>;
1134 def NAME#64rr_REV : BinOpRR_F_Rev<BaseOpc2, mnemonic, Xi64>, FoldGenData<NAME#64rr>;
1136 def NAME#8rm : BinOpRM_F<BaseOpc2, mnemonic, Xi8 , opnode>;
1137 def NAME#16rm : BinOpRM_F<BaseOpc2, mnemonic, Xi16, opnode>;
1138 def NAME#32rm : BinOpRM_F<BaseOpc2, mnemonic, Xi32, opnode>;
1139 def NAME#64rm : BinOpRM_F<BaseOpc2, mnemonic, Xi64, opnode>;
1141 def NAME#8ri : BinOpRI_F<0x80, mnemonic, Xi8 , opnode, RegMRM>;
1146 def NAME#16ri8 : BinOpRI8_F<0x82, mnemonic, Xi16, opnode, RegMRM>;
1147 def NAME#32ri8 : BinOpRI8_F<0x82, mnemonic, Xi32, opnode, RegMRM>;
1148 def NAME#64ri8 : BinOpRI8_F<0x82, mnemonic, Xi64, opnode, RegMRM>;
1150 def NAME#16ri : BinOpRI_F<0x80, mnemonic, Xi16, opnode, RegMRM>;
1151 def NAME#32ri : BinOpRI_F<0x80, mnemonic, Xi32, opnode, RegMRM>;
1152 def NAME#64ri32: BinOpRI_F<0x80, mnemonic, Xi64, opnode, RegMRM>;
1155 def NAME#8mr : BinOpMR_F<BaseOpc, mnemonic, Xi8 , opnode>;
1156 def NAME#16mr : BinOpMR_F<BaseOpc, mnemonic, Xi16, opnode>;
1157 def NAME#32mr : BinOpMR_F<BaseOpc, mnemonic, Xi32, opnode>;
1158 def NAME#64mr : BinOpMR_F<BaseOpc, mnemonic, Xi64, opnode>;
1162 def NAME#16mi8 : BinOpMI8_F<mnemonic, Xi16, opnode, MemMRM>;
1163 def NAME#32mi8 : BinOpMI8_F<mnemonic, Xi32, opnode, MemMRM>;
1165 def NAME#64mi8 : BinOpMI8_F<mnemonic, Xi64, opnode, MemMRM>;
1167 def NAME#8mi : BinOpMI_F<0x80, mnemonic, Xi8 , opnode, MemMRM>;
1168 def NAME#16mi : BinOpMI_F<0x80, mnemonic, Xi16, opnode, MemMRM>;
1169 def NAME#32mi : BinOpMI_F<0x80, mnemonic, Xi32, opnode, MemMRM>;
1171 def NAME#64mi32 : BinOpMI_F<0x80, mnemonic, Xi64, opnode, MemMRM>;
1177 def NAME#8ri8 : BinOpRI8_F<0x82, mnemonic, Xi8, null_frag, RegMRM>;
1179 def NAME#8mi8 : BinOpMI8_F<mnemonic, Xi8, null_frag, MemMRM>;
1183 def NAME#8i8 : BinOpAI_F<BaseOpc4, mnemonic, Xi8 , AL,
1185 def NAME#16i16 : BinOpAI_F<BaseOpc4, mnemonic, Xi16, AX,
1187 def NAME#32i32 : BinOpAI_F<BaseOpc4, mnemonic, Xi32, EAX,
1189 def NAME#64i32 : BinOpAI_F<BaseOpc4, mnemonic, Xi64, RAX,
1462 multiclass bmi_andn<string mnemonic, RegisterClass RC, X86MemOperand x86memop,
1465 !strconcat(mnemonic, "\t{$src2, $src1, $dst|$dst, $src1, $src2}"),
1469 !strconcat(mnemonic, "\t{$src2, $src1, $dst|$dst, $src1, $src2}"),
1495 multiclass bmi_mulx<string mnemonic, RegisterClass RC, X86MemOperand x86memop,
1499 !strconcat(mnemonic, "\t{$src, $dst2, $dst1|$dst1, $dst2, $src}"),
1504 !strconcat(mnemonic, "\t{$src, $dst2, $dst1|$dst1, $dst2, $src}"),