Lines Matching refs:mnemonic
633 /// 1. Concatenates together the instruction mnemonic with the appropriate
640 string mnemonic, string args, list<dag> pattern,
645 !strconcat(mnemonic, "{", typeinfo.InstrSuffix, "}\t", args), pattern,
654 class BinOpRR<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
659 mnemonic, "{$src2, $src1|$src1, $src2}", pattern, itin>,
664 class BinOpRR_F<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
666 : BinOpRR<opcode, mnemonic, typeinfo, (outs),
673 class BinOpRR_RF<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
675 : BinOpRR<opcode, mnemonic, typeinfo, (outs typeinfo.RegClass:$dst),
682 class BinOpRR_RFF<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
684 : BinOpRR<opcode, mnemonic, typeinfo, (outs typeinfo.RegClass:$dst),
690 class BinOpRR_Rev<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
695 mnemonic, "{$src2, $dst|$dst, $src2}", [], itin>,
704 class BinOpRR_RFF_Rev<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo>
705 : BinOpRR_Rev<opcode, mnemonic, typeinfo, IIC_BIN_CARRY_NONMEM>;
708 class BinOpRR_F_Rev<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo>
711 mnemonic, "{$src2, $src1|$src1, $src2}", [], IIC_BIN_NONMEM>,
720 class BinOpRM<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
725 mnemonic, "{$src2, $src1|$src1, $src2}", pattern, itin>,
729 class BinOpRM_R<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
731 : BinOpRM<opcode, mnemonic, typeinfo, (outs typeinfo.RegClass:$dst),
736 class BinOpRM_F<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
738 : BinOpRM<opcode, mnemonic, typeinfo, (outs),
743 class BinOpRM_RF<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
745 : BinOpRM<opcode, mnemonic, typeinfo, (outs typeinfo.RegClass:$dst),
750 class BinOpRM_RFF<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
752 : BinOpRM<opcode, mnemonic, typeinfo, (outs typeinfo.RegClass:$dst),
758 class BinOpRI<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
763 mnemonic, "{$src2, $src1|$src1, $src2}", pattern, itin>,
769 class BinOpRI_F<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
771 : BinOpRI<opcode, mnemonic, typeinfo, f, (outs),
776 class BinOpRI_RF<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
778 : BinOpRI<opcode, mnemonic, typeinfo, f, (outs typeinfo.RegClass:$dst),
782 class BinOpRI_RFF<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
784 : BinOpRI<opcode, mnemonic, typeinfo, f, (outs typeinfo.RegClass:$dst),
790 class BinOpRI8<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
795 mnemonic, "{$src2, $src1|$src1, $src2}", pattern, itin>,
801 class BinOpRI8_F<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
803 : BinOpRI8<opcode, mnemonic, typeinfo, f, (outs),
808 class BinOpRI8_RF<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
810 : BinOpRI8<opcode, mnemonic, typeinfo, f, (outs typeinfo.RegClass:$dst),
815 class BinOpRI8_RFF<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
817 : BinOpRI8<opcode, mnemonic, typeinfo, f, (outs typeinfo.RegClass:$dst),
823 class BinOpMR<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
827 mnemonic, "{$src, $dst|$dst, $src}", pattern, itin>,
831 class BinOpMR_RMW<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
833 : BinOpMR<opcode, mnemonic, typeinfo,
838 class BinOpMR_RMW_FF<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
840 : BinOpMR<opcode, mnemonic, typeinfo,
846 class BinOpMR_F<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
848 : BinOpMR<opcode, mnemonic, typeinfo,
852 class BinOpMI<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
857 mnemonic, "{$src, $dst|$dst, $src}", pattern, itin>,
863 class BinOpMI_RMW<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
865 : BinOpMI<opcode, mnemonic, typeinfo, f,
870 class BinOpMI_RMW_FF<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
872 : BinOpMI<opcode, mnemonic, typeinfo, f,
878 class BinOpMI_F<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
880 : BinOpMI<opcode, mnemonic, typeinfo, f,
885 class BinOpMI8<string mnemonic, X86TypeInfo typeinfo,
890 mnemonic, "{$src, $dst|$dst, $src}", pattern, itin>,
896 class BinOpMI8_RMW<string mnemonic, X86TypeInfo typeinfo,
898 : BinOpMI8<mnemonic, typeinfo, f,
904 class BinOpMI8_RMW_FF<string mnemonic, X86TypeInfo typeinfo,
906 : BinOpMI8<mnemonic, typeinfo, f,
912 class BinOpMI8_F<string mnemonic, X86TypeInfo typeinfo,
914 : BinOpMI8<mnemonic, typeinfo, f,
919 class BinOpAI<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
924 mnemonic, operands, [], itin>, Sched<[WriteALU]> {
933 class BinOpAI_FF<bits<8> opcode, string mnemonic, X86TypeInfo typeinfo,
935 : BinOpAI<opcode, mnemonic, typeinfo, areg, operands,
946 string mnemonic, Format RegMRM, Format MemMRM,
952 def NAME#8rr : BinOpRR_RF<BaseOpc, mnemonic, Xi8 , opnodeflag>;
954 def NAME#16rr : BinOpRR_RF<BaseOpc, mnemonic, Xi16, opnodeflag>;
955 def NAME#32rr : BinOpRR_RF<BaseOpc, mnemonic, Xi32, opnodeflag>;
956 def NAME#64rr : BinOpRR_RF<BaseOpc, mnemonic, Xi64, opnodeflag>;
960 def NAME#8rr_REV : BinOpRR_Rev<BaseOpc2, mnemonic, Xi8>;
961 def NAME#16rr_REV : BinOpRR_Rev<BaseOpc2, mnemonic, Xi16>;
962 def NAME#32rr_REV : BinOpRR_Rev<BaseOpc2, mnemonic, Xi32>;
963 def NAME#64rr_REV : BinOpRR_Rev<BaseOpc2, mnemonic, Xi64>;
965 def NAME#8rm : BinOpRM_RF<BaseOpc2, mnemonic, Xi8 , opnodeflag>;
966 def NAME#16rm : BinOpRM_RF<BaseOpc2, mnemonic, Xi16, opnodeflag>;
967 def NAME#32rm : BinOpRM_RF<BaseOpc2, mnemonic, Xi32, opnodeflag>;
968 def NAME#64rm : BinOpRM_RF<BaseOpc2, mnemonic, Xi64, opnodeflag>;
970 def NAME#8ri : BinOpRI_RF<0x80, mnemonic, Xi8 , opnodeflag, RegMRM>;
975 def NAME#16ri8 : BinOpRI8_RF<0x82, mnemonic, Xi16, opnodeflag, RegMRM>;
976 def NAME#32ri8 : BinOpRI8_RF<0x82, mnemonic, Xi32, opnodeflag, RegMRM>;
977 def NAME#64ri8 : BinOpRI8_RF<0x82, mnemonic, Xi64, opnodeflag, RegMRM>;
979 def NAME#16ri : BinOpRI_RF<0x80, mnemonic, Xi16, opnodeflag, RegMRM>;
980 def NAME#32ri : BinOpRI_RF<0x80, mnemonic, Xi32, opnodeflag, RegMRM>;
981 def NAME#64ri32: BinOpRI_RF<0x80, mnemonic, Xi64, opnodeflag, RegMRM>;
985 def NAME#8mr : BinOpMR_RMW<BaseOpc, mnemonic, Xi8 , opnode>;
986 def NAME#16mr : BinOpMR_RMW<BaseOpc, mnemonic, Xi16, opnode>;
987 def NAME#32mr : BinOpMR_RMW<BaseOpc, mnemonic, Xi32, opnode>;
988 def NAME#64mr : BinOpMR_RMW<BaseOpc, mnemonic, Xi64, opnode>;
992 def NAME#16mi8 : BinOpMI8_RMW<mnemonic, Xi16, opnode, MemMRM>;
993 def NAME#32mi8 : BinOpMI8_RMW<mnemonic, Xi32, opnode, MemMRM>;
994 def NAME#64mi8 : BinOpMI8_RMW<mnemonic, Xi64, opnode, MemMRM>;
996 def NAME#8mi : BinOpMI_RMW<0x80, mnemonic, Xi8 , opnode, MemMRM>;
997 def NAME#16mi : BinOpMI_RMW<0x80, mnemonic, Xi16, opnode, MemMRM>;
998 def NAME#32mi : BinOpMI_RMW<0x80, mnemonic, Xi32, opnode, MemMRM>;
999 def NAME#64mi32 : BinOpMI_RMW<0x80, mnemonic, Xi64, opnode, MemMRM>;
1006 def NAME#8ri8 : BinOpRI8_RF<0x82, mnemonic, Xi8, null_frag, RegMRM>;
1008 def NAME#8mi8 : BinOpMI8_RMW<mnemonic, Xi8, null_frag, MemMRM>;
1012 def NAME#8i8 : BinOpAI<BaseOpc4, mnemonic, Xi8 , AL,
1014 def NAME#16i16 : BinOpAI<BaseOpc4, mnemonic, Xi16, AX,
1016 def NAME#32i32 : BinOpAI<BaseOpc4, mnemonic, Xi32, EAX,
1018 def NAME#64i32 : BinOpAI<BaseOpc4, mnemonic, Xi64, RAX,
1029 string mnemonic, Format RegMRM, Format MemMRM,
1035 def NAME#8rr : BinOpRR_RFF<BaseOpc, mnemonic, Xi8 , opnode>;
1037 def NAME#16rr : BinOpRR_RFF<BaseOpc, mnemonic, Xi16, opnode>;
1038 def NAME#32rr : BinOpRR_RFF<BaseOpc, mnemonic, Xi32, opnode>;
1039 def NAME#64rr : BinOpRR_RFF<BaseOpc, mnemonic, Xi64, opnode>;
1043 def NAME#8rr_REV : BinOpRR_RFF_Rev<BaseOpc2, mnemonic, Xi8>;
1044 def NAME#16rr_REV : BinOpRR_RFF_Rev<BaseOpc2, mnemonic, Xi16>;
1045 def NAME#32rr_REV : BinOpRR_RFF_Rev<BaseOpc2, mnemonic, Xi32>;
1046 def NAME#64rr_REV : BinOpRR_RFF_Rev<BaseOpc2, mnemonic, Xi64>;
1048 def NAME#8rm : BinOpRM_RFF<BaseOpc2, mnemonic, Xi8 , opnode>;
1049 def NAME#16rm : BinOpRM_RFF<BaseOpc2, mnemonic, Xi16, opnode>;
1050 def NAME#32rm : BinOpRM_RFF<BaseOpc2, mnemonic, Xi32, opnode>;
1051 def NAME#64rm : BinOpRM_RFF<BaseOpc2, mnemonic, Xi64, opnode>;
1053 def NAME#8ri : BinOpRI_RFF<0x80, mnemonic, Xi8 , opnode, RegMRM>;
1058 def NAME#16ri8 : BinOpRI8_RFF<0x82, mnemonic, Xi16, opnode, RegMRM>;
1059 def NAME#32ri8 : BinOpRI8_RFF<0x82, mnemonic, Xi32, opnode, RegMRM>;
1060 def NAME#64ri8 : BinOpRI8_RFF<0x82, mnemonic, Xi64, opnode, RegMRM>;
1062 def NAME#16ri : BinOpRI_RFF<0x80, mnemonic, Xi16, opnode, RegMRM>;
1063 def NAME#32ri : BinOpRI_RFF<0x80, mnemonic, Xi32, opnode, RegMRM>;
1064 def NAME#64ri32: BinOpRI_RFF<0x80, mnemonic, Xi64, opnode, RegMRM>;
1068 def NAME#8mr : BinOpMR_RMW_FF<BaseOpc, mnemonic, Xi8 , opnode>;
1069 def NAME#16mr : BinOpMR_RMW_FF<BaseOpc, mnemonic, Xi16, opnode>;
1070 def NAME#32mr : BinOpMR_RMW_FF<BaseOpc, mnemonic, Xi32, opnode>;
1071 def NAME#64mr : BinOpMR_RMW_FF<BaseOpc, mnemonic, Xi64, opnode>;
1075 def NAME#16mi8 : BinOpMI8_RMW_FF<mnemonic, Xi16, opnode, MemMRM>;
1076 def NAME#32mi8 : BinOpMI8_RMW_FF<mnemonic, Xi32, opnode, MemMRM>;
1077 def NAME#64mi8 : BinOpMI8_RMW_FF<mnemonic, Xi64, opnode, MemMRM>;
1079 def NAME#8mi : BinOpMI_RMW_FF<0x80, mnemonic, Xi8 , opnode, MemMRM>;
1080 def NAME#16mi : BinOpMI_RMW_FF<0x80, mnemonic, Xi16, opnode, MemMRM>;
1081 def NAME#32mi : BinOpMI_RMW_FF<0x80, mnemonic, Xi32, opnode, MemMRM>;
1082 def NAME#64mi32 : BinOpMI_RMW_FF<0x80, mnemonic, Xi64, opnode, MemMRM>;
1089 def NAME#8ri8 : BinOpRI8_RFF<0x82, mnemonic, Xi8, null_frag, RegMRM>;
1091 def NAME#8mi8 : BinOpMI8_RMW_FF<mnemonic, Xi8, null_frag, MemMRM>;
1095 def NAME#8i8 : BinOpAI_FF<BaseOpc4, mnemonic, Xi8 , AL,
1097 def NAME#16i16 : BinOpAI_FF<BaseOpc4, mnemonic, Xi16, AX,
1099 def NAME#32i32 : BinOpAI_FF<BaseOpc4, mnemonic, Xi32, EAX,
1101 def NAME#64i32 : BinOpAI_FF<BaseOpc4, mnemonic, Xi64, RAX,
1110 string mnemonic, Format RegMRM, Format MemMRM,
1115 def NAME#8rr : BinOpRR_F<BaseOpc, mnemonic, Xi8 , opnode>;
1117 def NAME#16rr : BinOpRR_F<BaseOpc, mnemonic, Xi16, opnode>;
1118 def NAME#32rr : BinOpRR_F<BaseOpc, mnemonic, Xi32, opnode>;
1119 def NAME#64rr : BinOpRR_F<BaseOpc, mnemonic, Xi64, opnode>;
1123 def NAME#8rr_REV : BinOpRR_F_Rev<BaseOpc2, mnemonic, Xi8>;
1124 def NAME#16rr_REV : BinOpRR_F_Rev<BaseOpc2, mnemonic, Xi16>;
1125 def NAME#32rr_REV : BinOpRR_F_Rev<BaseOpc2, mnemonic, Xi32>;
1126 def NAME#64rr_REV : BinOpRR_F_Rev<BaseOpc2, mnemonic, Xi64>;
1128 def NAME#8rm : BinOpRM_F<BaseOpc2, mnemonic, Xi8 , opnode>;
1129 def NAME#16rm : BinOpRM_F<BaseOpc2, mnemonic, Xi16, opnode>;
1130 def NAME#32rm : BinOpRM_F<BaseOpc2, mnemonic, Xi32, opnode>;
1131 def NAME#64rm : BinOpRM_F<BaseOpc2, mnemonic, Xi64, opnode>;
1133 def NAME#8ri : BinOpRI_F<0x80, mnemonic, Xi8 , opnode, RegMRM>;
1138 def NAME#16ri8 : BinOpRI8_F<0x82, mnemonic, Xi16, opnode, RegMRM>;
1139 def NAME#32ri8 : BinOpRI8_F<0x82, mnemonic, Xi32, opnode, RegMRM>;
1140 def NAME#64ri8 : BinOpRI8_F<0x82, mnemonic, Xi64, opnode, RegMRM>;
1142 def NAME#16ri : BinOpRI_F<0x80, mnemonic, Xi16, opnode, RegMRM>;
1143 def NAME#32ri : BinOpRI_F<0x80, mnemonic, Xi32, opnode, RegMRM>;
1144 def NAME#64ri32: BinOpRI_F<0x80, mnemonic, Xi64, opnode, RegMRM>;
1147 def NAME#8mr : BinOpMR_F<BaseOpc, mnemonic, Xi8 , opnode>;
1148 def NAME#16mr : BinOpMR_F<BaseOpc, mnemonic, Xi16, opnode>;
1149 def NAME#32mr : BinOpMR_F<BaseOpc, mnemonic, Xi32, opnode>;
1150 def NAME#64mr : BinOpMR_F<BaseOpc, mnemonic, Xi64, opnode>;
1154 def NAME#16mi8 : BinOpMI8_F<mnemonic, Xi16, opnode, MemMRM>;
1155 def NAME#32mi8 : BinOpMI8_F<mnemonic, Xi32, opnode, MemMRM>;
1156 def NAME#64mi8 : BinOpMI8_F<mnemonic, Xi64, opnode, MemMRM>;
1158 def NAME#8mi : BinOpMI_F<0x80, mnemonic, Xi8 , opnode, MemMRM>;
1159 def NAME#16mi : BinOpMI_F<0x80, mnemonic, Xi16, opnode, MemMRM>;
1160 def NAME#32mi : BinOpMI_F<0x80, mnemonic, Xi32, opnode, MemMRM>;
1161 def NAME#64mi32 : BinOpMI_F<0x80, mnemonic, Xi64, opnode, MemMRM>;
1167 def NAME#8ri8 : BinOpRI8_F<0x82, mnemonic, Xi8, null_frag, RegMRM>;
1169 def NAME#8mi8 : BinOpMI8_F<mnemonic, Xi8, null_frag, MemMRM>;
1173 def NAME#8i8 : BinOpAI<BaseOpc4, mnemonic, Xi8 , AL,
1175 def NAME#16i16 : BinOpAI<BaseOpc4, mnemonic, Xi16, AX,
1177 def NAME#32i32 : BinOpAI<BaseOpc4, mnemonic, Xi32, EAX,
1179 def NAME#64i32 : BinOpAI<BaseOpc4, mnemonic, Xi64, RAX,
1262 multiclass bmi_andn<string mnemonic, RegisterClass RC, X86MemOperand x86memop,
1265 !strconcat(mnemonic, "\t{$src2, $src1, $dst|$dst, $src1, $src2}"),
1269 !strconcat(mnemonic, "\t{$src2, $src1, $dst|$dst, $src1, $src2}"),
1294 multiclass bmi_mulx<string mnemonic, RegisterClass RC, X86MemOperand x86memop> {
1298 !strconcat(mnemonic, "\t{$src, $dst2, $dst1|$dst1, $dst2, $src}"),
1303 !strconcat(mnemonic, "\t{$src, $dst2, $dst1|$dst1, $dst2, $src}"),