/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ |* *| |* X86 Mnemonic tables *| |* *| |* Automatically generated file, do not edit! *| |* *| \*===----------------------------------------------------------------------===*/ namespace llvm { namespace X86 { #ifdef GET_X86_MNEMONIC_TABLES_H #undef GET_X86_MNEMONIC_TABLES_H bool isPCMPISTRM(unsigned Opcode); bool isVALIGND(unsigned Opcode); bool isVFMULCPH(unsigned Opcode); bool isVPDPBSSD(unsigned Opcode); bool isVFIXUPIMMPS(unsigned Opcode); bool isVPMOVQ2M(unsigned Opcode); bool isLDTILECFG(unsigned Opcode); bool isFADD(unsigned Opcode); bool isVALIGNQ(unsigned Opcode); bool isAESENC128KL(unsigned Opcode); bool isVPMAXUB(unsigned Opcode); bool isFMULP(unsigned Opcode); bool isVPMAXUD(unsigned Opcode); bool isCMPCC(unsigned Opcode); bool isVSHUFI32X4(unsigned Opcode); bool isLOOPNE(unsigned Opcode); bool isVPMAXUQ(unsigned Opcode); bool isVCOMPRESSPD(unsigned Opcode); bool isVPMAXUW(unsigned Opcode); bool isVPMOVB2M(unsigned Opcode); bool isVANDPD(unsigned Opcode); bool isVCOMPRESSPS(unsigned Opcode); bool isVPDPBSUD(unsigned Opcode); bool isPFRCPIT1(unsigned Opcode); bool isPFRCPIT2(unsigned Opcode); bool isWRPKRU(unsigned Opcode); bool isVANDPS(unsigned Opcode); bool isWRUSSD(unsigned Opcode); bool isVMPTRLD(unsigned Opcode); bool isWRUSSQ(unsigned Opcode); bool isAESDECLAST(unsigned Opcode); bool isSYSCALL(unsigned Opcode); bool isVFIXUPIMMSD(unsigned Opcode); bool isVPRORD(unsigned Opcode); bool isTEST(unsigned Opcode); bool isSHA1MSG1(unsigned Opcode); bool isSHA1MSG2(unsigned Opcode); bool isVFMULCSH(unsigned Opcode); bool isMOVNTDQA(unsigned Opcode); bool isVFIXUPIMMSS(unsigned Opcode); bool isADOX(unsigned Opcode); bool isVPRORQ(unsigned Opcode); bool isVSCATTERPF1DPD(unsigned Opcode); bool isVPSRLDQ(unsigned Opcode); bool isVPMOVUSWB(unsigned Opcode); bool isVSCATTERPF1DPS(unsigned Opcode); bool isFICOMP(unsigned Opcode); bool isFBSTP(unsigned Opcode); bool isVPSHUFLW(unsigned Opcode); bool isVPSCATTERDD(unsigned Opcode); bool isFNINIT(unsigned Opcode); bool isMOVNTPD(unsigned Opcode); bool isUIRET(unsigned Opcode); bool isPINSRB(unsigned Opcode); bool isPINSRD(unsigned Opcode); bool isSHRD(unsigned Opcode); bool isVPSCATTERDQ(unsigned Opcode); bool isMOVNTPS(unsigned Opcode); bool isVGETEXPPD(unsigned Opcode); bool isVRANGEPD(unsigned Opcode); bool isPFRCP(unsigned Opcode); bool isVGETEXPPH(unsigned Opcode); bool isPINSRQ(unsigned Opcode); bool isVPROTB(unsigned Opcode); bool isVPROTD(unsigned Opcode); bool isSEAMCALL(unsigned Opcode); bool isPINSRW(unsigned Opcode); bool isSHRX(unsigned Opcode); bool isVGETEXPPS(unsigned Opcode); bool isVRANGEPS(unsigned Opcode); bool isPABSB(unsigned Opcode); bool isPABSD(unsigned Opcode); bool isVPROTQ(unsigned Opcode); bool isVPROTW(unsigned Opcode); bool isVCVTTPS2UDQ(unsigned Opcode); bool isFXRSTOR(unsigned Opcode); bool isVMOVDQU16(unsigned Opcode); bool isPABSW(unsigned Opcode); bool isCVTDQ2PD(unsigned Opcode); bool isCVTDQ2PS(unsigned Opcode); bool isXOR(unsigned Opcode); bool isINC(unsigned Opcode); bool isVMCALL(unsigned Opcode); bool isPACKSSDW(unsigned Opcode); bool isPSUBUSB(unsigned Opcode); bool isINT(unsigned Opcode); bool isMOVNTSD(unsigned Opcode); bool isVPMOVZXBD(unsigned Opcode); bool isVCVTUDQ2PD(unsigned Opcode); bool isVCVTUDQ2PH(unsigned Opcode); bool isVMOVDQU32(unsigned Opcode); bool isPSUBUSW(unsigned Opcode); bool isMOVNTSS(unsigned Opcode); bool isVGETEXPSD(unsigned Opcode); bool isVPMOVZXBQ(unsigned Opcode); bool isVGETEXPSH(unsigned Opcode); bool isVCVTNEEBF162PS(unsigned Opcode); bool isVRANGESD(unsigned Opcode); bool isVCVTUDQ2PS(unsigned Opcode); bool isVPMOVZXBW(unsigned Opcode); bool isVGETEXPSS(unsigned Opcode); bool isSHUFPD(unsigned Opcode); bool isVCVTTSS2SI(unsigned Opcode); bool isVINSERTF128(unsigned Opcode); bool isKANDNB(unsigned Opcode); bool isPADDSB(unsigned Opcode); bool isKANDND(unsigned Opcode); bool isVPCMPISTRI(unsigned Opcode); bool isRDPID(unsigned Opcode); bool isVPCMPISTRM(unsigned Opcode); bool isVRANGESS(unsigned Opcode); bool isSHUFPS(unsigned Opcode); bool isVPDPBSSDS(unsigned Opcode); bool isKANDNQ(unsigned Opcode); bool isKANDNW(unsigned Opcode); bool isPADDSW(unsigned Opcode); bool isVCVTTPD2UDQ(unsigned Opcode); bool isVANDNPD(unsigned Opcode); bool isXEND(unsigned Opcode); bool isVUNPCKHPD(unsigned Opcode); bool isPSRAD(unsigned Opcode); bool isVANDNPS(unsigned Opcode); bool isVPMOVZXDQ(unsigned Opcode); bool isVMPTRST(unsigned Opcode); bool isVUNPCKHPS(unsigned Opcode); bool isPSRAW(unsigned Opcode); bool isVPLZCNTD(unsigned Opcode); bool isWRMSRLIST(unsigned Opcode); bool isVPADDUSB(unsigned Opcode); bool isVMOVDQU64(unsigned Opcode); bool isSUBPD(unsigned Opcode); bool isMOVDDUP(unsigned Opcode); bool isVPLZCNTQ(unsigned Opcode); bool isSTAC(unsigned Opcode); bool isSUBPS(unsigned Opcode); bool isVPADDUSW(unsigned Opcode); bool isFCMOVNBE(unsigned Opcode); bool isSHA1RNDS4(unsigned Opcode); bool isPAUSE(unsigned Opcode); bool isSAHF(unsigned Opcode); bool isVREDUCEPD(unsigned Opcode); bool isVREDUCEPH(unsigned Opcode); bool isFXAM(unsigned Opcode); bool isLGDTD(unsigned Opcode); bool isPMULHRW(unsigned Opcode); bool isVREDUCEPS(unsigned Opcode); bool isRDPMC(unsigned Opcode); bool isVGATHERPF1QPD(unsigned Opcode); bool isLGDTW(unsigned Opcode); bool isVAESKEYGENASSIST(unsigned Opcode); bool isRDFSBASE(unsigned Opcode); bool isVGATHERPF1QPS(unsigned Opcode); bool isSUBSD(unsigned Opcode); bool isVCVTNEOBF162PS(unsigned Opcode); bool isAESENCWIDE128KL(unsigned Opcode); bool isFXCH(unsigned Opcode); bool isSUBSS(unsigned Opcode); bool isPANDN(unsigned Opcode); bool isVPERMT2B(unsigned Opcode); bool isLJMP(unsigned Opcode); bool isCMPPD(unsigned Opcode); bool isVPERMT2D(unsigned Opcode); bool isVPMADD52HUQ(unsigned Opcode); bool isVPERMT2Q(unsigned Opcode); bool isCMPPS(unsigned Opcode); bool isVCVTPH2W(unsigned Opcode); bool isVREDUCESD(unsigned Opcode); bool isVPERMT2W(unsigned Opcode); bool isWBNOINVD(unsigned Opcode); bool isVREDUCESH(unsigned Opcode); bool isTILEZERO(unsigned Opcode); bool isPMULHUW(unsigned Opcode); bool isVREDUCESS(unsigned Opcode); bool isVCVTUW2PH(unsigned Opcode); bool isVPBLENDMB(unsigned Opcode); bool isVPBLENDMD(unsigned Opcode); bool isVFMSUB132PD(unsigned Opcode); bool isVFMSUB132PH(unsigned Opcode); bool isMWAIT(unsigned Opcode); bool isSALC(unsigned Opcode); bool isPMADDUBSW(unsigned Opcode); bool isVFCMULCPH(unsigned Opcode); bool isVPBLENDMQ(unsigned Opcode); bool isRORX(unsigned Opcode); bool isVFMSUB132PS(unsigned Opcode); bool isVPBLENDMW(unsigned Opcode); bool isMOV(unsigned Opcode); bool isFXSAVE64(unsigned Opcode); bool isRMPADJUST(unsigned Opcode); bool isAADD(unsigned Opcode); bool isVLDDQU(unsigned Opcode); bool isVPSCATTERQD(unsigned Opcode); bool isVPHADDUBD(unsigned Opcode); bool isCMPSB(unsigned Opcode); bool isCMPSD(unsigned Opcode); bool isSTGI(unsigned Opcode); bool isVUNPCKLPD(unsigned Opcode); bool isVPSCATTERQQ(unsigned Opcode); bool isFADDP(unsigned Opcode); bool isVPHADDUBQ(unsigned Opcode); bool isCMPSQ(unsigned Opcode); bool isVPHADDUBW(unsigned Opcode); bool isCMPSS(unsigned Opcode); bool isVUNPCKLPS(unsigned Opcode); bool isLCALL(unsigned Opcode); bool isPSHUFB(unsigned Opcode); bool isCMPSW(unsigned Opcode); bool isPSHUFD(unsigned Opcode); bool isRDPRU(unsigned Opcode); bool isFRNDINT(unsigned Opcode); bool isVPACKUSWB(unsigned Opcode); bool isDIVPD(unsigned Opcode); bool isVAESDEC(unsigned Opcode); bool isPSHUFW(unsigned Opcode); bool isVPDPBUUDS(unsigned Opcode); bool isKMOVB(unsigned Opcode); bool isVFMSUB132SD(unsigned Opcode); bool isKMOVD(unsigned Opcode); bool isVCVTTPS2UQQ(unsigned Opcode); bool isVFMSUB132SH(unsigned Opcode); bool isDIVPS(unsigned Opcode); bool isVFCMULCSH(unsigned Opcode); bool isFICOM(unsigned Opcode); bool isKMOVQ(unsigned Opcode); bool isVFMSUB132SS(unsigned Opcode); bool isENCODEKEY128(unsigned Opcode); bool isKMOVW(unsigned Opcode); bool isPREFETCHT0(unsigned Opcode); bool isPREFETCHT1(unsigned Opcode); bool isPREFETCHT2(unsigned Opcode); bool isSWAPGS(unsigned Opcode); bool isVPTESTMD(unsigned Opcode); bool isVPTESTMB(unsigned Opcode); bool isVPHADDUDQ(unsigned Opcode); bool isVPTESTMQ(unsigned Opcode); bool isXRSTORS(unsigned Opcode); bool isVPMULDQ(unsigned Opcode); bool isUD1(unsigned Opcode); bool isUD2(unsigned Opcode); bool isVPTESTMW(unsigned Opcode); bool isSEAMOPS(unsigned Opcode); bool isMWAITX(unsigned Opcode); bool isVFMADD132PD(unsigned Opcode); bool isWRMSRNS(unsigned Opcode); bool isVMOVNTDQ(unsigned Opcode); bool isVFMADD132PH(unsigned Opcode); bool isPSRLD(unsigned Opcode); bool isVBROADCASTI64X2(unsigned Opcode); bool isVBROADCASTI64X4(unsigned Opcode); bool isVFMADD132PS(unsigned Opcode); bool isIDIV(unsigned Opcode); bool isPREFETCHWT1(unsigned Opcode); bool isVPSRLVD(unsigned Opcode); bool isPSRLQ(unsigned Opcode); bool isPSRLW(unsigned Opcode); bool isDIVSD(unsigned Opcode); bool isVPMOVDB(unsigned Opcode); bool isVPSRLVQ(unsigned Opcode); bool isVPSRLVW(unsigned Opcode); bool isDIVSS(unsigned Opcode); bool isMUL(unsigned Opcode); bool isVPMOVDW(unsigned Opcode); bool isVCVTTPD2UQQ(unsigned Opcode); bool isFSINCOS(unsigned Opcode); bool isVPMADD52LUQ(unsigned Opcode); bool isLWPINS(unsigned Opcode); bool isMOVDIR64B(unsigned Opcode); bool isLOOPE(unsigned Opcode); bool isPUSH(unsigned Opcode); bool isPSADBW(unsigned Opcode); bool isFTST(unsigned Opcode); bool isSETSSBSY(unsigned Opcode); bool isSARX(unsigned Opcode); bool isVADDSUBPD(unsigned Opcode); bool isVADDSUBPS(unsigned Opcode); bool isVMINPD(unsigned Opcode); bool isCLZERO(unsigned Opcode); bool isVMINPH(unsigned Opcode); bool isXCRYPTCBC(unsigned Opcode); bool isFXTRACT(unsigned Opcode); bool isVMINPS(unsigned Opcode); bool isVFMADD132SD(unsigned Opcode); bool isVFMADD132SH(unsigned Opcode); bool isVPERMI2B(unsigned Opcode); bool isVPERMI2D(unsigned Opcode); bool isVFMADD132SS(unsigned Opcode); bool isVRSQRT28PD(unsigned Opcode); bool isVPMULHW(unsigned Opcode); bool isSIDT(unsigned Opcode); bool isTDCALL(unsigned Opcode); bool isVPERMI2Q(unsigned Opcode); bool isVPERMI2W(unsigned Opcode); bool isVPERM2F128(unsigned Opcode); bool isVMLAUNCH(unsigned Opcode); bool isFILD(unsigned Opcode); bool isVRSQRT28PS(unsigned Opcode); bool isVPBLENDVB(unsigned Opcode); bool isVPMADDUBSW(unsigned Opcode); bool isVSTMXCSR(unsigned Opcode); bool isVCVTTPH2UDQ(unsigned Opcode); bool isXSHA256(unsigned Opcode); bool isWAIT(unsigned Opcode); bool isPACKSSWB(unsigned Opcode); bool isPMULHRSW(unsigned Opcode); bool isMASKMOVQ(unsigned Opcode); bool isVMINSD(unsigned Opcode); bool isVMINSH(unsigned Opcode); bool isRDTSC(unsigned Opcode); bool isVMINSS(unsigned Opcode); bool isVRSQRT28SD(unsigned Opcode); bool isAAND(unsigned Opcode); bool isXCRYPTCFB(unsigned Opcode); bool isVSCALEFPD(unsigned Opcode); bool isVPBROADCASTB(unsigned Opcode); bool isVSCALEFPH(unsigned Opcode); bool isVPBROADCASTD(unsigned Opcode); bool isVRSQRT28SS(unsigned Opcode); bool isVPMULLD(unsigned Opcode); bool isVSCALEFPS(unsigned Opcode); bool isMOVQ2DQ(unsigned Opcode); bool isVPBROADCASTQ(unsigned Opcode); bool isPALIGNR(unsigned Opcode); bool isPUSHAL(unsigned Opcode); bool isVPBROADCASTW(unsigned Opcode); bool isVPMULLQ(unsigned Opcode); bool isFINCSTP(unsigned Opcode); bool isPUSHAW(unsigned Opcode); bool isVPMULLW(unsigned Opcode); bool isPFPNACC(unsigned Opcode); bool isTESTUI(unsigned Opcode); bool isVPMOVZXWD(unsigned Opcode); bool isVPDPWSSDS(unsigned Opcode); bool isINVLPG(unsigned Opcode); bool isJCC(unsigned Opcode); bool isVPMOVZXWQ(unsigned Opcode); bool isBSF(unsigned Opcode); bool isROUNDPD(unsigned Opcode); bool isSAVEPREVSSP(unsigned Opcode); bool isVSCATTERDPD(unsigned Opcode); bool isBSR(unsigned Opcode); bool isROUNDPS(unsigned Opcode); bool isCVTPI2PD(unsigned Opcode); bool isKTESTB(unsigned Opcode); bool isKTESTD(unsigned Opcode); bool isVSCATTERDPS(unsigned Opcode); bool isFLD(unsigned Opcode); bool isBTC(unsigned Opcode); bool isVBCSTNEBF162PS(unsigned Opcode); bool isCVTPI2PS(unsigned Opcode); bool isKTESTQ(unsigned Opcode); bool isVSCALEFSD(unsigned Opcode); bool isVSCALEFSH(unsigned Opcode); bool isKTESTW(unsigned Opcode); bool isXSTORE(unsigned Opcode); bool isVFMADDSUB132PD(unsigned Opcode); bool isVPSRAVD(unsigned Opcode); bool isBTR(unsigned Opcode); bool isBTS(unsigned Opcode); bool isVFMADDSUB132PH(unsigned Opcode); bool isLGDT(unsigned Opcode); bool isVSCALEFSS(unsigned Opcode); bool isVEXTRACTF128(unsigned Opcode); bool isPMOVSXBD(unsigned Opcode); bool isKXNORB(unsigned Opcode); bool isVFMADDSUB132PS(unsigned Opcode); bool isKXNORD(unsigned Opcode); bool isXRSTOR(unsigned Opcode); bool isVPSRAVQ(unsigned Opcode); bool isVPSRAVW(unsigned Opcode); bool isVPDPWSSD(unsigned Opcode); bool isSQRTPD(unsigned Opcode); bool isVDPPD(unsigned Opcode); bool isPMOVSXBQ(unsigned Opcode); bool isPMADDWD(unsigned Opcode); bool isKXNORQ(unsigned Opcode); bool isSTUI(unsigned Opcode); bool isINSERTQ(unsigned Opcode); bool isPMOVSXBW(unsigned Opcode); bool isVCVTSI2SD(unsigned Opcode); bool isKXNORW(unsigned Opcode); bool isVSCATTERPF0DPD(unsigned Opcode); bool isVCVTSI2SH(unsigned Opcode); bool isSQRTPS(unsigned Opcode); bool isVDPPS(unsigned Opcode); bool isPSUBSB(unsigned Opcode); bool isVPSHRDVD(unsigned Opcode); bool isFIST(unsigned Opcode); bool isVCVTSI2SS(unsigned Opcode); bool isVSCATTERPF0DPS(unsigned Opcode); bool isVMOVNTPD(unsigned Opcode); bool isROUNDSD(unsigned Opcode); bool isVPSHRDVQ(unsigned Opcode); bool isPSIGNB(unsigned Opcode); bool isJECXZ(unsigned Opcode); bool isPSIGND(unsigned Opcode); bool isPSUBSW(unsigned Opcode); bool isMOVDQ2Q(unsigned Opcode); bool isPUSHFD(unsigned Opcode); bool isVMOVNTPS(unsigned Opcode); bool isROUNDSS(unsigned Opcode); bool isVAESDECLAST(unsigned Opcode); bool isPAVGB(unsigned Opcode); bool isVPSUBB(unsigned Opcode); bool isVPSHRDVW(unsigned Opcode); bool isVPSUBD(unsigned Opcode); bool isPUSHFQ(unsigned Opcode); bool isPSIGNW(unsigned Opcode); bool isVBROADCASTSD(unsigned Opcode); bool isVPSUBQ(unsigned Opcode); bool isPMOVSXDQ(unsigned Opcode); bool isPAVGW(unsigned Opcode); bool isVFMSUBADD132PD(unsigned Opcode); bool isVPSUBW(unsigned Opcode); bool isVCVTPS2PHX(unsigned Opcode); bool isMOVHLPS(unsigned Opcode); bool isVFMSUBADD132PH(unsigned Opcode); bool isVSHUFF64X2(unsigned Opcode); bool isVBROADCASTSS(unsigned Opcode); bool isVFMSUBADD132PS(unsigned Opcode); bool isMAXPD(unsigned Opcode); bool isSQRTSD(unsigned Opcode); bool isCVTPD2DQ(unsigned Opcode); bool isMAXPS(unsigned Opcode); bool isVPMOVQB(unsigned Opcode); bool isINVPCID(unsigned Opcode); bool isVCVTPS2DQ(unsigned Opcode); bool isSQRTSS(unsigned Opcode); bool isVADDPD(unsigned Opcode); bool isLODSB(unsigned Opcode); bool isLODSD(unsigned Opcode); bool isV4FNMADDPS(unsigned Opcode); bool isIRETD(unsigned Opcode); bool isVADDPH(unsigned Opcode); bool isVHADDPD(unsigned Opcode); bool isVPMOVQD(unsigned Opcode); bool isVPSUBUSB(unsigned Opcode); bool isVPMOVQW(unsigned Opcode); bool isVADDPS(unsigned Opcode); bool isLODSQ(unsigned Opcode); bool isFIDIVR(unsigned Opcode); bool isIRETQ(unsigned Opcode); bool isLODSW(unsigned Opcode); bool isVHADDPS(unsigned Opcode); bool isCVTTPS2DQ(unsigned Opcode); bool isVPORD(unsigned Opcode); bool isVP2INTERSECTD(unsigned Opcode); bool isVPSUBUSW(unsigned Opcode); bool isVPERMILPD(unsigned Opcode); bool isVPSHLDD(unsigned Opcode); bool isMOVD(unsigned Opcode); bool isVPORQ(unsigned Opcode); bool isVP2INTERSECTQ(unsigned Opcode); bool isCRC32(unsigned Opcode); bool isVPERMILPS(unsigned Opcode); bool isMOVQ(unsigned Opcode); bool isVPSHLDQ(unsigned Opcode); bool isVPMASKMOVD(unsigned Opcode); bool isVPSHLDW(unsigned Opcode); bool isSLWPCB(unsigned Opcode); bool isVORPD(unsigned Opcode); bool isPCMPGTB(unsigned Opcode); bool isPCMPGTD(unsigned Opcode); bool isVPMASKMOVQ(unsigned Opcode); bool isPFRSQIT1(unsigned Opcode); bool isVORPS(unsigned Opcode); bool isPCMPGTQ(unsigned Opcode); bool isBLCIC(unsigned Opcode); bool isMAXSD(unsigned Opcode); bool isPCMPGTW(unsigned Opcode); bool isVBCSTNESH2PS(unsigned Opcode); bool isMOVLHPS(unsigned Opcode); bool isXSAVEC(unsigned Opcode); bool isMAXSS(unsigned Opcode); bool isFST(unsigned Opcode); bool isVCVTSS2USI(unsigned Opcode); bool isVADDSD(unsigned Opcode); bool isVRNDSCALEPD(unsigned Opcode); bool isVCVTTPH2UQQ(unsigned Opcode); bool isV4FNMADDSS(unsigned Opcode); bool isVADDSH(unsigned Opcode); bool isVRNDSCALEPH(unsigned Opcode); bool isXSAVES(unsigned Opcode); bool isXRESLDTRK(unsigned Opcode); bool isVADDSS(unsigned Opcode); bool isVRNDSCALEPS(unsigned Opcode); bool isVPHADDUWD(unsigned Opcode); bool isRDSSPD(unsigned Opcode); bool isVPHADDUWQ(unsigned Opcode); bool isVMOVDDUP(unsigned Opcode); bool isINSERTPS(unsigned Opcode); bool isNEG(unsigned Opcode); bool isMOVUPD(unsigned Opcode); bool isRDSSPQ(unsigned Opcode); bool isVFRCZPD(unsigned Opcode); bool isPHMINPOSUW(unsigned Opcode); bool isVBROADCASTI32X2(unsigned Opcode); bool isVBROADCASTI32X4(unsigned Opcode); bool isJMP(unsigned Opcode); bool isVBROADCASTI32X8(unsigned Opcode); bool isMOVUPS(unsigned Opcode); bool isVPANDND(unsigned Opcode); bool isVCVTNE2PS2BF16(unsigned Opcode); bool isVPROLVD(unsigned Opcode); bool isVFRCZPS(unsigned Opcode); bool isJRCXZ(unsigned Opcode); bool isFNSTCW(unsigned Opcode); bool isFFREEP(unsigned Opcode); bool isVPANDNQ(unsigned Opcode); bool isVPROLVQ(unsigned Opcode); bool isAESDECWIDE128KL(unsigned Opcode); bool isSTTILECFG(unsigned Opcode); bool isVPMOVWB(unsigned Opcode); bool isVRNDSCALESD(unsigned Opcode); bool isVGATHERPF0QPD(unsigned Opcode); bool isVPHSUBD(unsigned Opcode); bool isVCVTSD2USI(unsigned Opcode); bool isWRGSBASE(unsigned Opcode); bool isVRNDSCALESH(unsigned Opcode); bool isAESENC256KL(unsigned Opcode); bool isVRNDSCALESS(unsigned Opcode); bool isVGATHERPF0QPS(unsigned Opcode); bool isVPHSUBW(unsigned Opcode); bool isSHA1NEXTE(unsigned Opcode); bool isXCRYPTCTR(unsigned Opcode); bool isFMUL(unsigned Opcode); bool isFBLD(unsigned Opcode); bool isVMXON(unsigned Opcode); bool isPUNPCKHQDQ(unsigned Opcode); bool isVFRCZSD(unsigned Opcode); bool isVFRCZSS(unsigned Opcode); bool isRMPUPDATE(unsigned Opcode); bool isVFNMADDPD(unsigned Opcode); bool isVCOMISD(unsigned Opcode); bool isVCOMISH(unsigned Opcode); bool isAXOR(unsigned Opcode); bool isVFNMADDPS(unsigned Opcode); bool isVCOMISS(unsigned Opcode); bool isPHADDD(unsigned Opcode); bool isVPMULHUW(unsigned Opcode); bool isVFNMSUB132PD(unsigned Opcode); bool isPMOVMSKB(unsigned Opcode); bool isVFNMSUB132PH(unsigned Opcode); bool isPHADDW(unsigned Opcode); bool isVFNMSUB132PS(unsigned Opcode); bool isVMOVDQA(unsigned Opcode); bool isSENDUIPI(unsigned Opcode); bool isVCVTTPS2DQ(unsigned Opcode); bool isRCPPS(unsigned Opcode); bool isRDMSR(unsigned Opcode); bool isVCVTQQ2PD(unsigned Opcode); bool isVRSQRT14PD(unsigned Opcode); bool isXORPD(unsigned Opcode); bool isVCVTQQ2PH(unsigned Opcode); bool isVMOVDQU(unsigned Opcode); bool isBLENDPD(unsigned Opcode); bool isVCVTQQ2PS(unsigned Opcode); bool isVRSQRT14PS(unsigned Opcode); bool isXORPS(unsigned Opcode); bool isRCL(unsigned Opcode); bool isRCR(unsigned Opcode); bool isBLENDPS(unsigned Opcode); bool isVPEXPANDB(unsigned Opcode); bool isVEXPANDPD(unsigned Opcode); bool isVPEXPANDD(unsigned Opcode); bool isBLSMSK(unsigned Opcode); bool isXSUSLDTRK(unsigned Opcode); bool isGF2P8MULB(unsigned Opcode); bool isSIDTD(unsigned Opcode); bool isVEXPANDPS(unsigned Opcode); bool isVFNMADDSD(unsigned Opcode); bool isCBW(unsigned Opcode); bool isVPEXPANDW(unsigned Opcode); bool isVPEXPANDQ(unsigned Opcode); bool isFXRSTOR64(unsigned Opcode); bool isVFNMADDSS(unsigned Opcode); bool isSIDTW(unsigned Opcode); bool isCVTPD2PI(unsigned Opcode); bool isVCVTPS2PD(unsigned Opcode); bool isVFNMSUB132SD(unsigned Opcode); bool isVCVTPS2PH(unsigned Opcode); bool isFIDIV(unsigned Opcode); bool isVFNMSUB132SH(unsigned Opcode); bool isCVTPD2PS(unsigned Opcode); bool isINVEPT(unsigned Opcode); bool isVPERMI2PD(unsigned Opcode); bool isVFMSUB213PD(unsigned Opcode); bool isVFNMSUB132SS(unsigned Opcode); bool isINVVPID(unsigned Opcode); bool isVFMSUB213PH(unsigned Opcode); bool isVPCOMB(unsigned Opcode); bool isVPERMI2PS(unsigned Opcode); bool isVPCOMD(unsigned Opcode); bool isSMSW(unsigned Opcode); bool isRCPSS(unsigned Opcode); bool isRET(unsigned Opcode); bool isVFMSUB213PS(unsigned Opcode); bool isVRSQRT14SD(unsigned Opcode); bool isCVTTPS2PI(unsigned Opcode); bool isVMCLEAR(unsigned Opcode); bool isVPCOMQ(unsigned Opcode); bool isCDQ(unsigned Opcode); bool isFLDL2E(unsigned Opcode); bool isVCVTPS2QQ(unsigned Opcode); bool isVPCOMW(unsigned Opcode); bool isVRSQRT14SS(unsigned Opcode); bool isVP4DPWSSDS(unsigned Opcode); bool isVPSLLDQ(unsigned Opcode); bool isVCVTSD2SH(unsigned Opcode); bool isFLDL2T(unsigned Opcode); bool isVEXP2PD(unsigned Opcode); bool isVFNMADD132PD(unsigned Opcode); bool isVCVTSD2SI(unsigned Opcode); bool isVPOPCNTB(unsigned Opcode); bool isVFNMADD132PH(unsigned Opcode); bool isVINSERTI128(unsigned Opcode); bool isVPOPCNTD(unsigned Opcode); bool isSETCC(unsigned Opcode); bool isVCVTSD2SS(unsigned Opcode); bool isVEXP2PS(unsigned Opcode); bool isVFNMADD132PS(unsigned Opcode); bool isMOVDIRI(unsigned Opcode); bool isVPOPCNTQ(unsigned Opcode); bool isVFMSUB231PD(unsigned Opcode); bool isVFMSUB231PH(unsigned Opcode); bool isFCMOVBE(unsigned Opcode); bool isVPOPCNTW(unsigned Opcode); bool isCVTTSD2SI(unsigned Opcode); bool isVFMSUB231PS(unsigned Opcode); bool isNOP(unsigned Opcode); bool isNOT(unsigned Opcode); bool isTPAUSE(unsigned Opcode); bool isVCVTNEPS2BF16(unsigned Opcode); bool isVFMSUB213SD(unsigned Opcode); bool isVFMSUB213SH(unsigned Opcode); bool isVFMADDCPH(unsigned Opcode); bool isVEXTRACTI64X2(unsigned Opcode); bool isVFMSUB213SS(unsigned Opcode); bool isVEXTRACTI64X4(unsigned Opcode); bool isXSAVEC64(unsigned Opcode); bool isBLCFILL(unsigned Opcode); bool isXBEGIN(unsigned Opcode); bool isXCRYPTOFB(unsigned Opcode); bool isFUCOMI(unsigned Opcode); bool isVMOVHPD(unsigned Opcode); bool isMASKMOVDQU(unsigned Opcode); bool isFUCOMP(unsigned Opcode); bool isVFNMADD132SD(unsigned Opcode); bool isMFENCE(unsigned Opcode); bool isVFNMADD132SH(unsigned Opcode); bool isVMOVHPS(unsigned Opcode); bool isVPBROADCASTMW2D(unsigned Opcode); bool isVFMADD213PD(unsigned Opcode); bool isVFNMADD132SS(unsigned Opcode); bool isVFMADD213PH(unsigned Opcode); bool isVFMSUB231SD(unsigned Opcode); bool isVPMULTISHIFTQB(unsigned Opcode); bool isFNSAVE(unsigned Opcode); bool isVFMSUB231SH(unsigned Opcode); bool isVSHUFF32X4(unsigned Opcode); bool isPMOVSXWD(unsigned Opcode); bool isVFMADD213PS(unsigned Opcode); bool isVFMSUB231SS(unsigned Opcode); bool isVPCOMPRESSB(unsigned Opcode); bool isPMOVSXWQ(unsigned Opcode); bool isVPCOMPRESSD(unsigned Opcode); bool isVPABSB(unsigned Opcode); bool isVMOVNTDQA(unsigned Opcode); bool isVPABSD(unsigned Opcode); bool isVPCOMPRESSQ(unsigned Opcode); bool isVINSERTI64X2(unsigned Opcode); bool isVPCOMPRESSW(unsigned Opcode); bool isVINSERTI64X4(unsigned Opcode); bool isVPABSQ(unsigned Opcode); bool isVFMADDCSH(unsigned Opcode); bool isVPABSW(unsigned Opcode); bool isPVALIDATE(unsigned Opcode); bool isVFMADD231PD(unsigned Opcode); bool isVFMADD231PH(unsigned Opcode); bool isPUNPCKLQDQ(unsigned Opcode); bool isVCVTNEEPH2PS(unsigned Opcode); bool isVFMADD231PS(unsigned Opcode); bool isAESENCWIDE256KL(unsigned Opcode); bool isVGF2P8MULB(unsigned Opcode); bool isWRSSD(unsigned Opcode); bool isMOVSHDUP(unsigned Opcode); bool isTZMSK(unsigned Opcode); bool isFPATAN(unsigned Opcode); bool isFUCOM(unsigned Opcode); bool isVFMADD213SD(unsigned Opcode); bool isWRSSQ(unsigned Opcode); bool isVFMADD213SH(unsigned Opcode); bool isVPTESTNMB(unsigned Opcode); bool isVPTESTNMD(unsigned Opcode); bool isPMULUDQ(unsigned Opcode); bool isHRESET(unsigned Opcode); bool isPMAXSB(unsigned Opcode); bool isPMAXSD(unsigned Opcode); bool isVFMADD213SS(unsigned Opcode); bool isCLC(unsigned Opcode); bool isCLD(unsigned Opcode); bool isENCODEKEY256(unsigned Opcode); bool isVPTESTNMQ(unsigned Opcode); bool isVGATHERQPD(unsigned Opcode); bool isBOUND(unsigned Opcode); bool isCLI(unsigned Opcode); bool isVPTESTNMW(unsigned Opcode); bool isPREFETCHIT0(unsigned Opcode); bool isPREFETCHIT1(unsigned Opcode); bool isPMAXSW(unsigned Opcode); bool isPFSUB(unsigned Opcode); bool isVCVTDQ2PH(unsigned Opcode); bool isVPALIGNR(unsigned Opcode); bool isVCVTDQ2PD(unsigned Opcode); bool isFNSTSW(unsigned Opcode); bool isFISTP(unsigned Opcode); bool isVFMADDPD(unsigned Opcode); bool isVGATHERQPS(unsigned Opcode); bool isPBLENDW(unsigned Opcode); bool isVCVTDQ2PS(unsigned Opcode); bool isPREFETCH(unsigned Opcode); bool isSKINIT(unsigned Opcode); bool isCMC(unsigned Opcode); bool isVFMADDPS(unsigned Opcode); bool isVPACKSSDW(unsigned Opcode); bool isFISUB(unsigned Opcode); bool isPADDB(unsigned Opcode); bool isPOPAL(unsigned Opcode); bool isPADDD(unsigned Opcode); bool isVFMADD231SD(unsigned Opcode); bool isCMP(unsigned Opcode); bool isKANDB(unsigned Opcode); bool isKANDD(unsigned Opcode); bool isVFMADD231SH(unsigned Opcode); bool isVCVTSH2USI(unsigned Opcode); bool isPCONFIG(unsigned Opcode); bool isPOPAW(unsigned Opcode); bool isPADDQ(unsigned Opcode); bool isPMAXUB(unsigned Opcode); bool isROL(unsigned Opcode); bool isKANDQ(unsigned Opcode); bool isPADDW(unsigned Opcode); bool isVCVTTPS2QQ(unsigned Opcode); bool isPMAXUD(unsigned Opcode); bool isROR(unsigned Opcode); bool isVFMADD231SS(unsigned Opcode); bool isKANDW(unsigned Opcode); bool isVPSRAD(unsigned Opcode); bool isVROUNDPD(unsigned Opcode); bool isMOVBE(unsigned Opcode); bool isLOOP(unsigned Opcode); bool isVCVTTSD2SI(unsigned Opcode); bool isVPSRAQ(unsigned Opcode); bool isVROUNDPS(unsigned Opcode); bool isPMAXUW(unsigned Opcode); bool isVPSRAW(unsigned Opcode); bool isVPOR(unsigned Opcode); bool isVPEXTRB(unsigned Opcode); bool isVPEXTRD(unsigned Opcode); bool isXGETBV(unsigned Opcode); bool isVSUBPD(unsigned Opcode); bool isENCLS(unsigned Opcode); bool isENCLU(unsigned Opcode); bool isENCLV(unsigned Opcode); bool isVSUBPH(unsigned Opcode); bool isVPEXTRQ(unsigned Opcode); bool isVHSUBPD(unsigned Opcode); bool isVPEXTRW(unsigned Opcode); bool isVSUBPS(unsigned Opcode); bool isVGF2P8AFFINEINVQB(unsigned Opcode); bool isVMOVLPD(unsigned Opcode); bool isVFMADDSD(unsigned Opcode); bool isVHSUBPS(unsigned Opcode); bool isPSRLDQ(unsigned Opcode); bool isVMOVLPS(unsigned Opcode); bool isVFMADDSS(unsigned Opcode); bool isVRCP28PD(unsigned Opcode); bool isFPREM(unsigned Opcode); bool isVPMADDWD(unsigned Opcode); bool isVCVTSH2SD(unsigned Opcode); bool isSERIALIZE(unsigned Opcode); bool isV4FMADDPS(unsigned Opcode); bool isVRCP28PS(unsigned Opcode); bool isVCVTSH2SI(unsigned Opcode); bool isRETF(unsigned Opcode); bool isVROUNDSD(unsigned Opcode); bool isVCVTSH2SS(unsigned Opcode); bool isVSCATTERPF1QPD(unsigned Opcode); bool isVPCONFLICTD(unsigned Opcode); bool isMOVNTI(unsigned Opcode); bool isCQO(unsigned Opcode); bool isVROUNDSS(unsigned Opcode); bool isMOVNTQ(unsigned Opcode); bool isVAESENC(unsigned Opcode); bool isVSCATTERPF1QPS(unsigned Opcode); bool isVPCONFLICTQ(unsigned Opcode); bool isFCMOVNB(unsigned Opcode); bool isLZCNT(unsigned Opcode); bool isFCMOVNE(unsigned Opcode); bool isRSM(unsigned Opcode); bool isPOPCNT(unsigned Opcode); bool isVSUBSD(unsigned Opcode); bool isPOPFD(unsigned Opcode); bool isVSUBSH(unsigned Opcode); bool isVPANDD(unsigned Opcode); bool isFCMOVNU(unsigned Opcode); bool isVMOVHLPS(unsigned Opcode); bool isPOPFQ(unsigned Opcode); bool isVPANDN(unsigned Opcode); bool isVFMADDSUB213PD(unsigned Opcode); bool isVCMPPD(unsigned Opcode); bool isVFMADDSUB213PH(unsigned Opcode); bool isVSUBSS(unsigned Opcode); bool isVPANDQ(unsigned Opcode); bool isVCMPPH(unsigned Opcode); bool isVP4DPWSSD(unsigned Opcode); bool isENDBR32(unsigned Opcode); bool isEMMS(unsigned Opcode); bool isXCHG(unsigned Opcode); bool isVFMADDSUB213PS(unsigned Opcode); bool isTDPBUSD(unsigned Opcode); bool isRDSEED(unsigned Opcode); bool isVCMPPS(unsigned Opcode); bool isVRCP28SD(unsigned Opcode); bool isRDMSRLIST(unsigned Opcode); bool isVRCP28SS(unsigned Opcode); bool isV4FMADDSS(unsigned Opcode); bool isAESKEYGENASSIST(unsigned Opcode); bool isFUCOMPI(unsigned Opcode); bool isTDPBF16PS(unsigned Opcode); bool isFUCOMPP(unsigned Opcode); bool isVFMADDSUB231PD(unsigned Opcode); bool isVCVTPH2PSX(unsigned Opcode); bool isVFMADDSUB231PH(unsigned Opcode); bool isBLENDVPD(unsigned Opcode); bool isPSWAPD(unsigned Opcode); bool isVMSAVE(unsigned Opcode); bool isVFMADDSUB231PS(unsigned Opcode); bool isTDPBUUD(unsigned Opcode); bool isVBLENDMPD(unsigned Opcode); bool isPFACC(unsigned Opcode); bool isBLENDVPS(unsigned Opcode); bool isVPERM2I128(unsigned Opcode); bool isVPCMPGTB(unsigned Opcode); bool isLLWPCB(unsigned Opcode); bool isVPCMPGTD(unsigned Opcode); bool isVFMSUBADD213PD(unsigned Opcode); bool isVFMSUBADD213PH(unsigned Opcode); bool isVBLENDMPS(unsigned Opcode); bool isVCMPSD(unsigned Opcode); bool isVCMPSH(unsigned Opcode); bool isVPCMPGTQ(unsigned Opcode); bool isANDNPD(unsigned Opcode); bool isENDBR64(unsigned Opcode); bool isVFMSUBADD213PS(unsigned Opcode); bool isVPCMPGTW(unsigned Opcode); bool isVCMPSS(unsigned Opcode); bool isPFADD(unsigned Opcode); bool isVMOVLHPS(unsigned Opcode); bool isVPMINSD(unsigned Opcode); bool isVPMINSB(unsigned Opcode); bool isANDNPS(unsigned Opcode); bool isPHADDSW(unsigned Opcode); bool isVPSLLVD(unsigned Opcode); bool isVDIVPD(unsigned Opcode); bool isVPMINSQ(unsigned Opcode); bool isVDIVPH(unsigned Opcode); bool isVPMINSW(unsigned Opcode); bool isVFNMSUBPD(unsigned Opcode); bool isLWPVAL(unsigned Opcode); bool isAESDEC128KL(unsigned Opcode); bool isFIADD(unsigned Opcode); bool isVPAND(unsigned Opcode); bool isMOVSLDUP(unsigned Opcode); bool isVPSLLVQ(unsigned Opcode); bool isVDIVPS(unsigned Opcode); bool isCWD(unsigned Opcode); bool isVPSLLVW(unsigned Opcode); bool isCWDE(unsigned Opcode); bool isVFNMSUBPS(unsigned Opcode); bool isVFMSUBADD231PD(unsigned Opcode); bool isVPDPBUSD(unsigned Opcode); bool isVFMSUBADD231PH(unsigned Opcode); bool isPFNACC(unsigned Opcode); bool isPFRSQRT(unsigned Opcode); bool isVPMACSDD(unsigned Opcode); bool isVFMSUBADD231PS(unsigned Opcode); bool isFRSTOR(unsigned Opcode); bool isVPMINUB(unsigned Opcode); bool isVPMINUD(unsigned Opcode); bool isKUNPCKBW(unsigned Opcode); bool isDPPD(unsigned Opcode); bool isVAESIMC(unsigned Opcode); bool isPTEST(unsigned Opcode); bool isVPMINUQ(unsigned Opcode); bool isUCOMISD(unsigned Opcode); bool isVPMINUW(unsigned Opcode); bool isDPPS(unsigned Opcode); bool isFLDLG2(unsigned Opcode); bool isVPMOVD2M(unsigned Opcode); bool isVMOVAPD(unsigned Opcode); bool isVPSRLD(unsigned Opcode); bool isTLBSYNC(unsigned Opcode); bool isXLATB(unsigned Opcode); bool isUCOMISS(unsigned Opcode); bool isVPSRLQ(unsigned Opcode); bool isPDEP(unsigned Opcode); bool isVPDPBUUD(unsigned Opcode); bool isVEXTRACTI32X4(unsigned Opcode); bool isPFCMPEQ(unsigned Opcode); bool isBLSIC(unsigned Opcode); bool isVPSRLW(unsigned Opcode); bool isVEXTRACTI32X8(unsigned Opcode); bool isVDIVSD(unsigned Opcode); bool isVFCMADDCPH(unsigned Opcode); bool isVMOVAPS(unsigned Opcode); bool isFNOP(unsigned Opcode); bool isVDIVSH(unsigned Opcode); bool isBT(unsigned Opcode); bool isVFNMSUBSD(unsigned Opcode); bool isVPHMINPOSUW(unsigned Opcode); bool isVDIVSS(unsigned Opcode); bool isVCVTTSH2SI(unsigned Opcode); bool isKUNPCKDQ(unsigned Opcode); bool isMULPD(unsigned Opcode); bool isBEXTR(unsigned Opcode); bool isVFNMSUBSS(unsigned Opcode); bool isMPSADBW(unsigned Opcode); bool isMULPS(unsigned Opcode); bool isSHA256MSG1(unsigned Opcode); bool isSHA256MSG2(unsigned Opcode); bool isPOPF(unsigned Opcode); bool isVERR(unsigned Opcode); bool isPFCMPGE(unsigned Opcode); bool isVCVTPS2UDQ(unsigned Opcode); bool isVERW(unsigned Opcode); bool isVFMSUBADDPD(unsigned Opcode); bool isPFCMPGT(unsigned Opcode); bool isVEXTRACTI128(unsigned Opcode); bool isVGF2P8AFFINEQB(unsigned Opcode); bool isPSLLD(unsigned Opcode); bool isFSUBP(unsigned Opcode); bool isFSUBR(unsigned Opcode); bool isVBROADCASTF64X2(unsigned Opcode); bool isFCHS(unsigned Opcode); bool isCMPXCHG8B(unsigned Opcode); bool isVBROADCASTF64X4(unsigned Opcode); bool isVINSERTI32X4(unsigned Opcode); bool isVFMSUBADDPS(unsigned Opcode); bool isVBROADCASTF128(unsigned Opcode); bool isVPERMIL2PD(unsigned Opcode); bool isPSLLQ(unsigned Opcode); bool isVINSERTI32X8(unsigned Opcode); bool isLLDT(unsigned Opcode); bool isMOVMSKPD(unsigned Opcode); bool isPSLLW(unsigned Opcode); bool isVFCMADDCSH(unsigned Opcode); bool isVPERMIL2PS(unsigned Opcode); bool isPF2ID(unsigned Opcode); bool isVPUNPCKHQDQ(unsigned Opcode); bool isMOVMSKPS(unsigned Opcode); bool isMULSD(unsigned Opcode); bool isPF2IW(unsigned Opcode); bool isVBLENDPD(unsigned Opcode); bool isCLAC(unsigned Opcode); bool isMULSS(unsigned Opcode); bool isORPD(unsigned Opcode); bool isCDQE(unsigned Opcode); bool isVBLENDPS(unsigned Opcode); bool isTILESTORED(unsigned Opcode); bool isORPS(unsigned Opcode); bool isVPINSRB(unsigned Opcode); bool isVPINSRD(unsigned Opcode); bool isBZHI(unsigned Opcode); bool isPUNPCKHBW(unsigned Opcode); bool isVCVTPD2UDQ(unsigned Opcode); bool isVPINSRQ(unsigned Opcode); bool isVPINSRW(unsigned Opcode); bool isVPMACSSDQH(unsigned Opcode); bool isGETSEC(unsigned Opcode); bool isCVTSS2SD(unsigned Opcode); bool isVPMACSSDQL(unsigned Opcode); bool isANDN(unsigned Opcode); bool isCVTSS2SI(unsigned Opcode); bool isAESDEC(unsigned Opcode); bool isMOVSB(unsigned Opcode); bool isMOVSD(unsigned Opcode); bool isVFNMSUB213PD(unsigned Opcode); bool isVPMOVW2M(unsigned Opcode); bool isVFNMSUB213PH(unsigned Opcode); bool isVPACKSSWB(unsigned Opcode); bool isMOVSQ(unsigned Opcode); bool isMOVSS(unsigned Opcode); bool isVPMULHRSW(unsigned Opcode); bool isVFNMSUB213PS(unsigned Opcode); bool isCMOVCC(unsigned Opcode); bool isMOVSW(unsigned Opcode); bool isMOVSX(unsigned Opcode); bool isVPCOMUD(unsigned Opcode); bool isVPCOMUB(unsigned Opcode); bool isVPDPBSUDS(unsigned Opcode); bool isFLDLN2(unsigned Opcode); bool isPACKUSDW(unsigned Opcode); bool isVPCOMUQ(unsigned Opcode); bool isMONTMUL(unsigned Opcode); bool isPUNPCKHDQ(unsigned Opcode); bool isVPCOMUW(unsigned Opcode); bool isPMULDQ(unsigned Opcode); bool isT1MSKC(unsigned Opcode); bool isIN(unsigned Opcode); bool isVPHADDBD(unsigned Opcode); bool isSAR(unsigned Opcode); bool isVPHADDBQ(unsigned Opcode); bool isVFNMSUB231PD(unsigned Opcode); bool isVPSHLDVD(unsigned Opcode); bool isFSCALE(unsigned Opcode); bool isVFNMSUB231PH(unsigned Opcode); bool isVPHADDBW(unsigned Opcode); bool isSBB(unsigned Opcode); bool isVPSHLDVQ(unsigned Opcode); bool isVFNMSUB231PS(unsigned Opcode); bool isVPDPBUSDS(unsigned Opcode); bool isFCOMPI(unsigned Opcode); bool isRSQRTPS(unsigned Opcode); bool isVSHUFPD(unsigned Opcode); bool isVPSHLDVW(unsigned Opcode); bool isVPADDSB(unsigned Opcode); bool isFCOMPP(unsigned Opcode); bool isDAA(unsigned Opcode); bool isVFNMSUB213SD(unsigned Opcode); bool isVSHUFPS(unsigned Opcode); bool isINVLPGA(unsigned Opcode); bool isINVLPGB(unsigned Opcode); bool isVFNMSUB213SH(unsigned Opcode); bool isDAS(unsigned Opcode); bool isVPADDSW(unsigned Opcode); bool isVFNMSUB213SS(unsigned Opcode); bool isFCOM(unsigned Opcode); bool isKXORB(unsigned Opcode); bool isKXORD(unsigned Opcode); bool isFCOS(unsigned Opcode); bool isVPHADDDQ(unsigned Opcode); bool isCLDEMOTE(unsigned Opcode); bool isKXORQ(unsigned Opcode); bool isKXORW(unsigned Opcode); bool isVDPBF16PS(unsigned Opcode); bool isCLGI(unsigned Opcode); bool isVMREAD(unsigned Opcode); bool isANDPD(unsigned Opcode); bool isVFMSUBPD(unsigned Opcode); bool isVFNMADD213PD(unsigned Opcode); bool isVFNMADD213PH(unsigned Opcode); bool isVFNMSUB231SD(unsigned Opcode); bool isFSQRT(unsigned Opcode); bool isVFNMSUB231SH(unsigned Opcode); bool isPCLMULQDQ(unsigned Opcode); bool isVRCP14PD(unsigned Opcode); bool isANDPS(unsigned Opcode); bool isVFMSUBPS(unsigned Opcode); bool isVFNMADD213PS(unsigned Opcode); bool isPMULHW(unsigned Opcode); bool isVFNMSUB231SS(unsigned Opcode); bool isAESDECWIDE256KL(unsigned Opcode); bool isRSQRTSS(unsigned Opcode); bool isVRCP14PS(unsigned Opcode); bool isVZEROUPPER(unsigned Opcode); bool isVPAVGB(unsigned Opcode); bool isVPMOVSXBD(unsigned Opcode); bool isRDGSBASE(unsigned Opcode); bool isFLDCW(unsigned Opcode); bool isLIDTD(unsigned Opcode); bool isVGATHERPF1DPD(unsigned Opcode); bool isSFENCE(unsigned Opcode); bool isVPMOVSXBQ(unsigned Opcode); bool isVPAVGW(unsigned Opcode); bool isVPMOVSXBW(unsigned Opcode); bool isFCMOVB(unsigned Opcode); bool isVMASKMOVDQU(unsigned Opcode); bool isVGATHERPF1DPS(unsigned Opcode); bool isFCMOVE(unsigned Opcode); bool isVMLOAD(unsigned Opcode); bool isLIDTW(unsigned Opcode); bool isVFNMADD231PD(unsigned Opcode); bool isDEC(unsigned Opcode); bool isVFNMADD231PH(unsigned Opcode); bool isFCMOVU(unsigned Opcode); bool isRSTORSSP(unsigned Opcode); bool isVMAXPD(unsigned Opcode); bool isVMAXPH(unsigned Opcode); bool isPUNPCKLBW(unsigned Opcode); bool isIMUL(unsigned Opcode); bool isTILELOADDT1(unsigned Opcode); bool isVFNMADD231PS(unsigned Opcode); bool isVMAXPS(unsigned Opcode); bool isVPXOR(unsigned Opcode); bool isOR(unsigned Opcode); bool isMOVZX(unsigned Opcode); bool isXSAVES64(unsigned Opcode); bool isVPUNPCKHBW(unsigned Opcode); bool isSYSRET(unsigned Opcode); bool isVFMSUBSD(unsigned Opcode); bool isVFNMADD213SD(unsigned Opcode); bool isVFNMADD213SH(unsigned Opcode); bool isSGDT(unsigned Opcode); bool isVRCP14SD(unsigned Opcode); bool isVPMOVSXDQ(unsigned Opcode); bool isSYSEXIT(unsigned Opcode); bool isPMOVZXBD(unsigned Opcode); bool isVFNMADD213SS(unsigned Opcode); bool isVPMADCSSWD(unsigned Opcode); bool isVPMULUDQ(unsigned Opcode); bool isVFMSUBSS(unsigned Opcode); bool isVPXORD(unsigned Opcode); bool isXSAVEOPT64(unsigned Opcode); bool isXSHA1(unsigned Opcode); bool isVRCP14SS(unsigned Opcode); bool isPMOVZXBQ(unsigned Opcode); bool isSHL(unsigned Opcode); bool isPMOVZXBW(unsigned Opcode); bool isPMULLD(unsigned Opcode); bool isVCVTPS2UQQ(unsigned Opcode); bool isVPBLENDD(unsigned Opcode); bool isVPXORQ(unsigned Opcode); bool isPUNPCKLDQ(unsigned Opcode); bool isSHR(unsigned Opcode); bool isVPUNPCKLQDQ(unsigned Opcode); bool isVCVTPD2DQ(unsigned Opcode); bool isPMULLW(unsigned Opcode); bool isVPBLENDW(unsigned Opcode); bool isAESENCLAST(unsigned Opcode); bool isVPUNPCKHDQ(unsigned Opcode); bool isVFNMADD231SD(unsigned Opcode); bool isVFNMADD231SH(unsigned Opcode); bool isVPMOVSDB(unsigned Opcode); bool isVMAXSD(unsigned Opcode); bool isVMAXSH(unsigned Opcode); bool isLAHF(unsigned Opcode); bool isCVTTPD2DQ(unsigned Opcode); bool isUNPCKHPD(unsigned Opcode); bool isVFNMADD231SS(unsigned Opcode); bool isVMAXSS(unsigned Opcode); bool isVPMACSSDD(unsigned Opcode); bool isVPMOVSDW(unsigned Opcode); bool isPMOVZXDQ(unsigned Opcode); bool isUNPCKHPS(unsigned Opcode); bool isFCOMI(unsigned Opcode); bool isCLFLUSH(unsigned Opcode); bool isTILELOADD(unsigned Opcode); bool isFCOMP(unsigned Opcode); bool isDIV(unsigned Opcode); bool isVPMACSWD(unsigned Opcode); bool isFPREM1(unsigned Opcode); bool isVSCATTERQPD(unsigned Opcode); bool isFYL2X(unsigned Opcode); bool isVPMACSWW(unsigned Opcode); bool isPFMAX(unsigned Opcode); bool isVPSHUFB(unsigned Opcode); bool isVCVTPD2UQQ(unsigned Opcode); bool isVPSHUFD(unsigned Opcode); bool isVSCATTERQPS(unsigned Opcode); bool isGF2P8AFFINEINVQB(unsigned Opcode); bool isFEMMS(unsigned Opcode); bool isKUNPCKWD(unsigned Opcode); bool isVPCLMULQDQ(unsigned Opcode); bool isKORB(unsigned Opcode); bool isVINSERTPS(unsigned Opcode); bool isKORD(unsigned Opcode); bool isVMFUNC(unsigned Opcode); bool isCPUID(unsigned Opcode); bool isVSCATTERPF0QPD(unsigned Opcode); bool isOUT(unsigned Opcode); bool isKORQ(unsigned Opcode); bool isKORW(unsigned Opcode); bool isVSCATTERPF0QPS(unsigned Opcode); bool isPHSUBSW(unsigned Opcode); bool isPFSUBR(unsigned Opcode); bool isVCVTPH2UDQ(unsigned Opcode); bool isVBROADCASTF32X2(unsigned Opcode); bool isVBROADCASTF32X4(unsigned Opcode); bool isSHA256RNDS2(unsigned Opcode); bool isVBROADCASTF32X8(unsigned Opcode); bool isVPERMB(unsigned Opcode); bool isVPUNPCKLBW(unsigned Opcode); bool isVPERMD(unsigned Opcode); bool isXCRYPTECB(unsigned Opcode); bool isVPERMQ(unsigned Opcode); bool isEXTRACTPS(unsigned Opcode); bool isVPERMW(unsigned Opcode); bool isHADDPD(unsigned Opcode); bool isFXSAVE(unsigned Opcode); bool isVRCPPH(unsigned Opcode); bool isHADDPS(unsigned Opcode); bool isVPSADBW(unsigned Opcode); bool isRDRAND(unsigned Opcode); bool isVRCPPS(unsigned Opcode); bool isVXORPD(unsigned Opcode); bool isFFREE(unsigned Opcode); bool isPCMPEQB(unsigned Opcode); bool isPCMPEQD(unsigned Opcode); bool isVPUNPCKLDQ(unsigned Opcode); bool isVTESTPD(unsigned Opcode); bool isVXORPS(unsigned Opcode); bool isTZCNT(unsigned Opcode); bool isCLTS(unsigned Opcode); bool isPCMPEQQ(unsigned Opcode); bool isVFPCLASSPD(unsigned Opcode); bool isVFPCLASSPH(unsigned Opcode); bool isVTESTPS(unsigned Opcode); bool isPCMPEQW(unsigned Opcode); bool isUNPCKLPD(unsigned Opcode); bool isVMOVDQA32(unsigned Opcode); bool isVFPCLASSPS(unsigned Opcode); bool isVPMOVMSKB(unsigned Opcode); bool isFDECSTP(unsigned Opcode); bool isCLUI(unsigned Opcode); bool isFLDPI(unsigned Opcode); bool isUNPCKLPS(unsigned Opcode); bool isVCVTTPD2DQ(unsigned Opcode); bool isPAVGUSB(unsigned Opcode); bool isCALL(unsigned Opcode); bool isFLDENV(unsigned Opcode); bool isPACKUSWB(unsigned Opcode); bool isVPHADDSW(unsigned Opcode); bool isLAR(unsigned Opcode); bool isCLFLUSHOPT(unsigned Opcode); bool isVMMCALL(unsigned Opcode); bool isARPL(unsigned Opcode); bool isXABORT(unsigned Opcode); bool isPUNPCKHWD(unsigned Opcode); bool isVRCPSH(unsigned Opcode); bool isLDDQU(unsigned Opcode); bool isPFMIN(unsigned Opcode); bool isSYSRETQ(unsigned Opcode); bool isVRCPSS(unsigned Opcode); bool isCLWB(unsigned Opcode); bool isSTC(unsigned Opcode); bool isSTD(unsigned Opcode); bool isVMOVDQU8(unsigned Opcode); bool isSTI(unsigned Opcode); bool isSTR(unsigned Opcode); bool isVFPCLASSSD(unsigned Opcode); bool isLDMXCSR(unsigned Opcode); bool isVFPCLASSSH(unsigned Opcode); bool isVCVTPD2PH(unsigned Opcode); bool isVCVTPH2DQ(unsigned Opcode); bool isVFPCLASSSS(unsigned Opcode); bool isVMOVDQA64(unsigned Opcode); bool isSUB(unsigned Opcode); bool isVUCOMISD(unsigned Opcode); bool isVCVTPD2PS(unsigned Opcode); bool isLEAVE(unsigned Opcode); bool isOUTSB(unsigned Opcode); bool isOUTSD(unsigned Opcode); bool isVUCOMISH(unsigned Opcode); bool isEXTRQ(unsigned Opcode); bool isVUCOMISS(unsigned Opcode); bool isCVTTPD2PI(unsigned Opcode); bool isOUTSW(unsigned Opcode); bool isLDS(unsigned Opcode); bool isPSHUFHW(unsigned Opcode); bool isPHSUBD(unsigned Opcode); bool isHLT(unsigned Opcode); bool isVCVTPD2QQ(unsigned Opcode); bool isLIDT(unsigned Opcode); bool isVPTERNLOGD(unsigned Opcode); bool isLEA(unsigned Opcode); bool isVPHADDWD(unsigned Opcode); bool isPREFETCHNTA(unsigned Opcode); bool isVPTERNLOGQ(unsigned Opcode); bool isKSHIFTLB(unsigned Opcode); bool isKSHIFTLD(unsigned Opcode); bool isPHSUBW(unsigned Opcode); bool isVPMOVSQB(unsigned Opcode); bool isVPHADDWQ(unsigned Opcode); bool isVCVTTSS2USI(unsigned Opcode); bool isVPMOVSQD(unsigned Opcode); bool isLES(unsigned Opcode); bool isVMPSADBW(unsigned Opcode); bool isKSHIFTLQ(unsigned Opcode); bool isADDSUBPD(unsigned Opcode); bool isKSHIFTLW(unsigned Opcode); bool isXSAVE64(unsigned Opcode); bool isVPMOVSQW(unsigned Opcode); bool isADDSUBPS(unsigned Opcode); bool isENQCMD(unsigned Opcode); bool isVCVTTPH2W(unsigned Opcode); bool isVMRUN(unsigned Opcode); bool isWRFSBASE(unsigned Opcode); bool isCOMISD(unsigned Opcode); bool isLFS(unsigned Opcode); bool isSTOSB(unsigned Opcode); bool isSTOSD(unsigned Opcode); bool isCOMISS(unsigned Opcode); bool isVZEROALL(unsigned Opcode); bool isVFMADDSUBPD(unsigned Opcode); bool isVEXTRACTPS(unsigned Opcode); bool isKADDB(unsigned Opcode); bool isKADDD(unsigned Opcode); bool isXTEST(unsigned Opcode); bool isFISTTP(unsigned Opcode); bool isSTOSQ(unsigned Opcode); bool isJCXZ(unsigned Opcode); bool isSTOSW(unsigned Opcode); bool isVFMADDSUBPS(unsigned Opcode); bool isVPSHAB(unsigned Opcode); bool isKADDQ(unsigned Opcode); bool isLGS(unsigned Opcode); bool isVPMACSDQH(unsigned Opcode); bool isMOVDQA(unsigned Opcode); bool isVPSHAD(unsigned Opcode); bool isKADDW(unsigned Opcode); bool isPSMASH(unsigned Opcode); bool isPBLENDVB(unsigned Opcode); bool isVPMACSDQL(unsigned Opcode); bool isVPHSUBBW(unsigned Opcode); bool isVPSHAQ(unsigned Opcode); bool isVSQRTPD(unsigned Opcode); bool isCLRSSBSY(unsigned Opcode); bool isMINPD(unsigned Opcode); bool isVPSHAW(unsigned Opcode); bool isVSQRTPH(unsigned Opcode); bool isMOVDQU(unsigned Opcode); bool isVSQRTPS(unsigned Opcode); bool isVPSUBSB(unsigned Opcode); bool isMULX(unsigned Opcode); bool isMINPS(unsigned Opcode); bool isPSHUFLW(unsigned Opcode); bool isVEXTRACTF64X2(unsigned Opcode); bool isVEXTRACTF64X4(unsigned Opcode); bool isVCVTTSD2USI(unsigned Opcode); bool isINCSSPD(unsigned Opcode); bool isVPSIGNB(unsigned Opcode); bool isVPSUBSW(unsigned Opcode); bool isVPSIGND(unsigned Opcode); bool isXSAVEOPT(unsigned Opcode); bool isVPMOVSXWD(unsigned Opcode); bool isINCSSPQ(unsigned Opcode); bool isGF2P8AFFINEQB(unsigned Opcode); bool isVPMOVSXWQ(unsigned Opcode); bool isVPHSUBDQ(unsigned Opcode); bool isVPSIGNW(unsigned Opcode); bool isSGDTD(unsigned Opcode); bool isPUNPCKLWD(unsigned Opcode); bool isVPPERM(unsigned Opcode); bool isAAA(unsigned Opcode); bool isPAND(unsigned Opcode); bool isVCVTPH2UQQ(unsigned Opcode); bool isAAD(unsigned Opcode); bool isSGDTW(unsigned Opcode); bool isVPUNPCKHWD(unsigned Opcode); bool isAAM(unsigned Opcode); bool isVCVTNEOPH2PS(unsigned Opcode); bool isAAS(unsigned Opcode); bool isVSQRTSD(unsigned Opcode); bool isBLCI(unsigned Opcode); bool isMINSD(unsigned Opcode); bool isVPSHUFBITQMB(unsigned Opcode); bool isKSHIFTRB(unsigned Opcode); bool isUMONITOR(unsigned Opcode); bool isKSHIFTRD(unsigned Opcode); bool isFNCLEX(unsigned Opcode); bool isVSQRTSH(unsigned Opcode); bool isBLCS(unsigned Opcode); bool isVINSERTF64X2(unsigned Opcode); bool isVSQRTSS(unsigned Opcode); bool isVINSERTF64X4(unsigned Opcode); bool isMINSS(unsigned Opcode); bool isVPBROADCASTMB2Q(unsigned Opcode); bool isKSHIFTRQ(unsigned Opcode); bool isVMOVSHDUP(unsigned Opcode); bool isVPMOVSWB(unsigned Opcode); bool isPMOVZXWD(unsigned Opcode); bool isFSIN(unsigned Opcode); bool isPSLLDQ(unsigned Opcode); bool isKSHIFTRW(unsigned Opcode); bool isVPADDD(unsigned Opcode); bool isVPADDB(unsigned Opcode); bool isVPMACSSWD(unsigned Opcode); bool isPMOVZXWQ(unsigned Opcode); bool isVPADDQ(unsigned Opcode); bool isVPADDW(unsigned Opcode); bool isVRSQRTPH(unsigned Opcode); bool isVPMACSSWW(unsigned Opcode); bool isVRSQRTPS(unsigned Opcode); bool isVCVTTPH2DQ(unsigned Opcode); bool isWRMSR(unsigned Opcode); bool isXSETBV(unsigned Opcode); bool isMOVSXD(unsigned Opcode); bool isADC(unsigned Opcode); bool isADD(unsigned Opcode); bool isFDIV(unsigned Opcode); bool isAESDEC256KL(unsigned Opcode); bool isVPCMPUB(unsigned Opcode); bool isVCVTTPD2QQ(unsigned Opcode); bool isVPCMPUD(unsigned Opcode); bool isPFMUL(unsigned Opcode); bool isPREFETCHW(unsigned Opcode); bool isVPCMPUQ(unsigned Opcode); bool isKORTESTB(unsigned Opcode); bool isMOVHPD(unsigned Opcode); bool isKORTESTD(unsigned Opcode); bool isCVTSI2SD(unsigned Opcode); bool isFSUBRP(unsigned Opcode); bool isIRET(unsigned Opcode); bool isPTWRITE(unsigned Opcode); bool isVPCMPUW(unsigned Opcode); bool isKORTESTQ(unsigned Opcode); bool isMOVHPS(unsigned Opcode); bool isFIMUL(unsigned Opcode); bool isCVTSI2SS(unsigned Opcode); bool isVCVTPH2PD(unsigned Opcode); bool isKORTESTW(unsigned Opcode); bool isPADDUSB(unsigned Opcode); bool isVSHUFI64X2(unsigned Opcode); bool isVRSQRTSH(unsigned Opcode); bool isVMWRITE(unsigned Opcode); bool isTILERELEASE(unsigned Opcode); bool isVCVTPH2PS(unsigned Opcode); bool isVMOVUPD(unsigned Opcode); bool isPADDUSW(unsigned Opcode); bool isVRSQRTSS(unsigned Opcode); bool isVPCMOV(unsigned Opcode); bool isVCVTUSI2SD(unsigned Opcode); bool isVMOVUPS(unsigned Opcode); bool isVCVTUSI2SH(unsigned Opcode); bool isVPCMPB(unsigned Opcode); bool isVPGATHERDD(unsigned Opcode); bool isVPCMPD(unsigned Opcode); bool isVCVTUSI2SS(unsigned Opcode); bool isLFENCE(unsigned Opcode); bool isVCVTPH2QQ(unsigned Opcode); bool isVGATHERPF0DPD(unsigned Opcode); bool isSEAMRET(unsigned Opcode); bool isPI2FD(unsigned Opcode); bool isVPGATHERDQ(unsigned Opcode); bool isPCMPESTRI(unsigned Opcode); bool isVPCMPQ(unsigned Opcode); bool isPCMPESTRM(unsigned Opcode); bool isVPCMPW(unsigned Opcode); bool isVGATHERPF0DPS(unsigned Opcode); bool isVPMOVUSDB(unsigned Opcode); bool isPI2FW(unsigned Opcode); bool isSYSEXITQ(unsigned Opcode); bool isCVTPS2DQ(unsigned Opcode); bool isRDPKRU(unsigned Opcode); bool isVPMOVUSDW(unsigned Opcode); bool isPSUBB(unsigned Opcode); bool isPSUBD(unsigned Opcode); bool isVPSHRDD(unsigned Opcode); bool isRETFQ(unsigned Opcode); bool isVPERMT2PD(unsigned Opcode); bool isMOVABS(unsigned Opcode); bool isVPSHRDQ(unsigned Opcode); bool isPSUBQ(unsigned Opcode); bool isVPSHRDW(unsigned Opcode); bool isVPSHLB(unsigned Opcode); bool isPSUBW(unsigned Opcode); bool isVPSHLD(unsigned Opcode); bool isVPERMT2PS(unsigned Opcode); bool isVPUNPCKLWD(unsigned Opcode); bool isVPSHLQ(unsigned Opcode); bool isVPSHLW(unsigned Opcode); bool isLSL(unsigned Opcode); bool isVBROADCASTI128(unsigned Opcode); bool isLSS(unsigned Opcode); bool isVPHADDD(unsigned Opcode); bool isADDPD(unsigned Opcode); bool isVMASKMOVPD(unsigned Opcode); bool isADDPS(unsigned Opcode); bool isINSB(unsigned Opcode); bool isINSD(unsigned Opcode); bool isVPHADDW(unsigned Opcode); bool isLTR(unsigned Opcode); bool isVMASKMOVPS(unsigned Opcode); bool isVCVTPH2UW(unsigned Opcode); bool isINT3(unsigned Opcode); bool isKNOTB(unsigned Opcode); bool isKNOTD(unsigned Opcode); bool isINSW(unsigned Opcode); bool isVBLENDVPD(unsigned Opcode); bool isBLSFILL(unsigned Opcode); bool isMONITOR(unsigned Opcode); bool isKNOTQ(unsigned Opcode); bool isCMPXCHG16B(unsigned Opcode); bool isKNOTW(unsigned Opcode); bool isPEXTRB(unsigned Opcode); bool isVPRORVD(unsigned Opcode); bool isPEXTRD(unsigned Opcode); bool isVAESENCLAST(unsigned Opcode); bool isINTO(unsigned Opcode); bool isVBLENDVPS(unsigned Opcode); bool isVPRORVQ(unsigned Opcode); bool isPEXTRQ(unsigned Opcode); bool isHSUBPD(unsigned Opcode); bool isPEXTRW(unsigned Opcode); bool isFDIVRP(unsigned Opcode); bool isSCASB(unsigned Opcode); bool isF2XM1(unsigned Opcode); bool isSCASD(unsigned Opcode); bool isFISUBR(unsigned Opcode); bool isMOVLPD(unsigned Opcode); bool isHSUBPS(unsigned Opcode); bool isSCASQ(unsigned Opcode); bool isFSTP(unsigned Opcode); bool isVDBPSADBW(unsigned Opcode); bool isADDSD(unsigned Opcode); bool isMOVLPS(unsigned Opcode); bool isSCASW(unsigned Opcode); bool isVCVTW2PH(unsigned Opcode); bool isVPTEST(unsigned Opcode); bool isFLD1(unsigned Opcode); bool isWBINVD(unsigned Opcode); bool isADDSS(unsigned Opcode); bool isPOP(unsigned Opcode); bool isINVD(unsigned Opcode); bool isPOR(unsigned Opcode); bool isAND(unsigned Opcode); bool isFYL2XP1(unsigned Opcode); bool isFSUB(unsigned Opcode); bool isENTER(unsigned Opcode); bool isVMOVSLDUP(unsigned Opcode); bool isADCX(unsigned Opcode); bool isXADD(unsigned Opcode); bool isAESENC(unsigned Opcode); bool isFLDZ(unsigned Opcode); bool isXRSTORS64(unsigned Opcode); bool isVCVTTSH2USI(unsigned Opcode); bool isVMULPD(unsigned Opcode); bool isFDIVP(unsigned Opcode); bool isVGETMANTPD(unsigned Opcode); bool isFDIVR(unsigned Opcode); bool isVPMOVM2D(unsigned Opcode); bool isVMULPH(unsigned Opcode); bool isVGETMANTPH(unsigned Opcode); bool isVPMOVM2B(unsigned Opcode); bool isAOR(unsigned Opcode); bool isVPHSUBSW(unsigned Opcode); bool isVMULPS(unsigned Opcode); bool isVPMOVM2Q(unsigned Opcode); bool isMOVNTDQ(unsigned Opcode); bool isVGETMANTPS(unsigned Opcode); bool isVPCMPESTRI(unsigned Opcode); bool isVPMOVM2W(unsigned Opcode); bool isVPCMPESTRM(unsigned Opcode); bool isSYSENTER(unsigned Opcode); bool isVPERMPD(unsigned Opcode); bool isVCVTTPH2QQ(unsigned Opcode); bool isPUSHF(unsigned Opcode); bool isPXOR(unsigned Opcode); bool isCMPXCHG(unsigned Opcode); bool isVPERMPS(unsigned Opcode); bool isVMRESUME(unsigned Opcode); bool isVPSLLD(unsigned Opcode); bool isVPSLLQ(unsigned Opcode); bool isVEXTRACTF32X4(unsigned Opcode); bool isVPSLLW(unsigned Opcode); bool isBLSI(unsigned Opcode); bool isVEXTRACTF32X8(unsigned Opcode); bool isBLSR(unsigned Opcode); bool isVMULSD(unsigned Opcode); bool isVGETMANTSD(unsigned Opcode); bool isVPCMPEQB(unsigned Opcode); bool isVMULSH(unsigned Opcode); bool isVPCMPEQD(unsigned Opcode); bool isVGETMANTSH(unsigned Opcode); bool isLMSW(unsigned Opcode); bool isFNSTENV(unsigned Opcode); bool isVMULSS(unsigned Opcode); bool isVGETMANTSS(unsigned Opcode); bool isVPCMPEQQ(unsigned Opcode); bool isVPCMPEQW(unsigned Opcode); bool isTDPBSSD(unsigned Opcode); bool isVPHSUBWD(unsigned Opcode); bool isUMWAIT(unsigned Opcode); bool isBSWAP(unsigned Opcode); bool isVCVTUQQ2PD(unsigned Opcode); bool isPEXT(unsigned Opcode); bool isVCVTUQQ2PH(unsigned Opcode); bool isVMOVMSKPD(unsigned Opcode); bool isLOADIWKEY(unsigned Opcode); bool isPMINSB(unsigned Opcode); bool isPMINSD(unsigned Opcode); bool isVCVTUQQ2PS(unsigned Opcode); bool isSTMXCSR(unsigned Opcode); bool isCVTPS2PD(unsigned Opcode); bool isVMOVMSKPS(unsigned Opcode); bool isVPROLD(unsigned Opcode); bool isFPTAN(unsigned Opcode); bool isCVTPS2PI(unsigned Opcode); bool isVMXOFF(unsigned Opcode); bool isXRSTOR64(unsigned Opcode); bool isPMINSW(unsigned Opcode); bool isVMOVSD(unsigned Opcode); bool isVPGATHERQD(unsigned Opcode); bool isVINSERTF32X4(unsigned Opcode); bool isVMOVSH(unsigned Opcode); bool isVPGATHERQQ(unsigned Opcode); bool isVPROLQ(unsigned Opcode); bool isVINSERTF32X8(unsigned Opcode); bool isXSAVE(unsigned Opcode); bool isTDPFP16PS(unsigned Opcode); bool isVCVTTPH2UW(unsigned Opcode); bool isVMOVSS(unsigned Opcode); bool isRDTSCP(unsigned Opcode); bool isVPMOVUSQB(unsigned Opcode); bool isVPMOVUSQD(unsigned Opcode); bool isTDPBSUD(unsigned Opcode); bool isBLCMSK(unsigned Opcode); bool isVPMOVUSQW(unsigned Opcode); bool isVPMADCSWD(unsigned Opcode); bool isVGATHERDPD(unsigned Opcode); bool isSHLD(unsigned Opcode); bool isPMINUB(unsigned Opcode); bool isPMINUD(unsigned Opcode); bool isAESIMC(unsigned Opcode); bool isCVTSD2SI(unsigned Opcode); bool isVLDMXCSR(unsigned Opcode); bool isVCVTSS2SD(unsigned Opcode); bool isVCVTSS2SH(unsigned Opcode); bool isSLDT(unsigned Opcode); bool isVCVTSS2SI(unsigned Opcode); bool isVGATHERDPS(unsigned Opcode); bool isFABS(unsigned Opcode); bool isCVTSD2SS(unsigned Opcode); bool isSHLX(unsigned Opcode); bool isMONITORX(unsigned Opcode); bool isPMINUW(unsigned Opcode); bool isVPMAXSB(unsigned Opcode); bool isVPMAXSD(unsigned Opcode); bool isMOVAPD(unsigned Opcode); bool isENQCMDS(unsigned Opcode); bool isVMOVD(unsigned Opcode); bool isVPMAXSQ(unsigned Opcode); bool isCVTTSS2SI(unsigned Opcode); bool isVPMAXSW(unsigned Opcode); bool isMOVAPS(unsigned Opcode); bool isVPACKUSDW(unsigned Opcode); bool isVFIXUPIMMPD(unsigned Opcode); bool isVMOVQ(unsigned Opcode); bool isVPSHUFHW(unsigned Opcode); bool isPCMPISTRI(unsigned Opcode); bool isVMOVW(unsigned Opcode); #endif // GET_X86_MNEMONIC_TABLES_H #ifdef GET_X86_MNEMONIC_TABLES_CPP #undef GET_X86_MNEMONIC_TABLES_CPP bool isPCMPISTRM(unsigned Opcode) { switch (Opcode) { case PCMPISTRMrm: case PCMPISTRMrr: return true; } return false; } bool isVALIGND(unsigned Opcode) { switch (Opcode) { case VALIGNDZ128rmbi: case VALIGNDZ128rmbik: case VALIGNDZ128rmbikz: case VALIGNDZ128rmi: case VALIGNDZ128rmik: case VALIGNDZ128rmikz: case VALIGNDZ128rri: case VALIGNDZ128rrik: case VALIGNDZ128rrikz: case VALIGNDZ256rmbi: case VALIGNDZ256rmbik: case VALIGNDZ256rmbikz: case VALIGNDZ256rmi: case VALIGNDZ256rmik: case VALIGNDZ256rmikz: case VALIGNDZ256rri: case VALIGNDZ256rrik: case VALIGNDZ256rrikz: case VALIGNDZrmbi: case VALIGNDZrmbik: case VALIGNDZrmbikz: case VALIGNDZrmi: case VALIGNDZrmik: case VALIGNDZrmikz: case VALIGNDZrri: case VALIGNDZrrik: case VALIGNDZrrikz: return true; } return false; } bool isVFMULCPH(unsigned Opcode) { switch (Opcode) { case VFMULCPHZ128rm: case VFMULCPHZ128rmb: case VFMULCPHZ128rmbk: case VFMULCPHZ128rmbkz: case VFMULCPHZ128rmk: case VFMULCPHZ128rmkz: case VFMULCPHZ128rr: case VFMULCPHZ128rrk: case VFMULCPHZ128rrkz: case VFMULCPHZ256rm: case VFMULCPHZ256rmb: case VFMULCPHZ256rmbk: case VFMULCPHZ256rmbkz: case VFMULCPHZ256rmk: case VFMULCPHZ256rmkz: case VFMULCPHZ256rr: case VFMULCPHZ256rrk: case VFMULCPHZ256rrkz: case VFMULCPHZrm: case VFMULCPHZrmb: case VFMULCPHZrmbk: case VFMULCPHZrmbkz: case VFMULCPHZrmk: case VFMULCPHZrmkz: case VFMULCPHZrr: case VFMULCPHZrrb: case VFMULCPHZrrbk: case VFMULCPHZrrbkz: case VFMULCPHZrrk: case VFMULCPHZrrkz: return true; } return false; } bool isVPDPBSSD(unsigned Opcode) { switch (Opcode) { case VPDPBSSDYrm: case VPDPBSSDYrr: case VPDPBSSDrm: case VPDPBSSDrr: return true; } return false; } bool isVFIXUPIMMPS(unsigned Opcode) { switch (Opcode) { case VFIXUPIMMPSZ128rmbi: case VFIXUPIMMPSZ128rmbik: case VFIXUPIMMPSZ128rmbikz: case VFIXUPIMMPSZ128rmi: case VFIXUPIMMPSZ128rmik: case VFIXUPIMMPSZ128rmikz: case VFIXUPIMMPSZ128rri: case VFIXUPIMMPSZ128rrik: case VFIXUPIMMPSZ128rrikz: case VFIXUPIMMPSZ256rmbi: case VFIXUPIMMPSZ256rmbik: case VFIXUPIMMPSZ256rmbikz: case VFIXUPIMMPSZ256rmi: case VFIXUPIMMPSZ256rmik: case VFIXUPIMMPSZ256rmikz: case VFIXUPIMMPSZ256rri: case VFIXUPIMMPSZ256rrik: case VFIXUPIMMPSZ256rrikz: case VFIXUPIMMPSZrmbi: case VFIXUPIMMPSZrmbik: case VFIXUPIMMPSZrmbikz: case VFIXUPIMMPSZrmi: case VFIXUPIMMPSZrmik: case VFIXUPIMMPSZrmikz: case VFIXUPIMMPSZrri: case VFIXUPIMMPSZrrib: case VFIXUPIMMPSZrribk: case VFIXUPIMMPSZrribkz: case VFIXUPIMMPSZrrik: case VFIXUPIMMPSZrrikz: return true; } return false; } bool isVPMOVQ2M(unsigned Opcode) { switch (Opcode) { case VPMOVQ2MZ128rr: case VPMOVQ2MZ256rr: case VPMOVQ2MZrr: return true; } return false; } bool isLDTILECFG(unsigned Opcode) { return Opcode == LDTILECFG; } bool isFADD(unsigned Opcode) { switch (Opcode) { case ADD_F32m: case ADD_F64m: case ADD_FST0r: case ADD_FrST0: return true; } return false; } bool isVALIGNQ(unsigned Opcode) { switch (Opcode) { case VALIGNQZ128rmbi: case VALIGNQZ128rmbik: case VALIGNQZ128rmbikz: case VALIGNQZ128rmi: case VALIGNQZ128rmik: case VALIGNQZ128rmikz: case VALIGNQZ128rri: case VALIGNQZ128rrik: case VALIGNQZ128rrikz: case VALIGNQZ256rmbi: case VALIGNQZ256rmbik: case VALIGNQZ256rmbikz: case VALIGNQZ256rmi: case VALIGNQZ256rmik: case VALIGNQZ256rmikz: case VALIGNQZ256rri: case VALIGNQZ256rrik: case VALIGNQZ256rrikz: case VALIGNQZrmbi: case VALIGNQZrmbik: case VALIGNQZrmbikz: case VALIGNQZrmi: case VALIGNQZrmik: case VALIGNQZrmikz: case VALIGNQZrri: case VALIGNQZrrik: case VALIGNQZrrikz: return true; } return false; } bool isAESENC128KL(unsigned Opcode) { return Opcode == AESENC128KL; } bool isVPMAXUB(unsigned Opcode) { switch (Opcode) { case VPMAXUBYrm: case VPMAXUBYrr: case VPMAXUBZ128rm: case VPMAXUBZ128rmk: case VPMAXUBZ128rmkz: case VPMAXUBZ128rr: case VPMAXUBZ128rrk: case VPMAXUBZ128rrkz: case VPMAXUBZ256rm: case VPMAXUBZ256rmk: case VPMAXUBZ256rmkz: case VPMAXUBZ256rr: case VPMAXUBZ256rrk: case VPMAXUBZ256rrkz: case VPMAXUBZrm: case VPMAXUBZrmk: case VPMAXUBZrmkz: case VPMAXUBZrr: case VPMAXUBZrrk: case VPMAXUBZrrkz: case VPMAXUBrm: case VPMAXUBrr: return true; } return false; } bool isFMULP(unsigned Opcode) { return Opcode == MUL_FPrST0; } bool isVPMAXUD(unsigned Opcode) { switch (Opcode) { case VPMAXUDYrm: case VPMAXUDYrr: case VPMAXUDZ128rm: case VPMAXUDZ128rmb: case VPMAXUDZ128rmbk: case VPMAXUDZ128rmbkz: case VPMAXUDZ128rmk: case VPMAXUDZ128rmkz: case VPMAXUDZ128rr: case VPMAXUDZ128rrk: case VPMAXUDZ128rrkz: case VPMAXUDZ256rm: case VPMAXUDZ256rmb: case VPMAXUDZ256rmbk: case VPMAXUDZ256rmbkz: case VPMAXUDZ256rmk: case VPMAXUDZ256rmkz: case VPMAXUDZ256rr: case VPMAXUDZ256rrk: case VPMAXUDZ256rrkz: case VPMAXUDZrm: case VPMAXUDZrmb: case VPMAXUDZrmbk: case VPMAXUDZrmbkz: case VPMAXUDZrmk: case VPMAXUDZrmkz: case VPMAXUDZrr: case VPMAXUDZrrk: case VPMAXUDZrrkz: case VPMAXUDrm: case VPMAXUDrr: return true; } return false; } bool isCMPCC(unsigned Opcode) { switch (Opcode) { case CMPCCXADDmr32: case CMPCCXADDmr64: return true; } return false; } bool isVSHUFI32X4(unsigned Opcode) { switch (Opcode) { case VSHUFI32X4Z256rmbi: case VSHUFI32X4Z256rmbik: case VSHUFI32X4Z256rmbikz: case VSHUFI32X4Z256rmi: case VSHUFI32X4Z256rmik: case VSHUFI32X4Z256rmikz: case VSHUFI32X4Z256rri: case VSHUFI32X4Z256rrik: case VSHUFI32X4Z256rrikz: case VSHUFI32X4Zrmbi: case VSHUFI32X4Zrmbik: case VSHUFI32X4Zrmbikz: case VSHUFI32X4Zrmi: case VSHUFI32X4Zrmik: case VSHUFI32X4Zrmikz: case VSHUFI32X4Zrri: case VSHUFI32X4Zrrik: case VSHUFI32X4Zrrikz: return true; } return false; } bool isLOOPNE(unsigned Opcode) { return Opcode == LOOPNE; } bool isVPMAXUQ(unsigned Opcode) { switch (Opcode) { case VPMAXUQZ128rm: case VPMAXUQZ128rmb: case VPMAXUQZ128rmbk: case VPMAXUQZ128rmbkz: case VPMAXUQZ128rmk: case VPMAXUQZ128rmkz: case VPMAXUQZ128rr: case VPMAXUQZ128rrk: case VPMAXUQZ128rrkz: case VPMAXUQZ256rm: case VPMAXUQZ256rmb: case VPMAXUQZ256rmbk: case VPMAXUQZ256rmbkz: case VPMAXUQZ256rmk: case VPMAXUQZ256rmkz: case VPMAXUQZ256rr: case VPMAXUQZ256rrk: case VPMAXUQZ256rrkz: case VPMAXUQZrm: case VPMAXUQZrmb: case VPMAXUQZrmbk: case VPMAXUQZrmbkz: case VPMAXUQZrmk: case VPMAXUQZrmkz: case VPMAXUQZrr: case VPMAXUQZrrk: case VPMAXUQZrrkz: return true; } return false; } bool isVCOMPRESSPD(unsigned Opcode) { switch (Opcode) { case VCOMPRESSPDZ128mr: case VCOMPRESSPDZ128mrk: case VCOMPRESSPDZ128rr: case VCOMPRESSPDZ128rrk: case VCOMPRESSPDZ128rrkz: case VCOMPRESSPDZ256mr: case VCOMPRESSPDZ256mrk: case VCOMPRESSPDZ256rr: case VCOMPRESSPDZ256rrk: case VCOMPRESSPDZ256rrkz: case VCOMPRESSPDZmr: case VCOMPRESSPDZmrk: case VCOMPRESSPDZrr: case VCOMPRESSPDZrrk: case VCOMPRESSPDZrrkz: return true; } return false; } bool isVPMAXUW(unsigned Opcode) { switch (Opcode) { case VPMAXUWYrm: case VPMAXUWYrr: case VPMAXUWZ128rm: case VPMAXUWZ128rmk: case VPMAXUWZ128rmkz: case VPMAXUWZ128rr: case VPMAXUWZ128rrk: case VPMAXUWZ128rrkz: case VPMAXUWZ256rm: case VPMAXUWZ256rmk: case VPMAXUWZ256rmkz: case VPMAXUWZ256rr: case VPMAXUWZ256rrk: case VPMAXUWZ256rrkz: case VPMAXUWZrm: case VPMAXUWZrmk: case VPMAXUWZrmkz: case VPMAXUWZrr: case VPMAXUWZrrk: case VPMAXUWZrrkz: case VPMAXUWrm: case VPMAXUWrr: return true; } return false; } bool isVPMOVB2M(unsigned Opcode) { switch (Opcode) { case VPMOVB2MZ128rr: case VPMOVB2MZ256rr: case VPMOVB2MZrr: return true; } return false; } bool isVANDPD(unsigned Opcode) { switch (Opcode) { case VANDPDYrm: case VANDPDYrr: case VANDPDZ128rm: case VANDPDZ128rmb: case VANDPDZ128rmbk: case VANDPDZ128rmbkz: case VANDPDZ128rmk: case VANDPDZ128rmkz: case VANDPDZ128rr: case VANDPDZ128rrk: case VANDPDZ128rrkz: case VANDPDZ256rm: case VANDPDZ256rmb: case VANDPDZ256rmbk: case VANDPDZ256rmbkz: case VANDPDZ256rmk: case VANDPDZ256rmkz: case VANDPDZ256rr: case VANDPDZ256rrk: case VANDPDZ256rrkz: case VANDPDZrm: case VANDPDZrmb: case VANDPDZrmbk: case VANDPDZrmbkz: case VANDPDZrmk: case VANDPDZrmkz: case VANDPDZrr: case VANDPDZrrk: case VANDPDZrrkz: case VANDPDrm: case VANDPDrr: return true; } return false; } bool isVCOMPRESSPS(unsigned Opcode) { switch (Opcode) { case VCOMPRESSPSZ128mr: case VCOMPRESSPSZ128mrk: case VCOMPRESSPSZ128rr: case VCOMPRESSPSZ128rrk: case VCOMPRESSPSZ128rrkz: case VCOMPRESSPSZ256mr: case VCOMPRESSPSZ256mrk: case VCOMPRESSPSZ256rr: case VCOMPRESSPSZ256rrk: case VCOMPRESSPSZ256rrkz: case VCOMPRESSPSZmr: case VCOMPRESSPSZmrk: case VCOMPRESSPSZrr: case VCOMPRESSPSZrrk: case VCOMPRESSPSZrrkz: return true; } return false; } bool isVPDPBSUD(unsigned Opcode) { switch (Opcode) { case VPDPBSUDYrm: case VPDPBSUDYrr: case VPDPBSUDrm: case VPDPBSUDrr: return true; } return false; } bool isPFRCPIT1(unsigned Opcode) { switch (Opcode) { case PFRCPIT1rm: case PFRCPIT1rr: return true; } return false; } bool isPFRCPIT2(unsigned Opcode) { switch (Opcode) { case PFRCPIT2rm: case PFRCPIT2rr: return true; } return false; } bool isWRPKRU(unsigned Opcode) { return Opcode == WRPKRUr; } bool isVANDPS(unsigned Opcode) { switch (Opcode) { case VANDPSYrm: case VANDPSYrr: case VANDPSZ128rm: case VANDPSZ128rmb: case VANDPSZ128rmbk: case VANDPSZ128rmbkz: case VANDPSZ128rmk: case VANDPSZ128rmkz: case VANDPSZ128rr: case VANDPSZ128rrk: case VANDPSZ128rrkz: case VANDPSZ256rm: case VANDPSZ256rmb: case VANDPSZ256rmbk: case VANDPSZ256rmbkz: case VANDPSZ256rmk: case VANDPSZ256rmkz: case VANDPSZ256rr: case VANDPSZ256rrk: case VANDPSZ256rrkz: case VANDPSZrm: case VANDPSZrmb: case VANDPSZrmbk: case VANDPSZrmbkz: case VANDPSZrmk: case VANDPSZrmkz: case VANDPSZrr: case VANDPSZrrk: case VANDPSZrrkz: case VANDPSrm: case VANDPSrr: return true; } return false; } bool isWRUSSD(unsigned Opcode) { return Opcode == WRUSSD; } bool isVMPTRLD(unsigned Opcode) { return Opcode == VMPTRLDm; } bool isWRUSSQ(unsigned Opcode) { return Opcode == WRUSSQ; } bool isAESDECLAST(unsigned Opcode) { switch (Opcode) { case AESDECLASTrm: case AESDECLASTrr: return true; } return false; } bool isSYSCALL(unsigned Opcode) { return Opcode == SYSCALL; } bool isVFIXUPIMMSD(unsigned Opcode) { switch (Opcode) { case VFIXUPIMMSDZrmi: case VFIXUPIMMSDZrmik: case VFIXUPIMMSDZrmikz: case VFIXUPIMMSDZrri: case VFIXUPIMMSDZrrib: case VFIXUPIMMSDZrribk: case VFIXUPIMMSDZrribkz: case VFIXUPIMMSDZrrik: case VFIXUPIMMSDZrrikz: return true; } return false; } bool isVPRORD(unsigned Opcode) { switch (Opcode) { case VPRORDZ128mbi: case VPRORDZ128mbik: case VPRORDZ128mbikz: case VPRORDZ128mi: case VPRORDZ128mik: case VPRORDZ128mikz: case VPRORDZ128ri: case VPRORDZ128rik: case VPRORDZ128rikz: case VPRORDZ256mbi: case VPRORDZ256mbik: case VPRORDZ256mbikz: case VPRORDZ256mi: case VPRORDZ256mik: case VPRORDZ256mikz: case VPRORDZ256ri: case VPRORDZ256rik: case VPRORDZ256rikz: case VPRORDZmbi: case VPRORDZmbik: case VPRORDZmbikz: case VPRORDZmi: case VPRORDZmik: case VPRORDZmikz: case VPRORDZri: case VPRORDZrik: case VPRORDZrikz: return true; } return false; } bool isTEST(unsigned Opcode) { switch (Opcode) { case TEST16i16: case TEST16mi: case TEST16mr: case TEST16ri: case TEST16rr: case TEST32i32: case TEST32mi: case TEST32mr: case TEST32ri: case TEST32rr: case TEST64i32: case TEST64mi32: case TEST64mr: case TEST64ri32: case TEST64rr: case TEST8i8: case TEST8mi: case TEST8mr: case TEST8ri: case TEST8rr: return true; } return false; } bool isSHA1MSG1(unsigned Opcode) { switch (Opcode) { case SHA1MSG1rm: case SHA1MSG1rr: return true; } return false; } bool isSHA1MSG2(unsigned Opcode) { switch (Opcode) { case SHA1MSG2rm: case SHA1MSG2rr: return true; } return false; } bool isVFMULCSH(unsigned Opcode) { switch (Opcode) { case VFMULCSHZrm: case VFMULCSHZrmk: case VFMULCSHZrmkz: case VFMULCSHZrr: case VFMULCSHZrrb: case VFMULCSHZrrbk: case VFMULCSHZrrbkz: case VFMULCSHZrrk: case VFMULCSHZrrkz: return true; } return false; } bool isMOVNTDQA(unsigned Opcode) { return Opcode == MOVNTDQArm; } bool isVFIXUPIMMSS(unsigned Opcode) { switch (Opcode) { case VFIXUPIMMSSZrmi: case VFIXUPIMMSSZrmik: case VFIXUPIMMSSZrmikz: case VFIXUPIMMSSZrri: case VFIXUPIMMSSZrrib: case VFIXUPIMMSSZrribk: case VFIXUPIMMSSZrribkz: case VFIXUPIMMSSZrrik: case VFIXUPIMMSSZrrikz: return true; } return false; } bool isADOX(unsigned Opcode) { switch (Opcode) { case ADOX32rm: case ADOX32rr: case ADOX64rm: case ADOX64rr: return true; } return false; } bool isVPRORQ(unsigned Opcode) { switch (Opcode) { case VPRORQZ128mbi: case VPRORQZ128mbik: case VPRORQZ128mbikz: case VPRORQZ128mi: case VPRORQZ128mik: case VPRORQZ128mikz: case VPRORQZ128ri: case VPRORQZ128rik: case VPRORQZ128rikz: case VPRORQZ256mbi: case VPRORQZ256mbik: case VPRORQZ256mbikz: case VPRORQZ256mi: case VPRORQZ256mik: case VPRORQZ256mikz: case VPRORQZ256ri: case VPRORQZ256rik: case VPRORQZ256rikz: case VPRORQZmbi: case VPRORQZmbik: case VPRORQZmbikz: case VPRORQZmi: case VPRORQZmik: case VPRORQZmikz: case VPRORQZri: case VPRORQZrik: case VPRORQZrikz: return true; } return false; } bool isVSCATTERPF1DPD(unsigned Opcode) { return Opcode == VSCATTERPF1DPDm; } bool isVPSRLDQ(unsigned Opcode) { switch (Opcode) { case VPSRLDQYri: case VPSRLDQZ128mi: case VPSRLDQZ128ri: case VPSRLDQZ256mi: case VPSRLDQZ256ri: case VPSRLDQZmi: case VPSRLDQZri: case VPSRLDQri: return true; } return false; } bool isVPMOVUSWB(unsigned Opcode) { switch (Opcode) { case VPMOVUSWBZ128mr: case VPMOVUSWBZ128mrk: case VPMOVUSWBZ128rr: case VPMOVUSWBZ128rrk: case VPMOVUSWBZ128rrkz: case VPMOVUSWBZ256mr: case VPMOVUSWBZ256mrk: case VPMOVUSWBZ256rr: case VPMOVUSWBZ256rrk: case VPMOVUSWBZ256rrkz: case VPMOVUSWBZmr: case VPMOVUSWBZmrk: case VPMOVUSWBZrr: case VPMOVUSWBZrrk: case VPMOVUSWBZrrkz: return true; } return false; } bool isVSCATTERPF1DPS(unsigned Opcode) { return Opcode == VSCATTERPF1DPSm; } bool isFICOMP(unsigned Opcode) { switch (Opcode) { case FICOMP16m: case FICOMP32m: return true; } return false; } bool isFBSTP(unsigned Opcode) { return Opcode == FBSTPm; } bool isVPSHUFLW(unsigned Opcode) { switch (Opcode) { case VPSHUFLWYmi: case VPSHUFLWYri: case VPSHUFLWZ128mi: case VPSHUFLWZ128mik: case VPSHUFLWZ128mikz: case VPSHUFLWZ128ri: case VPSHUFLWZ128rik: case VPSHUFLWZ128rikz: case VPSHUFLWZ256mi: case VPSHUFLWZ256mik: case VPSHUFLWZ256mikz: case VPSHUFLWZ256ri: case VPSHUFLWZ256rik: case VPSHUFLWZ256rikz: case VPSHUFLWZmi: case VPSHUFLWZmik: case VPSHUFLWZmikz: case VPSHUFLWZri: case VPSHUFLWZrik: case VPSHUFLWZrikz: case VPSHUFLWmi: case VPSHUFLWri: return true; } return false; } bool isVPSCATTERDD(unsigned Opcode) { switch (Opcode) { case VPSCATTERDDZ128mr: case VPSCATTERDDZ256mr: case VPSCATTERDDZmr: return true; } return false; } bool isFNINIT(unsigned Opcode) { return Opcode == FNINIT; } bool isMOVNTPD(unsigned Opcode) { return Opcode == MOVNTPDmr; } bool isUIRET(unsigned Opcode) { return Opcode == UIRET; } bool isPINSRB(unsigned Opcode) { switch (Opcode) { case PINSRBrm: case PINSRBrr: return true; } return false; } bool isPINSRD(unsigned Opcode) { switch (Opcode) { case PINSRDrm: case PINSRDrr: return true; } return false; } bool isSHRD(unsigned Opcode) { switch (Opcode) { case SHRD16mrCL: case SHRD16mri8: case SHRD16rrCL: case SHRD16rri8: case SHRD32mrCL: case SHRD32mri8: case SHRD32rrCL: case SHRD32rri8: case SHRD64mrCL: case SHRD64mri8: case SHRD64rrCL: case SHRD64rri8: return true; } return false; } bool isVPSCATTERDQ(unsigned Opcode) { switch (Opcode) { case VPSCATTERDQZ128mr: case VPSCATTERDQZ256mr: case VPSCATTERDQZmr: return true; } return false; } bool isMOVNTPS(unsigned Opcode) { return Opcode == MOVNTPSmr; } bool isVGETEXPPD(unsigned Opcode) { switch (Opcode) { case VGETEXPPDZ128m: case VGETEXPPDZ128mb: case VGETEXPPDZ128mbk: case VGETEXPPDZ128mbkz: case VGETEXPPDZ128mk: case VGETEXPPDZ128mkz: case VGETEXPPDZ128r: case VGETEXPPDZ128rk: case VGETEXPPDZ128rkz: case VGETEXPPDZ256m: case VGETEXPPDZ256mb: case VGETEXPPDZ256mbk: case VGETEXPPDZ256mbkz: case VGETEXPPDZ256mk: case VGETEXPPDZ256mkz: case VGETEXPPDZ256r: case VGETEXPPDZ256rk: case VGETEXPPDZ256rkz: case VGETEXPPDZm: case VGETEXPPDZmb: case VGETEXPPDZmbk: case VGETEXPPDZmbkz: case VGETEXPPDZmk: case VGETEXPPDZmkz: case VGETEXPPDZr: case VGETEXPPDZrb: case VGETEXPPDZrbk: case VGETEXPPDZrbkz: case VGETEXPPDZrk: case VGETEXPPDZrkz: return true; } return false; } bool isVRANGEPD(unsigned Opcode) { switch (Opcode) { case VRANGEPDZ128rmbi: case VRANGEPDZ128rmbik: case VRANGEPDZ128rmbikz: case VRANGEPDZ128rmi: case VRANGEPDZ128rmik: case VRANGEPDZ128rmikz: case VRANGEPDZ128rri: case VRANGEPDZ128rrik: case VRANGEPDZ128rrikz: case VRANGEPDZ256rmbi: case VRANGEPDZ256rmbik: case VRANGEPDZ256rmbikz: case VRANGEPDZ256rmi: case VRANGEPDZ256rmik: case VRANGEPDZ256rmikz: case VRANGEPDZ256rri: case VRANGEPDZ256rrik: case VRANGEPDZ256rrikz: case VRANGEPDZrmbi: case VRANGEPDZrmbik: case VRANGEPDZrmbikz: case VRANGEPDZrmi: case VRANGEPDZrmik: case VRANGEPDZrmikz: case VRANGEPDZrri: case VRANGEPDZrrib: case VRANGEPDZrribk: case VRANGEPDZrribkz: case VRANGEPDZrrik: case VRANGEPDZrrikz: return true; } return false; } bool isPFRCP(unsigned Opcode) { switch (Opcode) { case PFRCPrm: case PFRCPrr: return true; } return false; } bool isVGETEXPPH(unsigned Opcode) { switch (Opcode) { case VGETEXPPHZ128m: case VGETEXPPHZ128mb: case VGETEXPPHZ128mbk: case VGETEXPPHZ128mbkz: case VGETEXPPHZ128mk: case VGETEXPPHZ128mkz: case VGETEXPPHZ128r: case VGETEXPPHZ128rk: case VGETEXPPHZ128rkz: case VGETEXPPHZ256m: case VGETEXPPHZ256mb: case VGETEXPPHZ256mbk: case VGETEXPPHZ256mbkz: case VGETEXPPHZ256mk: case VGETEXPPHZ256mkz: case VGETEXPPHZ256r: case VGETEXPPHZ256rk: case VGETEXPPHZ256rkz: case VGETEXPPHZm: case VGETEXPPHZmb: case VGETEXPPHZmbk: case VGETEXPPHZmbkz: case VGETEXPPHZmk: case VGETEXPPHZmkz: case VGETEXPPHZr: case VGETEXPPHZrb: case VGETEXPPHZrbk: case VGETEXPPHZrbkz: case VGETEXPPHZrk: case VGETEXPPHZrkz: return true; } return false; } bool isPINSRQ(unsigned Opcode) { switch (Opcode) { case PINSRQrm: case PINSRQrr: return true; } return false; } bool isVPROTB(unsigned Opcode) { switch (Opcode) { case VPROTBmi: case VPROTBmr: case VPROTBri: case VPROTBrm: case VPROTBrr: case VPROTBrr_REV: return true; } return false; } bool isVPROTD(unsigned Opcode) { switch (Opcode) { case VPROTDmi: case VPROTDmr: case VPROTDri: case VPROTDrm: case VPROTDrr: case VPROTDrr_REV: return true; } return false; } bool isSEAMCALL(unsigned Opcode) { return Opcode == SEAMCALL; } bool isPINSRW(unsigned Opcode) { switch (Opcode) { case MMX_PINSRWrm: case MMX_PINSRWrr: case PINSRWrm: case PINSRWrr: return true; } return false; } bool isSHRX(unsigned Opcode) { switch (Opcode) { case SHRX32rm: case SHRX32rr: case SHRX64rm: case SHRX64rr: return true; } return false; } bool isVGETEXPPS(unsigned Opcode) { switch (Opcode) { case VGETEXPPSZ128m: case VGETEXPPSZ128mb: case VGETEXPPSZ128mbk: case VGETEXPPSZ128mbkz: case VGETEXPPSZ128mk: case VGETEXPPSZ128mkz: case VGETEXPPSZ128r: case VGETEXPPSZ128rk: case VGETEXPPSZ128rkz: case VGETEXPPSZ256m: case VGETEXPPSZ256mb: case VGETEXPPSZ256mbk: case VGETEXPPSZ256mbkz: case VGETEXPPSZ256mk: case VGETEXPPSZ256mkz: case VGETEXPPSZ256r: case VGETEXPPSZ256rk: case VGETEXPPSZ256rkz: case VGETEXPPSZm: case VGETEXPPSZmb: case VGETEXPPSZmbk: case VGETEXPPSZmbkz: case VGETEXPPSZmk: case VGETEXPPSZmkz: case VGETEXPPSZr: case VGETEXPPSZrb: case VGETEXPPSZrbk: case VGETEXPPSZrbkz: case VGETEXPPSZrk: case VGETEXPPSZrkz: return true; } return false; } bool isVRANGEPS(unsigned Opcode) { switch (Opcode) { case VRANGEPSZ128rmbi: case VRANGEPSZ128rmbik: case VRANGEPSZ128rmbikz: case VRANGEPSZ128rmi: case VRANGEPSZ128rmik: case VRANGEPSZ128rmikz: case VRANGEPSZ128rri: case VRANGEPSZ128rrik: case VRANGEPSZ128rrikz: case VRANGEPSZ256rmbi: case VRANGEPSZ256rmbik: case VRANGEPSZ256rmbikz: case VRANGEPSZ256rmi: case VRANGEPSZ256rmik: case VRANGEPSZ256rmikz: case VRANGEPSZ256rri: case VRANGEPSZ256rrik: case VRANGEPSZ256rrikz: case VRANGEPSZrmbi: case VRANGEPSZrmbik: case VRANGEPSZrmbikz: case VRANGEPSZrmi: case VRANGEPSZrmik: case VRANGEPSZrmikz: case VRANGEPSZrri: case VRANGEPSZrrib: case VRANGEPSZrribk: case VRANGEPSZrribkz: case VRANGEPSZrrik: case VRANGEPSZrrikz: return true; } return false; } bool isPABSB(unsigned Opcode) { switch (Opcode) { case MMX_PABSBrm: case MMX_PABSBrr: case PABSBrm: case PABSBrr: return true; } return false; } bool isPABSD(unsigned Opcode) { switch (Opcode) { case MMX_PABSDrm: case MMX_PABSDrr: case PABSDrm: case PABSDrr: return true; } return false; } bool isVPROTQ(unsigned Opcode) { switch (Opcode) { case VPROTQmi: case VPROTQmr: case VPROTQri: case VPROTQrm: case VPROTQrr: case VPROTQrr_REV: return true; } return false; } bool isVPROTW(unsigned Opcode) { switch (Opcode) { case VPROTWmi: case VPROTWmr: case VPROTWri: case VPROTWrm: case VPROTWrr: case VPROTWrr_REV: return true; } return false; } bool isVCVTTPS2UDQ(unsigned Opcode) { switch (Opcode) { case VCVTTPS2UDQZ128rm: case VCVTTPS2UDQZ128rmb: case VCVTTPS2UDQZ128rmbk: case VCVTTPS2UDQZ128rmbkz: case VCVTTPS2UDQZ128rmk: case VCVTTPS2UDQZ128rmkz: case VCVTTPS2UDQZ128rr: case VCVTTPS2UDQZ128rrk: case VCVTTPS2UDQZ128rrkz: case VCVTTPS2UDQZ256rm: case VCVTTPS2UDQZ256rmb: case VCVTTPS2UDQZ256rmbk: case VCVTTPS2UDQZ256rmbkz: case VCVTTPS2UDQZ256rmk: case VCVTTPS2UDQZ256rmkz: case VCVTTPS2UDQZ256rr: case VCVTTPS2UDQZ256rrk: case VCVTTPS2UDQZ256rrkz: case VCVTTPS2UDQZrm: case VCVTTPS2UDQZrmb: case VCVTTPS2UDQZrmbk: case VCVTTPS2UDQZrmbkz: case VCVTTPS2UDQZrmk: case VCVTTPS2UDQZrmkz: case VCVTTPS2UDQZrr: case VCVTTPS2UDQZrrb: case VCVTTPS2UDQZrrbk: case VCVTTPS2UDQZrrbkz: case VCVTTPS2UDQZrrk: case VCVTTPS2UDQZrrkz: return true; } return false; } bool isFXRSTOR(unsigned Opcode) { return Opcode == FXRSTOR; } bool isVMOVDQU16(unsigned Opcode) { switch (Opcode) { case VMOVDQU16Z128mr: case VMOVDQU16Z128mrk: case VMOVDQU16Z128rm: case VMOVDQU16Z128rmk: case VMOVDQU16Z128rmkz: case VMOVDQU16Z128rr: case VMOVDQU16Z128rr_REV: case VMOVDQU16Z128rrk: case VMOVDQU16Z128rrk_REV: case VMOVDQU16Z128rrkz: case VMOVDQU16Z128rrkz_REV: case VMOVDQU16Z256mr: case VMOVDQU16Z256mrk: case VMOVDQU16Z256rm: case VMOVDQU16Z256rmk: case VMOVDQU16Z256rmkz: case VMOVDQU16Z256rr: case VMOVDQU16Z256rr_REV: case VMOVDQU16Z256rrk: case VMOVDQU16Z256rrk_REV: case VMOVDQU16Z256rrkz: case VMOVDQU16Z256rrkz_REV: case VMOVDQU16Zmr: case VMOVDQU16Zmrk: case VMOVDQU16Zrm: case VMOVDQU16Zrmk: case VMOVDQU16Zrmkz: case VMOVDQU16Zrr: case VMOVDQU16Zrr_REV: case VMOVDQU16Zrrk: case VMOVDQU16Zrrk_REV: case VMOVDQU16Zrrkz: case VMOVDQU16Zrrkz_REV: return true; } return false; } bool isPABSW(unsigned Opcode) { switch (Opcode) { case MMX_PABSWrm: case MMX_PABSWrr: case PABSWrm: case PABSWrr: return true; } return false; } bool isCVTDQ2PD(unsigned Opcode) { switch (Opcode) { case CVTDQ2PDrm: case CVTDQ2PDrr: return true; } return false; } bool isCVTDQ2PS(unsigned Opcode) { switch (Opcode) { case CVTDQ2PSrm: case CVTDQ2PSrr: return true; } return false; } bool isXOR(unsigned Opcode) { switch (Opcode) { case XOR16i16: case XOR16mi: case XOR16mi8: case XOR16mr: case XOR16ri: case XOR16ri8: case XOR16rm: case XOR16rr: case XOR16rr_REV: case XOR32i32: case XOR32mi: case XOR32mi8: case XOR32mr: case XOR32ri: case XOR32ri8: case XOR32rm: case XOR32rr: case XOR32rr_REV: case XOR64i32: case XOR64mi32: case XOR64mi8: case XOR64mr: case XOR64ri32: case XOR64ri8: case XOR64rm: case XOR64rr: case XOR64rr_REV: case XOR8i8: case XOR8mi: case XOR8mi8: case XOR8mr: case XOR8ri: case XOR8ri8: case XOR8rm: case XOR8rr: case XOR8rr_REV: return true; } return false; } bool isINC(unsigned Opcode) { switch (Opcode) { case INC16m: case INC16r: case INC16r_alt: case INC32m: case INC32r: case INC32r_alt: case INC64m: case INC64r: case INC8m: case INC8r: return true; } return false; } bool isVMCALL(unsigned Opcode) { return Opcode == VMCALL; } bool isPACKSSDW(unsigned Opcode) { switch (Opcode) { case MMX_PACKSSDWrm: case MMX_PACKSSDWrr: case PACKSSDWrm: case PACKSSDWrr: return true; } return false; } bool isPSUBUSB(unsigned Opcode) { switch (Opcode) { case MMX_PSUBUSBrm: case MMX_PSUBUSBrr: case PSUBUSBrm: case PSUBUSBrr: return true; } return false; } bool isINT(unsigned Opcode) { return Opcode == INT; } bool isMOVNTSD(unsigned Opcode) { return Opcode == MOVNTSD; } bool isVPMOVZXBD(unsigned Opcode) { switch (Opcode) { case VPMOVZXBDYrm: case VPMOVZXBDYrr: case VPMOVZXBDZ128rm: case VPMOVZXBDZ128rmk: case VPMOVZXBDZ128rmkz: case VPMOVZXBDZ128rr: case VPMOVZXBDZ128rrk: case VPMOVZXBDZ128rrkz: case VPMOVZXBDZ256rm: case VPMOVZXBDZ256rmk: case VPMOVZXBDZ256rmkz: case VPMOVZXBDZ256rr: case VPMOVZXBDZ256rrk: case VPMOVZXBDZ256rrkz: case VPMOVZXBDZrm: case VPMOVZXBDZrmk: case VPMOVZXBDZrmkz: case VPMOVZXBDZrr: case VPMOVZXBDZrrk: case VPMOVZXBDZrrkz: case VPMOVZXBDrm: case VPMOVZXBDrr: return true; } return false; } bool isVCVTUDQ2PD(unsigned Opcode) { switch (Opcode) { case VCVTUDQ2PDZ128rm: case VCVTUDQ2PDZ128rmb: case VCVTUDQ2PDZ128rmbk: case VCVTUDQ2PDZ128rmbkz: case VCVTUDQ2PDZ128rmk: case VCVTUDQ2PDZ128rmkz: case VCVTUDQ2PDZ128rr: case VCVTUDQ2PDZ128rrk: case VCVTUDQ2PDZ128rrkz: case VCVTUDQ2PDZ256rm: case VCVTUDQ2PDZ256rmb: case VCVTUDQ2PDZ256rmbk: case VCVTUDQ2PDZ256rmbkz: case VCVTUDQ2PDZ256rmk: case VCVTUDQ2PDZ256rmkz: case VCVTUDQ2PDZ256rr: case VCVTUDQ2PDZ256rrk: case VCVTUDQ2PDZ256rrkz: case VCVTUDQ2PDZrm: case VCVTUDQ2PDZrmb: case VCVTUDQ2PDZrmbk: case VCVTUDQ2PDZrmbkz: case VCVTUDQ2PDZrmk: case VCVTUDQ2PDZrmkz: case VCVTUDQ2PDZrr: case VCVTUDQ2PDZrrk: case VCVTUDQ2PDZrrkz: return true; } return false; } bool isVCVTUDQ2PH(unsigned Opcode) { switch (Opcode) { case VCVTUDQ2PHZ128rm: case VCVTUDQ2PHZ128rmb: case VCVTUDQ2PHZ128rmbk: case VCVTUDQ2PHZ128rmbkz: case VCVTUDQ2PHZ128rmk: case VCVTUDQ2PHZ128rmkz: case VCVTUDQ2PHZ128rr: case VCVTUDQ2PHZ128rrk: case VCVTUDQ2PHZ128rrkz: case VCVTUDQ2PHZ256rm: case VCVTUDQ2PHZ256rmb: case VCVTUDQ2PHZ256rmbk: case VCVTUDQ2PHZ256rmbkz: case VCVTUDQ2PHZ256rmk: case VCVTUDQ2PHZ256rmkz: case VCVTUDQ2PHZ256rr: case VCVTUDQ2PHZ256rrk: case VCVTUDQ2PHZ256rrkz: case VCVTUDQ2PHZrm: case VCVTUDQ2PHZrmb: case VCVTUDQ2PHZrmbk: case VCVTUDQ2PHZrmbkz: case VCVTUDQ2PHZrmk: case VCVTUDQ2PHZrmkz: case VCVTUDQ2PHZrr: case VCVTUDQ2PHZrrb: case VCVTUDQ2PHZrrbk: case VCVTUDQ2PHZrrbkz: case VCVTUDQ2PHZrrk: case VCVTUDQ2PHZrrkz: return true; } return false; } bool isVMOVDQU32(unsigned Opcode) { switch (Opcode) { case VMOVDQU32Z128mr: case VMOVDQU32Z128mrk: case VMOVDQU32Z128rm: case VMOVDQU32Z128rmk: case VMOVDQU32Z128rmkz: case VMOVDQU32Z128rr: case VMOVDQU32Z128rr_REV: case VMOVDQU32Z128rrk: case VMOVDQU32Z128rrk_REV: case VMOVDQU32Z128rrkz: case VMOVDQU32Z128rrkz_REV: case VMOVDQU32Z256mr: case VMOVDQU32Z256mrk: case VMOVDQU32Z256rm: case VMOVDQU32Z256rmk: case VMOVDQU32Z256rmkz: case VMOVDQU32Z256rr: case VMOVDQU32Z256rr_REV: case VMOVDQU32Z256rrk: case VMOVDQU32Z256rrk_REV: case VMOVDQU32Z256rrkz: case VMOVDQU32Z256rrkz_REV: case VMOVDQU32Zmr: case VMOVDQU32Zmrk: case VMOVDQU32Zrm: case VMOVDQU32Zrmk: case VMOVDQU32Zrmkz: case VMOVDQU32Zrr: case VMOVDQU32Zrr_REV: case VMOVDQU32Zrrk: case VMOVDQU32Zrrk_REV: case VMOVDQU32Zrrkz: case VMOVDQU32Zrrkz_REV: return true; } return false; } bool isPSUBUSW(unsigned Opcode) { switch (Opcode) { case MMX_PSUBUSWrm: case MMX_PSUBUSWrr: case PSUBUSWrm: case PSUBUSWrr: return true; } return false; } bool isMOVNTSS(unsigned Opcode) { return Opcode == MOVNTSS; } bool isVGETEXPSD(unsigned Opcode) { switch (Opcode) { case VGETEXPSDZm: case VGETEXPSDZmk: case VGETEXPSDZmkz: case VGETEXPSDZr: case VGETEXPSDZrb: case VGETEXPSDZrbk: case VGETEXPSDZrbkz: case VGETEXPSDZrk: case VGETEXPSDZrkz: return true; } return false; } bool isVPMOVZXBQ(unsigned Opcode) { switch (Opcode) { case VPMOVZXBQYrm: case VPMOVZXBQYrr: case VPMOVZXBQZ128rm: case VPMOVZXBQZ128rmk: case VPMOVZXBQZ128rmkz: case VPMOVZXBQZ128rr: case VPMOVZXBQZ128rrk: case VPMOVZXBQZ128rrkz: case VPMOVZXBQZ256rm: case VPMOVZXBQZ256rmk: case VPMOVZXBQZ256rmkz: case VPMOVZXBQZ256rr: case VPMOVZXBQZ256rrk: case VPMOVZXBQZ256rrkz: case VPMOVZXBQZrm: case VPMOVZXBQZrmk: case VPMOVZXBQZrmkz: case VPMOVZXBQZrr: case VPMOVZXBQZrrk: case VPMOVZXBQZrrkz: case VPMOVZXBQrm: case VPMOVZXBQrr: return true; } return false; } bool isVGETEXPSH(unsigned Opcode) { switch (Opcode) { case VGETEXPSHZm: case VGETEXPSHZmk: case VGETEXPSHZmkz: case VGETEXPSHZr: case VGETEXPSHZrb: case VGETEXPSHZrbk: case VGETEXPSHZrbkz: case VGETEXPSHZrk: case VGETEXPSHZrkz: return true; } return false; } bool isVCVTNEEBF162PS(unsigned Opcode) { switch (Opcode) { case VCVTNEEBF162PSYrm: case VCVTNEEBF162PSrm: return true; } return false; } bool isVRANGESD(unsigned Opcode) { switch (Opcode) { case VRANGESDZrmi: case VRANGESDZrmik: case VRANGESDZrmikz: case VRANGESDZrri: case VRANGESDZrrib: case VRANGESDZrribk: case VRANGESDZrribkz: case VRANGESDZrrik: case VRANGESDZrrikz: return true; } return false; } bool isVCVTUDQ2PS(unsigned Opcode) { switch (Opcode) { case VCVTUDQ2PSZ128rm: case VCVTUDQ2PSZ128rmb: case VCVTUDQ2PSZ128rmbk: case VCVTUDQ2PSZ128rmbkz: case VCVTUDQ2PSZ128rmk: case VCVTUDQ2PSZ128rmkz: case VCVTUDQ2PSZ128rr: case VCVTUDQ2PSZ128rrk: case VCVTUDQ2PSZ128rrkz: case VCVTUDQ2PSZ256rm: case VCVTUDQ2PSZ256rmb: case VCVTUDQ2PSZ256rmbk: case VCVTUDQ2PSZ256rmbkz: case VCVTUDQ2PSZ256rmk: case VCVTUDQ2PSZ256rmkz: case VCVTUDQ2PSZ256rr: case VCVTUDQ2PSZ256rrk: case VCVTUDQ2PSZ256rrkz: case VCVTUDQ2PSZrm: case VCVTUDQ2PSZrmb: case VCVTUDQ2PSZrmbk: case VCVTUDQ2PSZrmbkz: case VCVTUDQ2PSZrmk: case VCVTUDQ2PSZrmkz: case VCVTUDQ2PSZrr: case VCVTUDQ2PSZrrb: case VCVTUDQ2PSZrrbk: case VCVTUDQ2PSZrrbkz: case VCVTUDQ2PSZrrk: case VCVTUDQ2PSZrrkz: return true; } return false; } bool isVPMOVZXBW(unsigned Opcode) { switch (Opcode) { case VPMOVZXBWYrm: case VPMOVZXBWYrr: case VPMOVZXBWZ128rm: case VPMOVZXBWZ128rmk: case VPMOVZXBWZ128rmkz: case VPMOVZXBWZ128rr: case VPMOVZXBWZ128rrk: case VPMOVZXBWZ128rrkz: case VPMOVZXBWZ256rm: case VPMOVZXBWZ256rmk: case VPMOVZXBWZ256rmkz: case VPMOVZXBWZ256rr: case VPMOVZXBWZ256rrk: case VPMOVZXBWZ256rrkz: case VPMOVZXBWZrm: case VPMOVZXBWZrmk: case VPMOVZXBWZrmkz: case VPMOVZXBWZrr: case VPMOVZXBWZrrk: case VPMOVZXBWZrrkz: case VPMOVZXBWrm: case VPMOVZXBWrr: return true; } return false; } bool isVGETEXPSS(unsigned Opcode) { switch (Opcode) { case VGETEXPSSZm: case VGETEXPSSZmk: case VGETEXPSSZmkz: case VGETEXPSSZr: case VGETEXPSSZrb: case VGETEXPSSZrbk: case VGETEXPSSZrbkz: case VGETEXPSSZrk: case VGETEXPSSZrkz: return true; } return false; } bool isSHUFPD(unsigned Opcode) { switch (Opcode) { case SHUFPDrmi: case SHUFPDrri: return true; } return false; } bool isVCVTTSS2SI(unsigned Opcode) { switch (Opcode) { case VCVTTSS2SI64Zrm_Int: case VCVTTSS2SI64Zrr_Int: case VCVTTSS2SI64Zrrb_Int: case VCVTTSS2SI64rm_Int: case VCVTTSS2SI64rr_Int: case VCVTTSS2SIZrm_Int: case VCVTTSS2SIZrr_Int: case VCVTTSS2SIZrrb_Int: case VCVTTSS2SIrm_Int: case VCVTTSS2SIrr_Int: return true; } return false; } bool isVINSERTF128(unsigned Opcode) { switch (Opcode) { case VINSERTF128rm: case VINSERTF128rr: return true; } return false; } bool isKANDNB(unsigned Opcode) { return Opcode == KANDNBrr; } bool isPADDSB(unsigned Opcode) { switch (Opcode) { case MMX_PADDSBrm: case MMX_PADDSBrr: case PADDSBrm: case PADDSBrr: return true; } return false; } bool isKANDND(unsigned Opcode) { return Opcode == KANDNDrr; } bool isVPCMPISTRI(unsigned Opcode) { switch (Opcode) { case VPCMPISTRIrm: case VPCMPISTRIrr: return true; } return false; } bool isRDPID(unsigned Opcode) { switch (Opcode) { case RDPID32: case RDPID64: return true; } return false; } bool isVPCMPISTRM(unsigned Opcode) { switch (Opcode) { case VPCMPISTRMrm: case VPCMPISTRMrr: return true; } return false; } bool isVRANGESS(unsigned Opcode) { switch (Opcode) { case VRANGESSZrmi: case VRANGESSZrmik: case VRANGESSZrmikz: case VRANGESSZrri: case VRANGESSZrrib: case VRANGESSZrribk: case VRANGESSZrribkz: case VRANGESSZrrik: case VRANGESSZrrikz: return true; } return false; } bool isSHUFPS(unsigned Opcode) { switch (Opcode) { case SHUFPSrmi: case SHUFPSrri: return true; } return false; } bool isVPDPBSSDS(unsigned Opcode) { switch (Opcode) { case VPDPBSSDSYrm: case VPDPBSSDSYrr: case VPDPBSSDSrm: case VPDPBSSDSrr: return true; } return false; } bool isKANDNQ(unsigned Opcode) { return Opcode == KANDNQrr; } bool isKANDNW(unsigned Opcode) { return Opcode == KANDNWrr; } bool isPADDSW(unsigned Opcode) { switch (Opcode) { case MMX_PADDSWrm: case MMX_PADDSWrr: case PADDSWrm: case PADDSWrr: return true; } return false; } bool isVCVTTPD2UDQ(unsigned Opcode) { switch (Opcode) { case VCVTTPD2UDQZ128rm: case VCVTTPD2UDQZ128rmb: case VCVTTPD2UDQZ128rmbk: case VCVTTPD2UDQZ128rmbkz: case VCVTTPD2UDQZ128rmk: case VCVTTPD2UDQZ128rmkz: case VCVTTPD2UDQZ128rr: case VCVTTPD2UDQZ128rrk: case VCVTTPD2UDQZ128rrkz: case VCVTTPD2UDQZ256rm: case VCVTTPD2UDQZ256rmb: case VCVTTPD2UDQZ256rmbk: case VCVTTPD2UDQZ256rmbkz: case VCVTTPD2UDQZ256rmk: case VCVTTPD2UDQZ256rmkz: case VCVTTPD2UDQZ256rr: case VCVTTPD2UDQZ256rrk: case VCVTTPD2UDQZ256rrkz: case VCVTTPD2UDQZrm: case VCVTTPD2UDQZrmb: case VCVTTPD2UDQZrmbk: case VCVTTPD2UDQZrmbkz: case VCVTTPD2UDQZrmk: case VCVTTPD2UDQZrmkz: case VCVTTPD2UDQZrr: case VCVTTPD2UDQZrrb: case VCVTTPD2UDQZrrbk: case VCVTTPD2UDQZrrbkz: case VCVTTPD2UDQZrrk: case VCVTTPD2UDQZrrkz: return true; } return false; } bool isVANDNPD(unsigned Opcode) { switch (Opcode) { case VANDNPDYrm: case VANDNPDYrr: case VANDNPDZ128rm: case VANDNPDZ128rmb: case VANDNPDZ128rmbk: case VANDNPDZ128rmbkz: case VANDNPDZ128rmk: case VANDNPDZ128rmkz: case VANDNPDZ128rr: case VANDNPDZ128rrk: case VANDNPDZ128rrkz: case VANDNPDZ256rm: case VANDNPDZ256rmb: case VANDNPDZ256rmbk: case VANDNPDZ256rmbkz: case VANDNPDZ256rmk: case VANDNPDZ256rmkz: case VANDNPDZ256rr: case VANDNPDZ256rrk: case VANDNPDZ256rrkz: case VANDNPDZrm: case VANDNPDZrmb: case VANDNPDZrmbk: case VANDNPDZrmbkz: case VANDNPDZrmk: case VANDNPDZrmkz: case VANDNPDZrr: case VANDNPDZrrk: case VANDNPDZrrkz: case VANDNPDrm: case VANDNPDrr: return true; } return false; } bool isXEND(unsigned Opcode) { return Opcode == XEND; } bool isVUNPCKHPD(unsigned Opcode) { switch (Opcode) { case VUNPCKHPDYrm: case VUNPCKHPDYrr: case VUNPCKHPDZ128rm: case VUNPCKHPDZ128rmb: case VUNPCKHPDZ128rmbk: case VUNPCKHPDZ128rmbkz: case VUNPCKHPDZ128rmk: case VUNPCKHPDZ128rmkz: case VUNPCKHPDZ128rr: case VUNPCKHPDZ128rrk: case VUNPCKHPDZ128rrkz: case VUNPCKHPDZ256rm: case VUNPCKHPDZ256rmb: case VUNPCKHPDZ256rmbk: case VUNPCKHPDZ256rmbkz: case VUNPCKHPDZ256rmk: case VUNPCKHPDZ256rmkz: case VUNPCKHPDZ256rr: case VUNPCKHPDZ256rrk: case VUNPCKHPDZ256rrkz: case VUNPCKHPDZrm: case VUNPCKHPDZrmb: case VUNPCKHPDZrmbk: case VUNPCKHPDZrmbkz: case VUNPCKHPDZrmk: case VUNPCKHPDZrmkz: case VUNPCKHPDZrr: case VUNPCKHPDZrrk: case VUNPCKHPDZrrkz: case VUNPCKHPDrm: case VUNPCKHPDrr: return true; } return false; } bool isPSRAD(unsigned Opcode) { switch (Opcode) { case MMX_PSRADri: case MMX_PSRADrm: case MMX_PSRADrr: case PSRADri: case PSRADrm: case PSRADrr: return true; } return false; } bool isVANDNPS(unsigned Opcode) { switch (Opcode) { case VANDNPSYrm: case VANDNPSYrr: case VANDNPSZ128rm: case VANDNPSZ128rmb: case VANDNPSZ128rmbk: case VANDNPSZ128rmbkz: case VANDNPSZ128rmk: case VANDNPSZ128rmkz: case VANDNPSZ128rr: case VANDNPSZ128rrk: case VANDNPSZ128rrkz: case VANDNPSZ256rm: case VANDNPSZ256rmb: case VANDNPSZ256rmbk: case VANDNPSZ256rmbkz: case VANDNPSZ256rmk: case VANDNPSZ256rmkz: case VANDNPSZ256rr: case VANDNPSZ256rrk: case VANDNPSZ256rrkz: case VANDNPSZrm: case VANDNPSZrmb: case VANDNPSZrmbk: case VANDNPSZrmbkz: case VANDNPSZrmk: case VANDNPSZrmkz: case VANDNPSZrr: case VANDNPSZrrk: case VANDNPSZrrkz: case VANDNPSrm: case VANDNPSrr: return true; } return false; } bool isVPMOVZXDQ(unsigned Opcode) { switch (Opcode) { case VPMOVZXDQYrm: case VPMOVZXDQYrr: case VPMOVZXDQZ128rm: case VPMOVZXDQZ128rmk: case VPMOVZXDQZ128rmkz: case VPMOVZXDQZ128rr: case VPMOVZXDQZ128rrk: case VPMOVZXDQZ128rrkz: case VPMOVZXDQZ256rm: case VPMOVZXDQZ256rmk: case VPMOVZXDQZ256rmkz: case VPMOVZXDQZ256rr: case VPMOVZXDQZ256rrk: case VPMOVZXDQZ256rrkz: case VPMOVZXDQZrm: case VPMOVZXDQZrmk: case VPMOVZXDQZrmkz: case VPMOVZXDQZrr: case VPMOVZXDQZrrk: case VPMOVZXDQZrrkz: case VPMOVZXDQrm: case VPMOVZXDQrr: return true; } return false; } bool isVMPTRST(unsigned Opcode) { return Opcode == VMPTRSTm; } bool isVUNPCKHPS(unsigned Opcode) { switch (Opcode) { case VUNPCKHPSYrm: case VUNPCKHPSYrr: case VUNPCKHPSZ128rm: case VUNPCKHPSZ128rmb: case VUNPCKHPSZ128rmbk: case VUNPCKHPSZ128rmbkz: case VUNPCKHPSZ128rmk: case VUNPCKHPSZ128rmkz: case VUNPCKHPSZ128rr: case VUNPCKHPSZ128rrk: case VUNPCKHPSZ128rrkz: case VUNPCKHPSZ256rm: case VUNPCKHPSZ256rmb: case VUNPCKHPSZ256rmbk: case VUNPCKHPSZ256rmbkz: case VUNPCKHPSZ256rmk: case VUNPCKHPSZ256rmkz: case VUNPCKHPSZ256rr: case VUNPCKHPSZ256rrk: case VUNPCKHPSZ256rrkz: case VUNPCKHPSZrm: case VUNPCKHPSZrmb: case VUNPCKHPSZrmbk: case VUNPCKHPSZrmbkz: case VUNPCKHPSZrmk: case VUNPCKHPSZrmkz: case VUNPCKHPSZrr: case VUNPCKHPSZrrk: case VUNPCKHPSZrrkz: case VUNPCKHPSrm: case VUNPCKHPSrr: return true; } return false; } bool isPSRAW(unsigned Opcode) { switch (Opcode) { case MMX_PSRAWri: case MMX_PSRAWrm: case MMX_PSRAWrr: case PSRAWri: case PSRAWrm: case PSRAWrr: return true; } return false; } bool isVPLZCNTD(unsigned Opcode) { switch (Opcode) { case VPLZCNTDZ128rm: case VPLZCNTDZ128rmb: case VPLZCNTDZ128rmbk: case VPLZCNTDZ128rmbkz: case VPLZCNTDZ128rmk: case VPLZCNTDZ128rmkz: case VPLZCNTDZ128rr: case VPLZCNTDZ128rrk: case VPLZCNTDZ128rrkz: case VPLZCNTDZ256rm: case VPLZCNTDZ256rmb: case VPLZCNTDZ256rmbk: case VPLZCNTDZ256rmbkz: case VPLZCNTDZ256rmk: case VPLZCNTDZ256rmkz: case VPLZCNTDZ256rr: case VPLZCNTDZ256rrk: case VPLZCNTDZ256rrkz: case VPLZCNTDZrm: case VPLZCNTDZrmb: case VPLZCNTDZrmbk: case VPLZCNTDZrmbkz: case VPLZCNTDZrmk: case VPLZCNTDZrmkz: case VPLZCNTDZrr: case VPLZCNTDZrrk: case VPLZCNTDZrrkz: return true; } return false; } bool isWRMSRLIST(unsigned Opcode) { return Opcode == WRMSRLIST; } bool isVPADDUSB(unsigned Opcode) { switch (Opcode) { case VPADDUSBYrm: case VPADDUSBYrr: case VPADDUSBZ128rm: case VPADDUSBZ128rmk: case VPADDUSBZ128rmkz: case VPADDUSBZ128rr: case VPADDUSBZ128rrk: case VPADDUSBZ128rrkz: case VPADDUSBZ256rm: case VPADDUSBZ256rmk: case VPADDUSBZ256rmkz: case VPADDUSBZ256rr: case VPADDUSBZ256rrk: case VPADDUSBZ256rrkz: case VPADDUSBZrm: case VPADDUSBZrmk: case VPADDUSBZrmkz: case VPADDUSBZrr: case VPADDUSBZrrk: case VPADDUSBZrrkz: case VPADDUSBrm: case VPADDUSBrr: return true; } return false; } bool isVMOVDQU64(unsigned Opcode) { switch (Opcode) { case VMOVDQU64Z128mr: case VMOVDQU64Z128mrk: case VMOVDQU64Z128rm: case VMOVDQU64Z128rmk: case VMOVDQU64Z128rmkz: case VMOVDQU64Z128rr: case VMOVDQU64Z128rr_REV: case VMOVDQU64Z128rrk: case VMOVDQU64Z128rrk_REV: case VMOVDQU64Z128rrkz: case VMOVDQU64Z128rrkz_REV: case VMOVDQU64Z256mr: case VMOVDQU64Z256mrk: case VMOVDQU64Z256rm: case VMOVDQU64Z256rmk: case VMOVDQU64Z256rmkz: case VMOVDQU64Z256rr: case VMOVDQU64Z256rr_REV: case VMOVDQU64Z256rrk: case VMOVDQU64Z256rrk_REV: case VMOVDQU64Z256rrkz: case VMOVDQU64Z256rrkz_REV: case VMOVDQU64Zmr: case VMOVDQU64Zmrk: case VMOVDQU64Zrm: case VMOVDQU64Zrmk: case VMOVDQU64Zrmkz: case VMOVDQU64Zrr: case VMOVDQU64Zrr_REV: case VMOVDQU64Zrrk: case VMOVDQU64Zrrk_REV: case VMOVDQU64Zrrkz: case VMOVDQU64Zrrkz_REV: return true; } return false; } bool isSUBPD(unsigned Opcode) { switch (Opcode) { case SUBPDrm: case SUBPDrr: return true; } return false; } bool isMOVDDUP(unsigned Opcode) { switch (Opcode) { case MOVDDUPrm: case MOVDDUPrr: return true; } return false; } bool isVPLZCNTQ(unsigned Opcode) { switch (Opcode) { case VPLZCNTQZ128rm: case VPLZCNTQZ128rmb: case VPLZCNTQZ128rmbk: case VPLZCNTQZ128rmbkz: case VPLZCNTQZ128rmk: case VPLZCNTQZ128rmkz: case VPLZCNTQZ128rr: case VPLZCNTQZ128rrk: case VPLZCNTQZ128rrkz: case VPLZCNTQZ256rm: case VPLZCNTQZ256rmb: case VPLZCNTQZ256rmbk: case VPLZCNTQZ256rmbkz: case VPLZCNTQZ256rmk: case VPLZCNTQZ256rmkz: case VPLZCNTQZ256rr: case VPLZCNTQZ256rrk: case VPLZCNTQZ256rrkz: case VPLZCNTQZrm: case VPLZCNTQZrmb: case VPLZCNTQZrmbk: case VPLZCNTQZrmbkz: case VPLZCNTQZrmk: case VPLZCNTQZrmkz: case VPLZCNTQZrr: case VPLZCNTQZrrk: case VPLZCNTQZrrkz: return true; } return false; } bool isSTAC(unsigned Opcode) { return Opcode == STAC; } bool isSUBPS(unsigned Opcode) { switch (Opcode) { case SUBPSrm: case SUBPSrr: return true; } return false; } bool isVPADDUSW(unsigned Opcode) { switch (Opcode) { case VPADDUSWYrm: case VPADDUSWYrr: case VPADDUSWZ128rm: case VPADDUSWZ128rmk: case VPADDUSWZ128rmkz: case VPADDUSWZ128rr: case VPADDUSWZ128rrk: case VPADDUSWZ128rrkz: case VPADDUSWZ256rm: case VPADDUSWZ256rmk: case VPADDUSWZ256rmkz: case VPADDUSWZ256rr: case VPADDUSWZ256rrk: case VPADDUSWZ256rrkz: case VPADDUSWZrm: case VPADDUSWZrmk: case VPADDUSWZrmkz: case VPADDUSWZrr: case VPADDUSWZrrk: case VPADDUSWZrrkz: case VPADDUSWrm: case VPADDUSWrr: return true; } return false; } bool isFCMOVNBE(unsigned Opcode) { return Opcode == CMOVNBE_F; } bool isSHA1RNDS4(unsigned Opcode) { switch (Opcode) { case SHA1RNDS4rmi: case SHA1RNDS4rri: return true; } return false; } bool isPAUSE(unsigned Opcode) { return Opcode == PAUSE; } bool isSAHF(unsigned Opcode) { return Opcode == SAHF; } bool isVREDUCEPD(unsigned Opcode) { switch (Opcode) { case VREDUCEPDZ128rmbi: case VREDUCEPDZ128rmbik: case VREDUCEPDZ128rmbikz: case VREDUCEPDZ128rmi: case VREDUCEPDZ128rmik: case VREDUCEPDZ128rmikz: case VREDUCEPDZ128rri: case VREDUCEPDZ128rrik: case VREDUCEPDZ128rrikz: case VREDUCEPDZ256rmbi: case VREDUCEPDZ256rmbik: case VREDUCEPDZ256rmbikz: case VREDUCEPDZ256rmi: case VREDUCEPDZ256rmik: case VREDUCEPDZ256rmikz: case VREDUCEPDZ256rri: case VREDUCEPDZ256rrik: case VREDUCEPDZ256rrikz: case VREDUCEPDZrmbi: case VREDUCEPDZrmbik: case VREDUCEPDZrmbikz: case VREDUCEPDZrmi: case VREDUCEPDZrmik: case VREDUCEPDZrmikz: case VREDUCEPDZrri: case VREDUCEPDZrrib: case VREDUCEPDZrribk: case VREDUCEPDZrribkz: case VREDUCEPDZrrik: case VREDUCEPDZrrikz: return true; } return false; } bool isVREDUCEPH(unsigned Opcode) { switch (Opcode) { case VREDUCEPHZ128rmbi: case VREDUCEPHZ128rmbik: case VREDUCEPHZ128rmbikz: case VREDUCEPHZ128rmi: case VREDUCEPHZ128rmik: case VREDUCEPHZ128rmikz: case VREDUCEPHZ128rri: case VREDUCEPHZ128rrik: case VREDUCEPHZ128rrikz: case VREDUCEPHZ256rmbi: case VREDUCEPHZ256rmbik: case VREDUCEPHZ256rmbikz: case VREDUCEPHZ256rmi: case VREDUCEPHZ256rmik: case VREDUCEPHZ256rmikz: case VREDUCEPHZ256rri: case VREDUCEPHZ256rrik: case VREDUCEPHZ256rrikz: case VREDUCEPHZrmbi: case VREDUCEPHZrmbik: case VREDUCEPHZrmbikz: case VREDUCEPHZrmi: case VREDUCEPHZrmik: case VREDUCEPHZrmikz: case VREDUCEPHZrri: case VREDUCEPHZrrib: case VREDUCEPHZrribk: case VREDUCEPHZrribkz: case VREDUCEPHZrrik: case VREDUCEPHZrrikz: return true; } return false; } bool isFXAM(unsigned Opcode) { return Opcode == XAM_F; } bool isLGDTD(unsigned Opcode) { return Opcode == LGDT32m; } bool isPMULHRW(unsigned Opcode) { switch (Opcode) { case PMULHRWrm: case PMULHRWrr: return true; } return false; } bool isVREDUCEPS(unsigned Opcode) { switch (Opcode) { case VREDUCEPSZ128rmbi: case VREDUCEPSZ128rmbik: case VREDUCEPSZ128rmbikz: case VREDUCEPSZ128rmi: case VREDUCEPSZ128rmik: case VREDUCEPSZ128rmikz: case VREDUCEPSZ128rri: case VREDUCEPSZ128rrik: case VREDUCEPSZ128rrikz: case VREDUCEPSZ256rmbi: case VREDUCEPSZ256rmbik: case VREDUCEPSZ256rmbikz: case VREDUCEPSZ256rmi: case VREDUCEPSZ256rmik: case VREDUCEPSZ256rmikz: case VREDUCEPSZ256rri: case VREDUCEPSZ256rrik: case VREDUCEPSZ256rrikz: case VREDUCEPSZrmbi: case VREDUCEPSZrmbik: case VREDUCEPSZrmbikz: case VREDUCEPSZrmi: case VREDUCEPSZrmik: case VREDUCEPSZrmikz: case VREDUCEPSZrri: case VREDUCEPSZrrib: case VREDUCEPSZrribk: case VREDUCEPSZrribkz: case VREDUCEPSZrrik: case VREDUCEPSZrrikz: return true; } return false; } bool isRDPMC(unsigned Opcode) { return Opcode == RDPMC; } bool isVGATHERPF1QPD(unsigned Opcode) { return Opcode == VGATHERPF1QPDm; } bool isLGDTW(unsigned Opcode) { return Opcode == LGDT16m; } bool isVAESKEYGENASSIST(unsigned Opcode) { switch (Opcode) { case VAESKEYGENASSIST128rm: case VAESKEYGENASSIST128rr: return true; } return false; } bool isRDFSBASE(unsigned Opcode) { switch (Opcode) { case RDFSBASE: case RDFSBASE64: return true; } return false; } bool isVGATHERPF1QPS(unsigned Opcode) { return Opcode == VGATHERPF1QPSm; } bool isSUBSD(unsigned Opcode) { switch (Opcode) { case SUBSDrm_Int: case SUBSDrr_Int: return true; } return false; } bool isVCVTNEOBF162PS(unsigned Opcode) { switch (Opcode) { case VCVTNEOBF162PSYrm: case VCVTNEOBF162PSrm: return true; } return false; } bool isAESENCWIDE128KL(unsigned Opcode) { return Opcode == AESENCWIDE128KL; } bool isFXCH(unsigned Opcode) { return Opcode == XCH_F; } bool isSUBSS(unsigned Opcode) { switch (Opcode) { case SUBSSrm_Int: case SUBSSrr_Int: return true; } return false; } bool isPANDN(unsigned Opcode) { switch (Opcode) { case MMX_PANDNrm: case MMX_PANDNrr: case PANDNrm: case PANDNrr: return true; } return false; } bool isVPERMT2B(unsigned Opcode) { switch (Opcode) { case VPERMT2B128rm: case VPERMT2B128rmk: case VPERMT2B128rmkz: case VPERMT2B128rr: case VPERMT2B128rrk: case VPERMT2B128rrkz: case VPERMT2B256rm: case VPERMT2B256rmk: case VPERMT2B256rmkz: case VPERMT2B256rr: case VPERMT2B256rrk: case VPERMT2B256rrkz: case VPERMT2Brm: case VPERMT2Brmk: case VPERMT2Brmkz: case VPERMT2Brr: case VPERMT2Brrk: case VPERMT2Brrkz: return true; } return false; } bool isLJMP(unsigned Opcode) { switch (Opcode) { case FARJMP16i: case FARJMP16m: case FARJMP32i: case FARJMP64m: return true; } return false; } bool isCMPPD(unsigned Opcode) { switch (Opcode) { case CMPPDrmi: case CMPPDrri: return true; } return false; } bool isVPERMT2D(unsigned Opcode) { switch (Opcode) { case VPERMT2D128rm: case VPERMT2D128rmb: case VPERMT2D128rmbk: case VPERMT2D128rmbkz: case VPERMT2D128rmk: case VPERMT2D128rmkz: case VPERMT2D128rr: case VPERMT2D128rrk: case VPERMT2D128rrkz: case VPERMT2D256rm: case VPERMT2D256rmb: case VPERMT2D256rmbk: case VPERMT2D256rmbkz: case VPERMT2D256rmk: case VPERMT2D256rmkz: case VPERMT2D256rr: case VPERMT2D256rrk: case VPERMT2D256rrkz: case VPERMT2Drm: case VPERMT2Drmb: case VPERMT2Drmbk: case VPERMT2Drmbkz: case VPERMT2Drmk: case VPERMT2Drmkz: case VPERMT2Drr: case VPERMT2Drrk: case VPERMT2Drrkz: return true; } return false; } bool isVPMADD52HUQ(unsigned Opcode) { switch (Opcode) { case VPMADD52HUQYrm: case VPMADD52HUQYrr: case VPMADD52HUQZ128m: case VPMADD52HUQZ128mb: case VPMADD52HUQZ128mbk: case VPMADD52HUQZ128mbkz: case VPMADD52HUQZ128mk: case VPMADD52HUQZ128mkz: case VPMADD52HUQZ128r: case VPMADD52HUQZ128rk: case VPMADD52HUQZ128rkz: case VPMADD52HUQZ256m: case VPMADD52HUQZ256mb: case VPMADD52HUQZ256mbk: case VPMADD52HUQZ256mbkz: case VPMADD52HUQZ256mk: case VPMADD52HUQZ256mkz: case VPMADD52HUQZ256r: case VPMADD52HUQZ256rk: case VPMADD52HUQZ256rkz: case VPMADD52HUQZm: case VPMADD52HUQZmb: case VPMADD52HUQZmbk: case VPMADD52HUQZmbkz: case VPMADD52HUQZmk: case VPMADD52HUQZmkz: case VPMADD52HUQZr: case VPMADD52HUQZrk: case VPMADD52HUQZrkz: case VPMADD52HUQrm: case VPMADD52HUQrr: return true; } return false; } bool isVPERMT2Q(unsigned Opcode) { switch (Opcode) { case VPERMT2Q128rm: case VPERMT2Q128rmb: case VPERMT2Q128rmbk: case VPERMT2Q128rmbkz: case VPERMT2Q128rmk: case VPERMT2Q128rmkz: case VPERMT2Q128rr: case VPERMT2Q128rrk: case VPERMT2Q128rrkz: case VPERMT2Q256rm: case VPERMT2Q256rmb: case VPERMT2Q256rmbk: case VPERMT2Q256rmbkz: case VPERMT2Q256rmk: case VPERMT2Q256rmkz: case VPERMT2Q256rr: case VPERMT2Q256rrk: case VPERMT2Q256rrkz: case VPERMT2Qrm: case VPERMT2Qrmb: case VPERMT2Qrmbk: case VPERMT2Qrmbkz: case VPERMT2Qrmk: case VPERMT2Qrmkz: case VPERMT2Qrr: case VPERMT2Qrrk: case VPERMT2Qrrkz: return true; } return false; } bool isCMPPS(unsigned Opcode) { switch (Opcode) { case CMPPSrmi: case CMPPSrri: return true; } return false; } bool isVCVTPH2W(unsigned Opcode) { switch (Opcode) { case VCVTPH2WZ128rm: case VCVTPH2WZ128rmb: case VCVTPH2WZ128rmbk: case VCVTPH2WZ128rmbkz: case VCVTPH2WZ128rmk: case VCVTPH2WZ128rmkz: case VCVTPH2WZ128rr: case VCVTPH2WZ128rrk: case VCVTPH2WZ128rrkz: case VCVTPH2WZ256rm: case VCVTPH2WZ256rmb: case VCVTPH2WZ256rmbk: case VCVTPH2WZ256rmbkz: case VCVTPH2WZ256rmk: case VCVTPH2WZ256rmkz: case VCVTPH2WZ256rr: case VCVTPH2WZ256rrk: case VCVTPH2WZ256rrkz: case VCVTPH2WZrm: case VCVTPH2WZrmb: case VCVTPH2WZrmbk: case VCVTPH2WZrmbkz: case VCVTPH2WZrmk: case VCVTPH2WZrmkz: case VCVTPH2WZrr: case VCVTPH2WZrrb: case VCVTPH2WZrrbk: case VCVTPH2WZrrbkz: case VCVTPH2WZrrk: case VCVTPH2WZrrkz: return true; } return false; } bool isVREDUCESD(unsigned Opcode) { switch (Opcode) { case VREDUCESDZrmi: case VREDUCESDZrmik: case VREDUCESDZrmikz: case VREDUCESDZrri: case VREDUCESDZrrib: case VREDUCESDZrribk: case VREDUCESDZrribkz: case VREDUCESDZrrik: case VREDUCESDZrrikz: return true; } return false; } bool isVPERMT2W(unsigned Opcode) { switch (Opcode) { case VPERMT2W128rm: case VPERMT2W128rmk: case VPERMT2W128rmkz: case VPERMT2W128rr: case VPERMT2W128rrk: case VPERMT2W128rrkz: case VPERMT2W256rm: case VPERMT2W256rmk: case VPERMT2W256rmkz: case VPERMT2W256rr: case VPERMT2W256rrk: case VPERMT2W256rrkz: case VPERMT2Wrm: case VPERMT2Wrmk: case VPERMT2Wrmkz: case VPERMT2Wrr: case VPERMT2Wrrk: case VPERMT2Wrrkz: return true; } return false; } bool isWBNOINVD(unsigned Opcode) { return Opcode == WBNOINVD; } bool isVREDUCESH(unsigned Opcode) { switch (Opcode) { case VREDUCESHZrmi: case VREDUCESHZrmik: case VREDUCESHZrmikz: case VREDUCESHZrri: case VREDUCESHZrrib: case VREDUCESHZrribk: case VREDUCESHZrribkz: case VREDUCESHZrrik: case VREDUCESHZrrikz: return true; } return false; } bool isTILEZERO(unsigned Opcode) { return Opcode == TILEZERO; } bool isPMULHUW(unsigned Opcode) { switch (Opcode) { case MMX_PMULHUWrm: case MMX_PMULHUWrr: case PMULHUWrm: case PMULHUWrr: return true; } return false; } bool isVREDUCESS(unsigned Opcode) { switch (Opcode) { case VREDUCESSZrmi: case VREDUCESSZrmik: case VREDUCESSZrmikz: case VREDUCESSZrri: case VREDUCESSZrrib: case VREDUCESSZrribk: case VREDUCESSZrribkz: case VREDUCESSZrrik: case VREDUCESSZrrikz: return true; } return false; } bool isVCVTUW2PH(unsigned Opcode) { switch (Opcode) { case VCVTUW2PHZ128rm: case VCVTUW2PHZ128rmb: case VCVTUW2PHZ128rmbk: case VCVTUW2PHZ128rmbkz: case VCVTUW2PHZ128rmk: case VCVTUW2PHZ128rmkz: case VCVTUW2PHZ128rr: case VCVTUW2PHZ128rrk: case VCVTUW2PHZ128rrkz: case VCVTUW2PHZ256rm: case VCVTUW2PHZ256rmb: case VCVTUW2PHZ256rmbk: case VCVTUW2PHZ256rmbkz: case VCVTUW2PHZ256rmk: case VCVTUW2PHZ256rmkz: case VCVTUW2PHZ256rr: case VCVTUW2PHZ256rrk: case VCVTUW2PHZ256rrkz: case VCVTUW2PHZrm: case VCVTUW2PHZrmb: case VCVTUW2PHZrmbk: case VCVTUW2PHZrmbkz: case VCVTUW2PHZrmk: case VCVTUW2PHZrmkz: case VCVTUW2PHZrr: case VCVTUW2PHZrrb: case VCVTUW2PHZrrbk: case VCVTUW2PHZrrbkz: case VCVTUW2PHZrrk: case VCVTUW2PHZrrkz: return true; } return false; } bool isVPBLENDMB(unsigned Opcode) { switch (Opcode) { case VPBLENDMBZ128rm: case VPBLENDMBZ128rmk: case VPBLENDMBZ128rmkz: case VPBLENDMBZ128rr: case VPBLENDMBZ128rrk: case VPBLENDMBZ128rrkz: case VPBLENDMBZ256rm: case VPBLENDMBZ256rmk: case VPBLENDMBZ256rmkz: case VPBLENDMBZ256rr: case VPBLENDMBZ256rrk: case VPBLENDMBZ256rrkz: case VPBLENDMBZrm: case VPBLENDMBZrmk: case VPBLENDMBZrmkz: case VPBLENDMBZrr: case VPBLENDMBZrrk: case VPBLENDMBZrrkz: return true; } return false; } bool isVPBLENDMD(unsigned Opcode) { switch (Opcode) { case VPBLENDMDZ128rm: case VPBLENDMDZ128rmb: case VPBLENDMDZ128rmbk: case VPBLENDMDZ128rmbkz: case VPBLENDMDZ128rmk: case VPBLENDMDZ128rmkz: case VPBLENDMDZ128rr: case VPBLENDMDZ128rrk: case VPBLENDMDZ128rrkz: case VPBLENDMDZ256rm: case VPBLENDMDZ256rmb: case VPBLENDMDZ256rmbk: case VPBLENDMDZ256rmbkz: case VPBLENDMDZ256rmk: case VPBLENDMDZ256rmkz: case VPBLENDMDZ256rr: case VPBLENDMDZ256rrk: case VPBLENDMDZ256rrkz: case VPBLENDMDZrm: case VPBLENDMDZrmb: case VPBLENDMDZrmbk: case VPBLENDMDZrmbkz: case VPBLENDMDZrmk: case VPBLENDMDZrmkz: case VPBLENDMDZrr: case VPBLENDMDZrrk: case VPBLENDMDZrrkz: return true; } return false; } bool isVFMSUB132PD(unsigned Opcode) { switch (Opcode) { case VFMSUB132PDYm: case VFMSUB132PDYr: case VFMSUB132PDZ128m: case VFMSUB132PDZ128mb: case VFMSUB132PDZ128mbk: case VFMSUB132PDZ128mbkz: case VFMSUB132PDZ128mk: case VFMSUB132PDZ128mkz: case VFMSUB132PDZ128r: case VFMSUB132PDZ128rk: case VFMSUB132PDZ128rkz: case VFMSUB132PDZ256m: case VFMSUB132PDZ256mb: case VFMSUB132PDZ256mbk: case VFMSUB132PDZ256mbkz: case VFMSUB132PDZ256mk: case VFMSUB132PDZ256mkz: case VFMSUB132PDZ256r: case VFMSUB132PDZ256rk: case VFMSUB132PDZ256rkz: case VFMSUB132PDZm: case VFMSUB132PDZmb: case VFMSUB132PDZmbk: case VFMSUB132PDZmbkz: case VFMSUB132PDZmk: case VFMSUB132PDZmkz: case VFMSUB132PDZr: case VFMSUB132PDZrb: case VFMSUB132PDZrbk: case VFMSUB132PDZrbkz: case VFMSUB132PDZrk: case VFMSUB132PDZrkz: case VFMSUB132PDm: case VFMSUB132PDr: return true; } return false; } bool isVFMSUB132PH(unsigned Opcode) { switch (Opcode) { case VFMSUB132PHZ128m: case VFMSUB132PHZ128mb: case VFMSUB132PHZ128mbk: case VFMSUB132PHZ128mbkz: case VFMSUB132PHZ128mk: case VFMSUB132PHZ128mkz: case VFMSUB132PHZ128r: case VFMSUB132PHZ128rk: case VFMSUB132PHZ128rkz: case VFMSUB132PHZ256m: case VFMSUB132PHZ256mb: case VFMSUB132PHZ256mbk: case VFMSUB132PHZ256mbkz: case VFMSUB132PHZ256mk: case VFMSUB132PHZ256mkz: case VFMSUB132PHZ256r: case VFMSUB132PHZ256rk: case VFMSUB132PHZ256rkz: case VFMSUB132PHZm: case VFMSUB132PHZmb: case VFMSUB132PHZmbk: case VFMSUB132PHZmbkz: case VFMSUB132PHZmk: case VFMSUB132PHZmkz: case VFMSUB132PHZr: case VFMSUB132PHZrb: case VFMSUB132PHZrbk: case VFMSUB132PHZrbkz: case VFMSUB132PHZrk: case VFMSUB132PHZrkz: return true; } return false; } bool isMWAIT(unsigned Opcode) { return Opcode == MWAITrr; } bool isSALC(unsigned Opcode) { return Opcode == SALC; } bool isPMADDUBSW(unsigned Opcode) { switch (Opcode) { case MMX_PMADDUBSWrm: case MMX_PMADDUBSWrr: case PMADDUBSWrm: case PMADDUBSWrr: return true; } return false; } bool isVFCMULCPH(unsigned Opcode) { switch (Opcode) { case VFCMULCPHZ128rm: case VFCMULCPHZ128rmb: case VFCMULCPHZ128rmbk: case VFCMULCPHZ128rmbkz: case VFCMULCPHZ128rmk: case VFCMULCPHZ128rmkz: case VFCMULCPHZ128rr: case VFCMULCPHZ128rrk: case VFCMULCPHZ128rrkz: case VFCMULCPHZ256rm: case VFCMULCPHZ256rmb: case VFCMULCPHZ256rmbk: case VFCMULCPHZ256rmbkz: case VFCMULCPHZ256rmk: case VFCMULCPHZ256rmkz: case VFCMULCPHZ256rr: case VFCMULCPHZ256rrk: case VFCMULCPHZ256rrkz: case VFCMULCPHZrm: case VFCMULCPHZrmb: case VFCMULCPHZrmbk: case VFCMULCPHZrmbkz: case VFCMULCPHZrmk: case VFCMULCPHZrmkz: case VFCMULCPHZrr: case VFCMULCPHZrrb: case VFCMULCPHZrrbk: case VFCMULCPHZrrbkz: case VFCMULCPHZrrk: case VFCMULCPHZrrkz: return true; } return false; } bool isVPBLENDMQ(unsigned Opcode) { switch (Opcode) { case VPBLENDMQZ128rm: case VPBLENDMQZ128rmb: case VPBLENDMQZ128rmbk: case VPBLENDMQZ128rmbkz: case VPBLENDMQZ128rmk: case VPBLENDMQZ128rmkz: case VPBLENDMQZ128rr: case VPBLENDMQZ128rrk: case VPBLENDMQZ128rrkz: case VPBLENDMQZ256rm: case VPBLENDMQZ256rmb: case VPBLENDMQZ256rmbk: case VPBLENDMQZ256rmbkz: case VPBLENDMQZ256rmk: case VPBLENDMQZ256rmkz: case VPBLENDMQZ256rr: case VPBLENDMQZ256rrk: case VPBLENDMQZ256rrkz: case VPBLENDMQZrm: case VPBLENDMQZrmb: case VPBLENDMQZrmbk: case VPBLENDMQZrmbkz: case VPBLENDMQZrmk: case VPBLENDMQZrmkz: case VPBLENDMQZrr: case VPBLENDMQZrrk: case VPBLENDMQZrrkz: return true; } return false; } bool isRORX(unsigned Opcode) { switch (Opcode) { case RORX32mi: case RORX32ri: case RORX64mi: case RORX64ri: return true; } return false; } bool isVFMSUB132PS(unsigned Opcode) { switch (Opcode) { case VFMSUB132PSYm: case VFMSUB132PSYr: case VFMSUB132PSZ128m: case VFMSUB132PSZ128mb: case VFMSUB132PSZ128mbk: case VFMSUB132PSZ128mbkz: case VFMSUB132PSZ128mk: case VFMSUB132PSZ128mkz: case VFMSUB132PSZ128r: case VFMSUB132PSZ128rk: case VFMSUB132PSZ128rkz: case VFMSUB132PSZ256m: case VFMSUB132PSZ256mb: case VFMSUB132PSZ256mbk: case VFMSUB132PSZ256mbkz: case VFMSUB132PSZ256mk: case VFMSUB132PSZ256mkz: case VFMSUB132PSZ256r: case VFMSUB132PSZ256rk: case VFMSUB132PSZ256rkz: case VFMSUB132PSZm: case VFMSUB132PSZmb: case VFMSUB132PSZmbk: case VFMSUB132PSZmbkz: case VFMSUB132PSZmk: case VFMSUB132PSZmkz: case VFMSUB132PSZr: case VFMSUB132PSZrb: case VFMSUB132PSZrbk: case VFMSUB132PSZrbkz: case VFMSUB132PSZrk: case VFMSUB132PSZrkz: case VFMSUB132PSm: case VFMSUB132PSr: return true; } return false; } bool isVPBLENDMW(unsigned Opcode) { switch (Opcode) { case VPBLENDMWZ128rm: case VPBLENDMWZ128rmk: case VPBLENDMWZ128rmkz: case VPBLENDMWZ128rr: case VPBLENDMWZ128rrk: case VPBLENDMWZ128rrkz: case VPBLENDMWZ256rm: case VPBLENDMWZ256rmk: case VPBLENDMWZ256rmkz: case VPBLENDMWZ256rr: case VPBLENDMWZ256rrk: case VPBLENDMWZ256rrkz: case VPBLENDMWZrm: case VPBLENDMWZrmk: case VPBLENDMWZrmkz: case VPBLENDMWZrr: case VPBLENDMWZrrk: case VPBLENDMWZrrkz: return true; } return false; } bool isMOV(unsigned Opcode) { switch (Opcode) { case MOV16ao16: case MOV16ao32: case MOV16mi: case MOV16mr: case MOV16ms: case MOV16o16a: case MOV16o32a: case MOV16ri: case MOV16ri_alt: case MOV16rm: case MOV16rr: case MOV16rr_REV: case MOV16rs: case MOV16sm: case MOV16sr: case MOV32ao16: case MOV32ao32: case MOV32cr: case MOV32dr: case MOV32mi: case MOV32mr: case MOV32o16a: case MOV32o32a: case MOV32rc: case MOV32rd: case MOV32ri: case MOV32ri_alt: case MOV32rm: case MOV32rr: case MOV32rr_REV: case MOV32rs: case MOV32sr: case MOV64ao32: case MOV64cr: case MOV64dr: case MOV64mi32: case MOV64mr: case MOV64o32a: case MOV64rc: case MOV64rd: case MOV64ri32: case MOV64rm: case MOV64rr: case MOV64rr_REV: case MOV64rs: case MOV64sr: case MOV8ao16: case MOV8ao32: case MOV8mi: case MOV8mr: case MOV8o16a: case MOV8o32a: case MOV8ri: case MOV8ri_alt: case MOV8rm: case MOV8rr: case MOV8rr_REV: return true; } return false; } bool isFXSAVE64(unsigned Opcode) { return Opcode == FXSAVE64; } bool isRMPADJUST(unsigned Opcode) { return Opcode == RMPADJUST; } bool isAADD(unsigned Opcode) { switch (Opcode) { case AADD32mr: case AADD64mr: return true; } return false; } bool isVLDDQU(unsigned Opcode) { switch (Opcode) { case VLDDQUYrm: case VLDDQUrm: return true; } return false; } bool isVPSCATTERQD(unsigned Opcode) { switch (Opcode) { case VPSCATTERQDZ128mr: case VPSCATTERQDZ256mr: case VPSCATTERQDZmr: return true; } return false; } bool isVPHADDUBD(unsigned Opcode) { switch (Opcode) { case VPHADDUBDrm: case VPHADDUBDrr: return true; } return false; } bool isCMPSB(unsigned Opcode) { return Opcode == CMPSB; } bool isCMPSD(unsigned Opcode) { switch (Opcode) { case CMPSDrm_Int: case CMPSDrr_Int: case CMPSL: return true; } return false; } bool isSTGI(unsigned Opcode) { return Opcode == STGI; } bool isVUNPCKLPD(unsigned Opcode) { switch (Opcode) { case VUNPCKLPDYrm: case VUNPCKLPDYrr: case VUNPCKLPDZ128rm: case VUNPCKLPDZ128rmb: case VUNPCKLPDZ128rmbk: case VUNPCKLPDZ128rmbkz: case VUNPCKLPDZ128rmk: case VUNPCKLPDZ128rmkz: case VUNPCKLPDZ128rr: case VUNPCKLPDZ128rrk: case VUNPCKLPDZ128rrkz: case VUNPCKLPDZ256rm: case VUNPCKLPDZ256rmb: case VUNPCKLPDZ256rmbk: case VUNPCKLPDZ256rmbkz: case VUNPCKLPDZ256rmk: case VUNPCKLPDZ256rmkz: case VUNPCKLPDZ256rr: case VUNPCKLPDZ256rrk: case VUNPCKLPDZ256rrkz: case VUNPCKLPDZrm: case VUNPCKLPDZrmb: case VUNPCKLPDZrmbk: case VUNPCKLPDZrmbkz: case VUNPCKLPDZrmk: case VUNPCKLPDZrmkz: case VUNPCKLPDZrr: case VUNPCKLPDZrrk: case VUNPCKLPDZrrkz: case VUNPCKLPDrm: case VUNPCKLPDrr: return true; } return false; } bool isVPSCATTERQQ(unsigned Opcode) { switch (Opcode) { case VPSCATTERQQZ128mr: case VPSCATTERQQZ256mr: case VPSCATTERQQZmr: return true; } return false; } bool isFADDP(unsigned Opcode) { return Opcode == ADD_FPrST0; } bool isVPHADDUBQ(unsigned Opcode) { switch (Opcode) { case VPHADDUBQrm: case VPHADDUBQrr: return true; } return false; } bool isCMPSQ(unsigned Opcode) { return Opcode == CMPSQ; } bool isVPHADDUBW(unsigned Opcode) { switch (Opcode) { case VPHADDUBWrm: case VPHADDUBWrr: return true; } return false; } bool isCMPSS(unsigned Opcode) { switch (Opcode) { case CMPSSrm_Int: case CMPSSrr_Int: return true; } return false; } bool isVUNPCKLPS(unsigned Opcode) { switch (Opcode) { case VUNPCKLPSYrm: case VUNPCKLPSYrr: case VUNPCKLPSZ128rm: case VUNPCKLPSZ128rmb: case VUNPCKLPSZ128rmbk: case VUNPCKLPSZ128rmbkz: case VUNPCKLPSZ128rmk: case VUNPCKLPSZ128rmkz: case VUNPCKLPSZ128rr: case VUNPCKLPSZ128rrk: case VUNPCKLPSZ128rrkz: case VUNPCKLPSZ256rm: case VUNPCKLPSZ256rmb: case VUNPCKLPSZ256rmbk: case VUNPCKLPSZ256rmbkz: case VUNPCKLPSZ256rmk: case VUNPCKLPSZ256rmkz: case VUNPCKLPSZ256rr: case VUNPCKLPSZ256rrk: case VUNPCKLPSZ256rrkz: case VUNPCKLPSZrm: case VUNPCKLPSZrmb: case VUNPCKLPSZrmbk: case VUNPCKLPSZrmbkz: case VUNPCKLPSZrmk: case VUNPCKLPSZrmkz: case VUNPCKLPSZrr: case VUNPCKLPSZrrk: case VUNPCKLPSZrrkz: case VUNPCKLPSrm: case VUNPCKLPSrr: return true; } return false; } bool isLCALL(unsigned Opcode) { switch (Opcode) { case FARCALL16i: case FARCALL16m: case FARCALL32i: case FARCALL64m: return true; } return false; } bool isPSHUFB(unsigned Opcode) { switch (Opcode) { case MMX_PSHUFBrm: case MMX_PSHUFBrr: case PSHUFBrm: case PSHUFBrr: return true; } return false; } bool isCMPSW(unsigned Opcode) { return Opcode == CMPSW; } bool isPSHUFD(unsigned Opcode) { switch (Opcode) { case PSHUFDmi: case PSHUFDri: return true; } return false; } bool isRDPRU(unsigned Opcode) { return Opcode == RDPRU; } bool isFRNDINT(unsigned Opcode) { return Opcode == FRNDINT; } bool isVPACKUSWB(unsigned Opcode) { switch (Opcode) { case VPACKUSWBYrm: case VPACKUSWBYrr: case VPACKUSWBZ128rm: case VPACKUSWBZ128rmk: case VPACKUSWBZ128rmkz: case VPACKUSWBZ128rr: case VPACKUSWBZ128rrk: case VPACKUSWBZ128rrkz: case VPACKUSWBZ256rm: case VPACKUSWBZ256rmk: case VPACKUSWBZ256rmkz: case VPACKUSWBZ256rr: case VPACKUSWBZ256rrk: case VPACKUSWBZ256rrkz: case VPACKUSWBZrm: case VPACKUSWBZrmk: case VPACKUSWBZrmkz: case VPACKUSWBZrr: case VPACKUSWBZrrk: case VPACKUSWBZrrkz: case VPACKUSWBrm: case VPACKUSWBrr: return true; } return false; } bool isDIVPD(unsigned Opcode) { switch (Opcode) { case DIVPDrm: case DIVPDrr: return true; } return false; } bool isVAESDEC(unsigned Opcode) { switch (Opcode) { case VAESDECYrm: case VAESDECYrr: case VAESDECZ128rm: case VAESDECZ128rr: case VAESDECZ256rm: case VAESDECZ256rr: case VAESDECZrm: case VAESDECZrr: case VAESDECrm: case VAESDECrr: return true; } return false; } bool isPSHUFW(unsigned Opcode) { switch (Opcode) { case MMX_PSHUFWmi: case MMX_PSHUFWri: return true; } return false; } bool isVPDPBUUDS(unsigned Opcode) { switch (Opcode) { case VPDPBUUDSYrm: case VPDPBUUDSYrr: case VPDPBUUDSrm: case VPDPBUUDSrr: return true; } return false; } bool isKMOVB(unsigned Opcode) { switch (Opcode) { case KMOVBkk: case KMOVBkm: case KMOVBkr: case KMOVBmk: case KMOVBrk: return true; } return false; } bool isVFMSUB132SD(unsigned Opcode) { switch (Opcode) { case VFMSUB132SDZm_Int: case VFMSUB132SDZm_Intk: case VFMSUB132SDZm_Intkz: case VFMSUB132SDZr_Int: case VFMSUB132SDZr_Intk: case VFMSUB132SDZr_Intkz: case VFMSUB132SDZrb_Int: case VFMSUB132SDZrb_Intk: case VFMSUB132SDZrb_Intkz: case VFMSUB132SDm_Int: case VFMSUB132SDr_Int: return true; } return false; } bool isKMOVD(unsigned Opcode) { switch (Opcode) { case KMOVDkk: case KMOVDkm: case KMOVDkr: case KMOVDmk: case KMOVDrk: return true; } return false; } bool isVCVTTPS2UQQ(unsigned Opcode) { switch (Opcode) { case VCVTTPS2UQQZ128rm: case VCVTTPS2UQQZ128rmb: case VCVTTPS2UQQZ128rmbk: case VCVTTPS2UQQZ128rmbkz: case VCVTTPS2UQQZ128rmk: case VCVTTPS2UQQZ128rmkz: case VCVTTPS2UQQZ128rr: case VCVTTPS2UQQZ128rrk: case VCVTTPS2UQQZ128rrkz: case VCVTTPS2UQQZ256rm: case VCVTTPS2UQQZ256rmb: case VCVTTPS2UQQZ256rmbk: case VCVTTPS2UQQZ256rmbkz: case VCVTTPS2UQQZ256rmk: case VCVTTPS2UQQZ256rmkz: case VCVTTPS2UQQZ256rr: case VCVTTPS2UQQZ256rrk: case VCVTTPS2UQQZ256rrkz: case VCVTTPS2UQQZrm: case VCVTTPS2UQQZrmb: case VCVTTPS2UQQZrmbk: case VCVTTPS2UQQZrmbkz: case VCVTTPS2UQQZrmk: case VCVTTPS2UQQZrmkz: case VCVTTPS2UQQZrr: case VCVTTPS2UQQZrrb: case VCVTTPS2UQQZrrbk: case VCVTTPS2UQQZrrbkz: case VCVTTPS2UQQZrrk: case VCVTTPS2UQQZrrkz: return true; } return false; } bool isVFMSUB132SH(unsigned Opcode) { switch (Opcode) { case VFMSUB132SHZm_Int: case VFMSUB132SHZm_Intk: case VFMSUB132SHZm_Intkz: case VFMSUB132SHZr_Int: case VFMSUB132SHZr_Intk: case VFMSUB132SHZr_Intkz: case VFMSUB132SHZrb_Int: case VFMSUB132SHZrb_Intk: case VFMSUB132SHZrb_Intkz: return true; } return false; } bool isDIVPS(unsigned Opcode) { switch (Opcode) { case DIVPSrm: case DIVPSrr: return true; } return false; } bool isVFCMULCSH(unsigned Opcode) { switch (Opcode) { case VFCMULCSHZrm: case VFCMULCSHZrmk: case VFCMULCSHZrmkz: case VFCMULCSHZrr: case VFCMULCSHZrrb: case VFCMULCSHZrrbk: case VFCMULCSHZrrbkz: case VFCMULCSHZrrk: case VFCMULCSHZrrkz: return true; } return false; } bool isFICOM(unsigned Opcode) { switch (Opcode) { case FICOM16m: case FICOM32m: return true; } return false; } bool isKMOVQ(unsigned Opcode) { switch (Opcode) { case KMOVQkk: case KMOVQkm: case KMOVQkr: case KMOVQmk: case KMOVQrk: return true; } return false; } bool isVFMSUB132SS(unsigned Opcode) { switch (Opcode) { case VFMSUB132SSZm_Int: case VFMSUB132SSZm_Intk: case VFMSUB132SSZm_Intkz: case VFMSUB132SSZr_Int: case VFMSUB132SSZr_Intk: case VFMSUB132SSZr_Intkz: case VFMSUB132SSZrb_Int: case VFMSUB132SSZrb_Intk: case VFMSUB132SSZrb_Intkz: case VFMSUB132SSm_Int: case VFMSUB132SSr_Int: return true; } return false; } bool isENCODEKEY128(unsigned Opcode) { return Opcode == ENCODEKEY128; } bool isKMOVW(unsigned Opcode) { switch (Opcode) { case KMOVWkk: case KMOVWkm: case KMOVWkr: case KMOVWmk: case KMOVWrk: return true; } return false; } bool isPREFETCHT0(unsigned Opcode) { return Opcode == PREFETCHT0; } bool isPREFETCHT1(unsigned Opcode) { return Opcode == PREFETCHT1; } bool isPREFETCHT2(unsigned Opcode) { return Opcode == PREFETCHT2; } bool isSWAPGS(unsigned Opcode) { return Opcode == SWAPGS; } bool isVPTESTMD(unsigned Opcode) { switch (Opcode) { case VPTESTMDZ128rm: case VPTESTMDZ128rmb: case VPTESTMDZ128rmbk: case VPTESTMDZ128rmk: case VPTESTMDZ128rr: case VPTESTMDZ128rrk: case VPTESTMDZ256rm: case VPTESTMDZ256rmb: case VPTESTMDZ256rmbk: case VPTESTMDZ256rmk: case VPTESTMDZ256rr: case VPTESTMDZ256rrk: case VPTESTMDZrm: case VPTESTMDZrmb: case VPTESTMDZrmbk: case VPTESTMDZrmk: case VPTESTMDZrr: case VPTESTMDZrrk: return true; } return false; } bool isVPTESTMB(unsigned Opcode) { switch (Opcode) { case VPTESTMBZ128rm: case VPTESTMBZ128rmk: case VPTESTMBZ128rr: case VPTESTMBZ128rrk: case VPTESTMBZ256rm: case VPTESTMBZ256rmk: case VPTESTMBZ256rr: case VPTESTMBZ256rrk: case VPTESTMBZrm: case VPTESTMBZrmk: case VPTESTMBZrr: case VPTESTMBZrrk: return true; } return false; } bool isVPHADDUDQ(unsigned Opcode) { switch (Opcode) { case VPHADDUDQrm: case VPHADDUDQrr: return true; } return false; } bool isVPTESTMQ(unsigned Opcode) { switch (Opcode) { case VPTESTMQZ128rm: case VPTESTMQZ128rmb: case VPTESTMQZ128rmbk: case VPTESTMQZ128rmk: case VPTESTMQZ128rr: case VPTESTMQZ128rrk: case VPTESTMQZ256rm: case VPTESTMQZ256rmb: case VPTESTMQZ256rmbk: case VPTESTMQZ256rmk: case VPTESTMQZ256rr: case VPTESTMQZ256rrk: case VPTESTMQZrm: case VPTESTMQZrmb: case VPTESTMQZrmbk: case VPTESTMQZrmk: case VPTESTMQZrr: case VPTESTMQZrrk: return true; } return false; } bool isXRSTORS(unsigned Opcode) { return Opcode == XRSTORS; } bool isVPMULDQ(unsigned Opcode) { switch (Opcode) { case VPMULDQYrm: case VPMULDQYrr: case VPMULDQZ128rm: case VPMULDQZ128rmb: case VPMULDQZ128rmbk: case VPMULDQZ128rmbkz: case VPMULDQZ128rmk: case VPMULDQZ128rmkz: case VPMULDQZ128rr: case VPMULDQZ128rrk: case VPMULDQZ128rrkz: case VPMULDQZ256rm: case VPMULDQZ256rmb: case VPMULDQZ256rmbk: case VPMULDQZ256rmbkz: case VPMULDQZ256rmk: case VPMULDQZ256rmkz: case VPMULDQZ256rr: case VPMULDQZ256rrk: case VPMULDQZ256rrkz: case VPMULDQZrm: case VPMULDQZrmb: case VPMULDQZrmbk: case VPMULDQZrmbkz: case VPMULDQZrmk: case VPMULDQZrmkz: case VPMULDQZrr: case VPMULDQZrrk: case VPMULDQZrrkz: case VPMULDQrm: case VPMULDQrr: return true; } return false; } bool isUD1(unsigned Opcode) { switch (Opcode) { case UD1Lm: case UD1Lr: case UD1Qm: case UD1Qr: case UD1Wm: case UD1Wr: return true; } return false; } bool isUD2(unsigned Opcode) { return Opcode == TRAP; } bool isVPTESTMW(unsigned Opcode) { switch (Opcode) { case VPTESTMWZ128rm: case VPTESTMWZ128rmk: case VPTESTMWZ128rr: case VPTESTMWZ128rrk: case VPTESTMWZ256rm: case VPTESTMWZ256rmk: case VPTESTMWZ256rr: case VPTESTMWZ256rrk: case VPTESTMWZrm: case VPTESTMWZrmk: case VPTESTMWZrr: case VPTESTMWZrrk: return true; } return false; } bool isSEAMOPS(unsigned Opcode) { return Opcode == SEAMOPS; } bool isMWAITX(unsigned Opcode) { return Opcode == MWAITXrrr; } bool isVFMADD132PD(unsigned Opcode) { switch (Opcode) { case VFMADD132PDYm: case VFMADD132PDYr: case VFMADD132PDZ128m: case VFMADD132PDZ128mb: case VFMADD132PDZ128mbk: case VFMADD132PDZ128mbkz: case VFMADD132PDZ128mk: case VFMADD132PDZ128mkz: case VFMADD132PDZ128r: case VFMADD132PDZ128rk: case VFMADD132PDZ128rkz: case VFMADD132PDZ256m: case VFMADD132PDZ256mb: case VFMADD132PDZ256mbk: case VFMADD132PDZ256mbkz: case VFMADD132PDZ256mk: case VFMADD132PDZ256mkz: case VFMADD132PDZ256r: case VFMADD132PDZ256rk: case VFMADD132PDZ256rkz: case VFMADD132PDZm: case VFMADD132PDZmb: case VFMADD132PDZmbk: case VFMADD132PDZmbkz: case VFMADD132PDZmk: case VFMADD132PDZmkz: case VFMADD132PDZr: case VFMADD132PDZrb: case VFMADD132PDZrbk: case VFMADD132PDZrbkz: case VFMADD132PDZrk: case VFMADD132PDZrkz: case VFMADD132PDm: case VFMADD132PDr: return true; } return false; } bool isWRMSRNS(unsigned Opcode) { return Opcode == WRMSRNS; } bool isVMOVNTDQ(unsigned Opcode) { switch (Opcode) { case VMOVNTDQYmr: case VMOVNTDQZ128mr: case VMOVNTDQZ256mr: case VMOVNTDQZmr: case VMOVNTDQmr: return true; } return false; } bool isVFMADD132PH(unsigned Opcode) { switch (Opcode) { case VFMADD132PHZ128m: case VFMADD132PHZ128mb: case VFMADD132PHZ128mbk: case VFMADD132PHZ128mbkz: case VFMADD132PHZ128mk: case VFMADD132PHZ128mkz: case VFMADD132PHZ128r: case VFMADD132PHZ128rk: case VFMADD132PHZ128rkz: case VFMADD132PHZ256m: case VFMADD132PHZ256mb: case VFMADD132PHZ256mbk: case VFMADD132PHZ256mbkz: case VFMADD132PHZ256mk: case VFMADD132PHZ256mkz: case VFMADD132PHZ256r: case VFMADD132PHZ256rk: case VFMADD132PHZ256rkz: case VFMADD132PHZm: case VFMADD132PHZmb: case VFMADD132PHZmbk: case VFMADD132PHZmbkz: case VFMADD132PHZmk: case VFMADD132PHZmkz: case VFMADD132PHZr: case VFMADD132PHZrb: case VFMADD132PHZrbk: case VFMADD132PHZrbkz: case VFMADD132PHZrk: case VFMADD132PHZrkz: return true; } return false; } bool isPSRLD(unsigned Opcode) { switch (Opcode) { case MMX_PSRLDri: case MMX_PSRLDrm: case MMX_PSRLDrr: case PSRLDri: case PSRLDrm: case PSRLDrr: return true; } return false; } bool isVBROADCASTI64X2(unsigned Opcode) { switch (Opcode) { case VBROADCASTI64X2Z128rm: case VBROADCASTI64X2Z128rmk: case VBROADCASTI64X2Z128rmkz: case VBROADCASTI64X2rm: case VBROADCASTI64X2rmk: case VBROADCASTI64X2rmkz: return true; } return false; } bool isVBROADCASTI64X4(unsigned Opcode) { switch (Opcode) { case VBROADCASTI64X4rm: case VBROADCASTI64X4rmk: case VBROADCASTI64X4rmkz: return true; } return false; } bool isVFMADD132PS(unsigned Opcode) { switch (Opcode) { case VFMADD132PSYm: case VFMADD132PSYr: case VFMADD132PSZ128m: case VFMADD132PSZ128mb: case VFMADD132PSZ128mbk: case VFMADD132PSZ128mbkz: case VFMADD132PSZ128mk: case VFMADD132PSZ128mkz: case VFMADD132PSZ128r: case VFMADD132PSZ128rk: case VFMADD132PSZ128rkz: case VFMADD132PSZ256m: case VFMADD132PSZ256mb: case VFMADD132PSZ256mbk: case VFMADD132PSZ256mbkz: case VFMADD132PSZ256mk: case VFMADD132PSZ256mkz: case VFMADD132PSZ256r: case VFMADD132PSZ256rk: case VFMADD132PSZ256rkz: case VFMADD132PSZm: case VFMADD132PSZmb: case VFMADD132PSZmbk: case VFMADD132PSZmbkz: case VFMADD132PSZmk: case VFMADD132PSZmkz: case VFMADD132PSZr: case VFMADD132PSZrb: case VFMADD132PSZrbk: case VFMADD132PSZrbkz: case VFMADD132PSZrk: case VFMADD132PSZrkz: case VFMADD132PSm: case VFMADD132PSr: return true; } return false; } bool isIDIV(unsigned Opcode) { switch (Opcode) { case IDIV16m: case IDIV16r: case IDIV32m: case IDIV32r: case IDIV64m: case IDIV64r: case IDIV8m: case IDIV8r: return true; } return false; } bool isPREFETCHWT1(unsigned Opcode) { return Opcode == PREFETCHWT1; } bool isVPSRLVD(unsigned Opcode) { switch (Opcode) { case VPSRLVDYrm: case VPSRLVDYrr: case VPSRLVDZ128rm: case VPSRLVDZ128rmb: case VPSRLVDZ128rmbk: case VPSRLVDZ128rmbkz: case VPSRLVDZ128rmk: case VPSRLVDZ128rmkz: case VPSRLVDZ128rr: case VPSRLVDZ128rrk: case VPSRLVDZ128rrkz: case VPSRLVDZ256rm: case VPSRLVDZ256rmb: case VPSRLVDZ256rmbk: case VPSRLVDZ256rmbkz: case VPSRLVDZ256rmk: case VPSRLVDZ256rmkz: case VPSRLVDZ256rr: case VPSRLVDZ256rrk: case VPSRLVDZ256rrkz: case VPSRLVDZrm: case VPSRLVDZrmb: case VPSRLVDZrmbk: case VPSRLVDZrmbkz: case VPSRLVDZrmk: case VPSRLVDZrmkz: case VPSRLVDZrr: case VPSRLVDZrrk: case VPSRLVDZrrkz: case VPSRLVDrm: case VPSRLVDrr: return true; } return false; } bool isPSRLQ(unsigned Opcode) { switch (Opcode) { case MMX_PSRLQri: case MMX_PSRLQrm: case MMX_PSRLQrr: case PSRLQri: case PSRLQrm: case PSRLQrr: return true; } return false; } bool isPSRLW(unsigned Opcode) { switch (Opcode) { case MMX_PSRLWri: case MMX_PSRLWrm: case MMX_PSRLWrr: case PSRLWri: case PSRLWrm: case PSRLWrr: return true; } return false; } bool isDIVSD(unsigned Opcode) { switch (Opcode) { case DIVSDrm_Int: case DIVSDrr_Int: return true; } return false; } bool isVPMOVDB(unsigned Opcode) { switch (Opcode) { case VPMOVDBZ128mr: case VPMOVDBZ128mrk: case VPMOVDBZ128rr: case VPMOVDBZ128rrk: case VPMOVDBZ128rrkz: case VPMOVDBZ256mr: case VPMOVDBZ256mrk: case VPMOVDBZ256rr: case VPMOVDBZ256rrk: case VPMOVDBZ256rrkz: case VPMOVDBZmr: case VPMOVDBZmrk: case VPMOVDBZrr: case VPMOVDBZrrk: case VPMOVDBZrrkz: return true; } return false; } bool isVPSRLVQ(unsigned Opcode) { switch (Opcode) { case VPSRLVQYrm: case VPSRLVQYrr: case VPSRLVQZ128rm: case VPSRLVQZ128rmb: case VPSRLVQZ128rmbk: case VPSRLVQZ128rmbkz: case VPSRLVQZ128rmk: case VPSRLVQZ128rmkz: case VPSRLVQZ128rr: case VPSRLVQZ128rrk: case VPSRLVQZ128rrkz: case VPSRLVQZ256rm: case VPSRLVQZ256rmb: case VPSRLVQZ256rmbk: case VPSRLVQZ256rmbkz: case VPSRLVQZ256rmk: case VPSRLVQZ256rmkz: case VPSRLVQZ256rr: case VPSRLVQZ256rrk: case VPSRLVQZ256rrkz: case VPSRLVQZrm: case VPSRLVQZrmb: case VPSRLVQZrmbk: case VPSRLVQZrmbkz: case VPSRLVQZrmk: case VPSRLVQZrmkz: case VPSRLVQZrr: case VPSRLVQZrrk: case VPSRLVQZrrkz: case VPSRLVQrm: case VPSRLVQrr: return true; } return false; } bool isVPSRLVW(unsigned Opcode) { switch (Opcode) { case VPSRLVWZ128rm: case VPSRLVWZ128rmk: case VPSRLVWZ128rmkz: case VPSRLVWZ128rr: case VPSRLVWZ128rrk: case VPSRLVWZ128rrkz: case VPSRLVWZ256rm: case VPSRLVWZ256rmk: case VPSRLVWZ256rmkz: case VPSRLVWZ256rr: case VPSRLVWZ256rrk: case VPSRLVWZ256rrkz: case VPSRLVWZrm: case VPSRLVWZrmk: case VPSRLVWZrmkz: case VPSRLVWZrr: case VPSRLVWZrrk: case VPSRLVWZrrkz: return true; } return false; } bool isDIVSS(unsigned Opcode) { switch (Opcode) { case DIVSSrm_Int: case DIVSSrr_Int: return true; } return false; } bool isMUL(unsigned Opcode) { switch (Opcode) { case MUL16m: case MUL16r: case MUL32m: case MUL32r: case MUL64m: case MUL64r: case MUL8m: case MUL8r: return true; } return false; } bool isVPMOVDW(unsigned Opcode) { switch (Opcode) { case VPMOVDWZ128mr: case VPMOVDWZ128mrk: case VPMOVDWZ128rr: case VPMOVDWZ128rrk: case VPMOVDWZ128rrkz: case VPMOVDWZ256mr: case VPMOVDWZ256mrk: case VPMOVDWZ256rr: case VPMOVDWZ256rrk: case VPMOVDWZ256rrkz: case VPMOVDWZmr: case VPMOVDWZmrk: case VPMOVDWZrr: case VPMOVDWZrrk: case VPMOVDWZrrkz: return true; } return false; } bool isVCVTTPD2UQQ(unsigned Opcode) { switch (Opcode) { case VCVTTPD2UQQZ128rm: case VCVTTPD2UQQZ128rmb: case VCVTTPD2UQQZ128rmbk: case VCVTTPD2UQQZ128rmbkz: case VCVTTPD2UQQZ128rmk: case VCVTTPD2UQQZ128rmkz: case VCVTTPD2UQQZ128rr: case VCVTTPD2UQQZ128rrk: case VCVTTPD2UQQZ128rrkz: case VCVTTPD2UQQZ256rm: case VCVTTPD2UQQZ256rmb: case VCVTTPD2UQQZ256rmbk: case VCVTTPD2UQQZ256rmbkz: case VCVTTPD2UQQZ256rmk: case VCVTTPD2UQQZ256rmkz: case VCVTTPD2UQQZ256rr: case VCVTTPD2UQQZ256rrk: case VCVTTPD2UQQZ256rrkz: case VCVTTPD2UQQZrm: case VCVTTPD2UQQZrmb: case VCVTTPD2UQQZrmbk: case VCVTTPD2UQQZrmbkz: case VCVTTPD2UQQZrmk: case VCVTTPD2UQQZrmkz: case VCVTTPD2UQQZrr: case VCVTTPD2UQQZrrb: case VCVTTPD2UQQZrrbk: case VCVTTPD2UQQZrrbkz: case VCVTTPD2UQQZrrk: case VCVTTPD2UQQZrrkz: return true; } return false; } bool isFSINCOS(unsigned Opcode) { return Opcode == FSINCOS; } bool isVPMADD52LUQ(unsigned Opcode) { switch (Opcode) { case VPMADD52LUQYrm: case VPMADD52LUQYrr: case VPMADD52LUQZ128m: case VPMADD52LUQZ128mb: case VPMADD52LUQZ128mbk: case VPMADD52LUQZ128mbkz: case VPMADD52LUQZ128mk: case VPMADD52LUQZ128mkz: case VPMADD52LUQZ128r: case VPMADD52LUQZ128rk: case VPMADD52LUQZ128rkz: case VPMADD52LUQZ256m: case VPMADD52LUQZ256mb: case VPMADD52LUQZ256mbk: case VPMADD52LUQZ256mbkz: case VPMADD52LUQZ256mk: case VPMADD52LUQZ256mkz: case VPMADD52LUQZ256r: case VPMADD52LUQZ256rk: case VPMADD52LUQZ256rkz: case VPMADD52LUQZm: case VPMADD52LUQZmb: case VPMADD52LUQZmbk: case VPMADD52LUQZmbkz: case VPMADD52LUQZmk: case VPMADD52LUQZmkz: case VPMADD52LUQZr: case VPMADD52LUQZrk: case VPMADD52LUQZrkz: case VPMADD52LUQrm: case VPMADD52LUQrr: return true; } return false; } bool isLWPINS(unsigned Opcode) { switch (Opcode) { case LWPINS32rmi: case LWPINS32rri: case LWPINS64rmi: case LWPINS64rri: return true; } return false; } bool isMOVDIR64B(unsigned Opcode) { switch (Opcode) { case MOVDIR64B16: case MOVDIR64B32: case MOVDIR64B64: return true; } return false; } bool isLOOPE(unsigned Opcode) { return Opcode == LOOPE; } bool isPUSH(unsigned Opcode) { switch (Opcode) { case PUSH16i8: case PUSH16r: case PUSH16rmm: case PUSH16rmr: case PUSH32i8: case PUSH32r: case PUSH32rmm: case PUSH32rmr: case PUSH64i32: case PUSH64i8: case PUSH64r: case PUSH64rmm: case PUSH64rmr: case PUSHCS16: case PUSHCS32: case PUSHDS16: case PUSHDS32: case PUSHES16: case PUSHES32: case PUSHFS16: case PUSHFS32: case PUSHFS64: case PUSHGS16: case PUSHGS32: case PUSHGS64: case PUSHSS16: case PUSHSS32: case PUSHi16: case PUSHi32: return true; } return false; } bool isPSADBW(unsigned Opcode) { switch (Opcode) { case MMX_PSADBWrm: case MMX_PSADBWrr: case PSADBWrm: case PSADBWrr: return true; } return false; } bool isFTST(unsigned Opcode) { return Opcode == TST_F; } bool isSETSSBSY(unsigned Opcode) { return Opcode == SETSSBSY; } bool isSARX(unsigned Opcode) { switch (Opcode) { case SARX32rm: case SARX32rr: case SARX64rm: case SARX64rr: return true; } return false; } bool isVADDSUBPD(unsigned Opcode) { switch (Opcode) { case VADDSUBPDYrm: case VADDSUBPDYrr: case VADDSUBPDrm: case VADDSUBPDrr: return true; } return false; } bool isVADDSUBPS(unsigned Opcode) { switch (Opcode) { case VADDSUBPSYrm: case VADDSUBPSYrr: case VADDSUBPSrm: case VADDSUBPSrr: return true; } return false; } bool isVMINPD(unsigned Opcode) { switch (Opcode) { case VMINPDYrm: case VMINPDYrr: case VMINPDZ128rm: case VMINPDZ128rmb: case VMINPDZ128rmbk: case VMINPDZ128rmbkz: case VMINPDZ128rmk: case VMINPDZ128rmkz: case VMINPDZ128rr: case VMINPDZ128rrk: case VMINPDZ128rrkz: case VMINPDZ256rm: case VMINPDZ256rmb: case VMINPDZ256rmbk: case VMINPDZ256rmbkz: case VMINPDZ256rmk: case VMINPDZ256rmkz: case VMINPDZ256rr: case VMINPDZ256rrk: case VMINPDZ256rrkz: case VMINPDZrm: case VMINPDZrmb: case VMINPDZrmbk: case VMINPDZrmbkz: case VMINPDZrmk: case VMINPDZrmkz: case VMINPDZrr: case VMINPDZrrb: case VMINPDZrrbk: case VMINPDZrrbkz: case VMINPDZrrk: case VMINPDZrrkz: case VMINPDrm: case VMINPDrr: return true; } return false; } bool isCLZERO(unsigned Opcode) { switch (Opcode) { case CLZERO32r: case CLZERO64r: return true; } return false; } bool isVMINPH(unsigned Opcode) { switch (Opcode) { case VMINPHZ128rm: case VMINPHZ128rmb: case VMINPHZ128rmbk: case VMINPHZ128rmbkz: case VMINPHZ128rmk: case VMINPHZ128rmkz: case VMINPHZ128rr: case VMINPHZ128rrk: case VMINPHZ128rrkz: case VMINPHZ256rm: case VMINPHZ256rmb: case VMINPHZ256rmbk: case VMINPHZ256rmbkz: case VMINPHZ256rmk: case VMINPHZ256rmkz: case VMINPHZ256rr: case VMINPHZ256rrk: case VMINPHZ256rrkz: case VMINPHZrm: case VMINPHZrmb: case VMINPHZrmbk: case VMINPHZrmbkz: case VMINPHZrmk: case VMINPHZrmkz: case VMINPHZrr: case VMINPHZrrb: case VMINPHZrrbk: case VMINPHZrrbkz: case VMINPHZrrk: case VMINPHZrrkz: return true; } return false; } bool isXCRYPTCBC(unsigned Opcode) { return Opcode == XCRYPTCBC; } bool isFXTRACT(unsigned Opcode) { return Opcode == FXTRACT; } bool isVMINPS(unsigned Opcode) { switch (Opcode) { case VMINPSYrm: case VMINPSYrr: case VMINPSZ128rm: case VMINPSZ128rmb: case VMINPSZ128rmbk: case VMINPSZ128rmbkz: case VMINPSZ128rmk: case VMINPSZ128rmkz: case VMINPSZ128rr: case VMINPSZ128rrk: case VMINPSZ128rrkz: case VMINPSZ256rm: case VMINPSZ256rmb: case VMINPSZ256rmbk: case VMINPSZ256rmbkz: case VMINPSZ256rmk: case VMINPSZ256rmkz: case VMINPSZ256rr: case VMINPSZ256rrk: case VMINPSZ256rrkz: case VMINPSZrm: case VMINPSZrmb: case VMINPSZrmbk: case VMINPSZrmbkz: case VMINPSZrmk: case VMINPSZrmkz: case VMINPSZrr: case VMINPSZrrb: case VMINPSZrrbk: case VMINPSZrrbkz: case VMINPSZrrk: case VMINPSZrrkz: case VMINPSrm: case VMINPSrr: return true; } return false; } bool isVFMADD132SD(unsigned Opcode) { switch (Opcode) { case VFMADD132SDZm_Int: case VFMADD132SDZm_Intk: case VFMADD132SDZm_Intkz: case VFMADD132SDZr_Int: case VFMADD132SDZr_Intk: case VFMADD132SDZr_Intkz: case VFMADD132SDZrb_Int: case VFMADD132SDZrb_Intk: case VFMADD132SDZrb_Intkz: case VFMADD132SDm_Int: case VFMADD132SDr_Int: return true; } return false; } bool isVFMADD132SH(unsigned Opcode) { switch (Opcode) { case VFMADD132SHZm_Int: case VFMADD132SHZm_Intk: case VFMADD132SHZm_Intkz: case VFMADD132SHZr_Int: case VFMADD132SHZr_Intk: case VFMADD132SHZr_Intkz: case VFMADD132SHZrb_Int: case VFMADD132SHZrb_Intk: case VFMADD132SHZrb_Intkz: return true; } return false; } bool isVPERMI2B(unsigned Opcode) { switch (Opcode) { case VPERMI2B128rm: case VPERMI2B128rmk: case VPERMI2B128rmkz: case VPERMI2B128rr: case VPERMI2B128rrk: case VPERMI2B128rrkz: case VPERMI2B256rm: case VPERMI2B256rmk: case VPERMI2B256rmkz: case VPERMI2B256rr: case VPERMI2B256rrk: case VPERMI2B256rrkz: case VPERMI2Brm: case VPERMI2Brmk: case VPERMI2Brmkz: case VPERMI2Brr: case VPERMI2Brrk: case VPERMI2Brrkz: return true; } return false; } bool isVPERMI2D(unsigned Opcode) { switch (Opcode) { case VPERMI2D128rm: case VPERMI2D128rmb: case VPERMI2D128rmbk: case VPERMI2D128rmbkz: case VPERMI2D128rmk: case VPERMI2D128rmkz: case VPERMI2D128rr: case VPERMI2D128rrk: case VPERMI2D128rrkz: case VPERMI2D256rm: case VPERMI2D256rmb: case VPERMI2D256rmbk: case VPERMI2D256rmbkz: case VPERMI2D256rmk: case VPERMI2D256rmkz: case VPERMI2D256rr: case VPERMI2D256rrk: case VPERMI2D256rrkz: case VPERMI2Drm: case VPERMI2Drmb: case VPERMI2Drmbk: case VPERMI2Drmbkz: case VPERMI2Drmk: case VPERMI2Drmkz: case VPERMI2Drr: case VPERMI2Drrk: case VPERMI2Drrkz: return true; } return false; } bool isVFMADD132SS(unsigned Opcode) { switch (Opcode) { case VFMADD132SSZm_Int: case VFMADD132SSZm_Intk: case VFMADD132SSZm_Intkz: case VFMADD132SSZr_Int: case VFMADD132SSZr_Intk: case VFMADD132SSZr_Intkz: case VFMADD132SSZrb_Int: case VFMADD132SSZrb_Intk: case VFMADD132SSZrb_Intkz: case VFMADD132SSm_Int: case VFMADD132SSr_Int: return true; } return false; } bool isVRSQRT28PD(unsigned Opcode) { switch (Opcode) { case VRSQRT28PDZm: case VRSQRT28PDZmb: case VRSQRT28PDZmbk: case VRSQRT28PDZmbkz: case VRSQRT28PDZmk: case VRSQRT28PDZmkz: case VRSQRT28PDZr: case VRSQRT28PDZrb: case VRSQRT28PDZrbk: case VRSQRT28PDZrbkz: case VRSQRT28PDZrk: case VRSQRT28PDZrkz: return true; } return false; } bool isVPMULHW(unsigned Opcode) { switch (Opcode) { case VPMULHWYrm: case VPMULHWYrr: case VPMULHWZ128rm: case VPMULHWZ128rmk: case VPMULHWZ128rmkz: case VPMULHWZ128rr: case VPMULHWZ128rrk: case VPMULHWZ128rrkz: case VPMULHWZ256rm: case VPMULHWZ256rmk: case VPMULHWZ256rmkz: case VPMULHWZ256rr: case VPMULHWZ256rrk: case VPMULHWZ256rrkz: case VPMULHWZrm: case VPMULHWZrmk: case VPMULHWZrmkz: case VPMULHWZrr: case VPMULHWZrrk: case VPMULHWZrrkz: case VPMULHWrm: case VPMULHWrr: return true; } return false; } bool isSIDT(unsigned Opcode) { return Opcode == SIDT64m; } bool isTDCALL(unsigned Opcode) { return Opcode == TDCALL; } bool isVPERMI2Q(unsigned Opcode) { switch (Opcode) { case VPERMI2Q128rm: case VPERMI2Q128rmb: case VPERMI2Q128rmbk: case VPERMI2Q128rmbkz: case VPERMI2Q128rmk: case VPERMI2Q128rmkz: case VPERMI2Q128rr: case VPERMI2Q128rrk: case VPERMI2Q128rrkz: case VPERMI2Q256rm: case VPERMI2Q256rmb: case VPERMI2Q256rmbk: case VPERMI2Q256rmbkz: case VPERMI2Q256rmk: case VPERMI2Q256rmkz: case VPERMI2Q256rr: case VPERMI2Q256rrk: case VPERMI2Q256rrkz: case VPERMI2Qrm: case VPERMI2Qrmb: case VPERMI2Qrmbk: case VPERMI2Qrmbkz: case VPERMI2Qrmk: case VPERMI2Qrmkz: case VPERMI2Qrr: case VPERMI2Qrrk: case VPERMI2Qrrkz: return true; } return false; } bool isVPERMI2W(unsigned Opcode) { switch (Opcode) { case VPERMI2W128rm: case VPERMI2W128rmk: case VPERMI2W128rmkz: case VPERMI2W128rr: case VPERMI2W128rrk: case VPERMI2W128rrkz: case VPERMI2W256rm: case VPERMI2W256rmk: case VPERMI2W256rmkz: case VPERMI2W256rr: case VPERMI2W256rrk: case VPERMI2W256rrkz: case VPERMI2Wrm: case VPERMI2Wrmk: case VPERMI2Wrmkz: case VPERMI2Wrr: case VPERMI2Wrrk: case VPERMI2Wrrkz: return true; } return false; } bool isVPERM2F128(unsigned Opcode) { switch (Opcode) { case VPERM2F128rm: case VPERM2F128rr: return true; } return false; } bool isVMLAUNCH(unsigned Opcode) { return Opcode == VMLAUNCH; } bool isFILD(unsigned Opcode) { switch (Opcode) { case ILD_F16m: case ILD_F32m: case ILD_F64m: return true; } return false; } bool isVRSQRT28PS(unsigned Opcode) { switch (Opcode) { case VRSQRT28PSZm: case VRSQRT28PSZmb: case VRSQRT28PSZmbk: case VRSQRT28PSZmbkz: case VRSQRT28PSZmk: case VRSQRT28PSZmkz: case VRSQRT28PSZr: case VRSQRT28PSZrb: case VRSQRT28PSZrbk: case VRSQRT28PSZrbkz: case VRSQRT28PSZrk: case VRSQRT28PSZrkz: return true; } return false; } bool isVPBLENDVB(unsigned Opcode) { switch (Opcode) { case VPBLENDVBYrm: case VPBLENDVBYrr: case VPBLENDVBrm: case VPBLENDVBrr: return true; } return false; } bool isVPMADDUBSW(unsigned Opcode) { switch (Opcode) { case VPMADDUBSWYrm: case VPMADDUBSWYrr: case VPMADDUBSWZ128rm: case VPMADDUBSWZ128rmk: case VPMADDUBSWZ128rmkz: case VPMADDUBSWZ128rr: case VPMADDUBSWZ128rrk: case VPMADDUBSWZ128rrkz: case VPMADDUBSWZ256rm: case VPMADDUBSWZ256rmk: case VPMADDUBSWZ256rmkz: case VPMADDUBSWZ256rr: case VPMADDUBSWZ256rrk: case VPMADDUBSWZ256rrkz: case VPMADDUBSWZrm: case VPMADDUBSWZrmk: case VPMADDUBSWZrmkz: case VPMADDUBSWZrr: case VPMADDUBSWZrrk: case VPMADDUBSWZrrkz: case VPMADDUBSWrm: case VPMADDUBSWrr: return true; } return false; } bool isVSTMXCSR(unsigned Opcode) { return Opcode == VSTMXCSR; } bool isVCVTTPH2UDQ(unsigned Opcode) { switch (Opcode) { case VCVTTPH2UDQZ128rm: case VCVTTPH2UDQZ128rmb: case VCVTTPH2UDQZ128rmbk: case VCVTTPH2UDQZ128rmbkz: case VCVTTPH2UDQZ128rmk: case VCVTTPH2UDQZ128rmkz: case VCVTTPH2UDQZ128rr: case VCVTTPH2UDQZ128rrk: case VCVTTPH2UDQZ128rrkz: case VCVTTPH2UDQZ256rm: case VCVTTPH2UDQZ256rmb: case VCVTTPH2UDQZ256rmbk: case VCVTTPH2UDQZ256rmbkz: case VCVTTPH2UDQZ256rmk: case VCVTTPH2UDQZ256rmkz: case VCVTTPH2UDQZ256rr: case VCVTTPH2UDQZ256rrk: case VCVTTPH2UDQZ256rrkz: case VCVTTPH2UDQZrm: case VCVTTPH2UDQZrmb: case VCVTTPH2UDQZrmbk: case VCVTTPH2UDQZrmbkz: case VCVTTPH2UDQZrmk: case VCVTTPH2UDQZrmkz: case VCVTTPH2UDQZrr: case VCVTTPH2UDQZrrb: case VCVTTPH2UDQZrrbk: case VCVTTPH2UDQZrrbkz: case VCVTTPH2UDQZrrk: case VCVTTPH2UDQZrrkz: return true; } return false; } bool isXSHA256(unsigned Opcode) { return Opcode == XSHA256; } bool isWAIT(unsigned Opcode) { return Opcode == WAIT; } bool isPACKSSWB(unsigned Opcode) { switch (Opcode) { case MMX_PACKSSWBrm: case MMX_PACKSSWBrr: case PACKSSWBrm: case PACKSSWBrr: return true; } return false; } bool isPMULHRSW(unsigned Opcode) { switch (Opcode) { case MMX_PMULHRSWrm: case MMX_PMULHRSWrr: case PMULHRSWrm: case PMULHRSWrr: return true; } return false; } bool isMASKMOVQ(unsigned Opcode) { switch (Opcode) { case MMX_MASKMOVQ: case MMX_MASKMOVQ64: return true; } return false; } bool isVMINSD(unsigned Opcode) { switch (Opcode) { case VMINSDZrm_Int: case VMINSDZrm_Intk: case VMINSDZrm_Intkz: case VMINSDZrr_Int: case VMINSDZrr_Intk: case VMINSDZrr_Intkz: case VMINSDZrrb_Int: case VMINSDZrrb_Intk: case VMINSDZrrb_Intkz: case VMINSDrm_Int: case VMINSDrr_Int: return true; } return false; } bool isVMINSH(unsigned Opcode) { switch (Opcode) { case VMINSHZrm_Int: case VMINSHZrm_Intk: case VMINSHZrm_Intkz: case VMINSHZrr_Int: case VMINSHZrr_Intk: case VMINSHZrr_Intkz: case VMINSHZrrb_Int: case VMINSHZrrb_Intk: case VMINSHZrrb_Intkz: return true; } return false; } bool isRDTSC(unsigned Opcode) { return Opcode == RDTSC; } bool isVMINSS(unsigned Opcode) { switch (Opcode) { case VMINSSZrm_Int: case VMINSSZrm_Intk: case VMINSSZrm_Intkz: case VMINSSZrr_Int: case VMINSSZrr_Intk: case VMINSSZrr_Intkz: case VMINSSZrrb_Int: case VMINSSZrrb_Intk: case VMINSSZrrb_Intkz: case VMINSSrm_Int: case VMINSSrr_Int: return true; } return false; } bool isVRSQRT28SD(unsigned Opcode) { switch (Opcode) { case VRSQRT28SDZm: case VRSQRT28SDZmk: case VRSQRT28SDZmkz: case VRSQRT28SDZr: case VRSQRT28SDZrb: case VRSQRT28SDZrbk: case VRSQRT28SDZrbkz: case VRSQRT28SDZrk: case VRSQRT28SDZrkz: return true; } return false; } bool isAAND(unsigned Opcode) { switch (Opcode) { case AAND32mr: case AAND64mr: return true; } return false; } bool isXCRYPTCFB(unsigned Opcode) { return Opcode == XCRYPTCFB; } bool isVSCALEFPD(unsigned Opcode) { switch (Opcode) { case VSCALEFPDZ128rm: case VSCALEFPDZ128rmb: case VSCALEFPDZ128rmbk: case VSCALEFPDZ128rmbkz: case VSCALEFPDZ128rmk: case VSCALEFPDZ128rmkz: case VSCALEFPDZ128rr: case VSCALEFPDZ128rrk: case VSCALEFPDZ128rrkz: case VSCALEFPDZ256rm: case VSCALEFPDZ256rmb: case VSCALEFPDZ256rmbk: case VSCALEFPDZ256rmbkz: case VSCALEFPDZ256rmk: case VSCALEFPDZ256rmkz: case VSCALEFPDZ256rr: case VSCALEFPDZ256rrk: case VSCALEFPDZ256rrkz: case VSCALEFPDZrm: case VSCALEFPDZrmb: case VSCALEFPDZrmbk: case VSCALEFPDZrmbkz: case VSCALEFPDZrmk: case VSCALEFPDZrmkz: case VSCALEFPDZrr: case VSCALEFPDZrrb: case VSCALEFPDZrrbk: case VSCALEFPDZrrbkz: case VSCALEFPDZrrk: case VSCALEFPDZrrkz: return true; } return false; } bool isVPBROADCASTB(unsigned Opcode) { switch (Opcode) { case VPBROADCASTBYrm: case VPBROADCASTBYrr: case VPBROADCASTBZ128rm: case VPBROADCASTBZ128rmk: case VPBROADCASTBZ128rmkz: case VPBROADCASTBZ128rr: case VPBROADCASTBZ128rrk: case VPBROADCASTBZ128rrkz: case VPBROADCASTBZ256rm: case VPBROADCASTBZ256rmk: case VPBROADCASTBZ256rmkz: case VPBROADCASTBZ256rr: case VPBROADCASTBZ256rrk: case VPBROADCASTBZ256rrkz: case VPBROADCASTBZrm: case VPBROADCASTBZrmk: case VPBROADCASTBZrmkz: case VPBROADCASTBZrr: case VPBROADCASTBZrrk: case VPBROADCASTBZrrkz: case VPBROADCASTBrZ128rr: case VPBROADCASTBrZ128rrk: case VPBROADCASTBrZ128rrkz: case VPBROADCASTBrZ256rr: case VPBROADCASTBrZ256rrk: case VPBROADCASTBrZ256rrkz: case VPBROADCASTBrZrr: case VPBROADCASTBrZrrk: case VPBROADCASTBrZrrkz: case VPBROADCASTBrm: case VPBROADCASTBrr: return true; } return false; } bool isVSCALEFPH(unsigned Opcode) { switch (Opcode) { case VSCALEFPHZ128rm: case VSCALEFPHZ128rmb: case VSCALEFPHZ128rmbk: case VSCALEFPHZ128rmbkz: case VSCALEFPHZ128rmk: case VSCALEFPHZ128rmkz: case VSCALEFPHZ128rr: case VSCALEFPHZ128rrk: case VSCALEFPHZ128rrkz: case VSCALEFPHZ256rm: case VSCALEFPHZ256rmb: case VSCALEFPHZ256rmbk: case VSCALEFPHZ256rmbkz: case VSCALEFPHZ256rmk: case VSCALEFPHZ256rmkz: case VSCALEFPHZ256rr: case VSCALEFPHZ256rrk: case VSCALEFPHZ256rrkz: case VSCALEFPHZrm: case VSCALEFPHZrmb: case VSCALEFPHZrmbk: case VSCALEFPHZrmbkz: case VSCALEFPHZrmk: case VSCALEFPHZrmkz: case VSCALEFPHZrr: case VSCALEFPHZrrb: case VSCALEFPHZrrbk: case VSCALEFPHZrrbkz: case VSCALEFPHZrrk: case VSCALEFPHZrrkz: return true; } return false; } bool isVPBROADCASTD(unsigned Opcode) { switch (Opcode) { case VPBROADCASTDYrm: case VPBROADCASTDYrr: case VPBROADCASTDZ128rm: case VPBROADCASTDZ128rmk: case VPBROADCASTDZ128rmkz: case VPBROADCASTDZ128rr: case VPBROADCASTDZ128rrk: case VPBROADCASTDZ128rrkz: case VPBROADCASTDZ256rm: case VPBROADCASTDZ256rmk: case VPBROADCASTDZ256rmkz: case VPBROADCASTDZ256rr: case VPBROADCASTDZ256rrk: case VPBROADCASTDZ256rrkz: case VPBROADCASTDZrm: case VPBROADCASTDZrmk: case VPBROADCASTDZrmkz: case VPBROADCASTDZrr: case VPBROADCASTDZrrk: case VPBROADCASTDZrrkz: case VPBROADCASTDrZ128rr: case VPBROADCASTDrZ128rrk: case VPBROADCASTDrZ128rrkz: case VPBROADCASTDrZ256rr: case VPBROADCASTDrZ256rrk: case VPBROADCASTDrZ256rrkz: case VPBROADCASTDrZrr: case VPBROADCASTDrZrrk: case VPBROADCASTDrZrrkz: case VPBROADCASTDrm: case VPBROADCASTDrr: return true; } return false; } bool isVRSQRT28SS(unsigned Opcode) { switch (Opcode) { case VRSQRT28SSZm: case VRSQRT28SSZmk: case VRSQRT28SSZmkz: case VRSQRT28SSZr: case VRSQRT28SSZrb: case VRSQRT28SSZrbk: case VRSQRT28SSZrbkz: case VRSQRT28SSZrk: case VRSQRT28SSZrkz: return true; } return false; } bool isVPMULLD(unsigned Opcode) { switch (Opcode) { case VPMULLDYrm: case VPMULLDYrr: case VPMULLDZ128rm: case VPMULLDZ128rmb: case VPMULLDZ128rmbk: case VPMULLDZ128rmbkz: case VPMULLDZ128rmk: case VPMULLDZ128rmkz: case VPMULLDZ128rr: case VPMULLDZ128rrk: case VPMULLDZ128rrkz: case VPMULLDZ256rm: case VPMULLDZ256rmb: case VPMULLDZ256rmbk: case VPMULLDZ256rmbkz: case VPMULLDZ256rmk: case VPMULLDZ256rmkz: case VPMULLDZ256rr: case VPMULLDZ256rrk: case VPMULLDZ256rrkz: case VPMULLDZrm: case VPMULLDZrmb: case VPMULLDZrmbk: case VPMULLDZrmbkz: case VPMULLDZrmk: case VPMULLDZrmkz: case VPMULLDZrr: case VPMULLDZrrk: case VPMULLDZrrkz: case VPMULLDrm: case VPMULLDrr: return true; } return false; } bool isVSCALEFPS(unsigned Opcode) { switch (Opcode) { case VSCALEFPSZ128rm: case VSCALEFPSZ128rmb: case VSCALEFPSZ128rmbk: case VSCALEFPSZ128rmbkz: case VSCALEFPSZ128rmk: case VSCALEFPSZ128rmkz: case VSCALEFPSZ128rr: case VSCALEFPSZ128rrk: case VSCALEFPSZ128rrkz: case VSCALEFPSZ256rm: case VSCALEFPSZ256rmb: case VSCALEFPSZ256rmbk: case VSCALEFPSZ256rmbkz: case VSCALEFPSZ256rmk: case VSCALEFPSZ256rmkz: case VSCALEFPSZ256rr: case VSCALEFPSZ256rrk: case VSCALEFPSZ256rrkz: case VSCALEFPSZrm: case VSCALEFPSZrmb: case VSCALEFPSZrmbk: case VSCALEFPSZrmbkz: case VSCALEFPSZrmk: case VSCALEFPSZrmkz: case VSCALEFPSZrr: case VSCALEFPSZrrb: case VSCALEFPSZrrbk: case VSCALEFPSZrrbkz: case VSCALEFPSZrrk: case VSCALEFPSZrrkz: return true; } return false; } bool isMOVQ2DQ(unsigned Opcode) { return Opcode == MMX_MOVQ2DQrr; } bool isVPBROADCASTQ(unsigned Opcode) { switch (Opcode) { case VPBROADCASTQYrm: case VPBROADCASTQYrr: case VPBROADCASTQZ128rm: case VPBROADCASTQZ128rmk: case VPBROADCASTQZ128rmkz: case VPBROADCASTQZ128rr: case VPBROADCASTQZ128rrk: case VPBROADCASTQZ128rrkz: case VPBROADCASTQZ256rm: case VPBROADCASTQZ256rmk: case VPBROADCASTQZ256rmkz: case VPBROADCASTQZ256rr: case VPBROADCASTQZ256rrk: case VPBROADCASTQZ256rrkz: case VPBROADCASTQZrm: case VPBROADCASTQZrmk: case VPBROADCASTQZrmkz: case VPBROADCASTQZrr: case VPBROADCASTQZrrk: case VPBROADCASTQZrrkz: case VPBROADCASTQrZ128rr: case VPBROADCASTQrZ128rrk: case VPBROADCASTQrZ128rrkz: case VPBROADCASTQrZ256rr: case VPBROADCASTQrZ256rrk: case VPBROADCASTQrZ256rrkz: case VPBROADCASTQrZrr: case VPBROADCASTQrZrrk: case VPBROADCASTQrZrrkz: case VPBROADCASTQrm: case VPBROADCASTQrr: return true; } return false; } bool isPALIGNR(unsigned Opcode) { switch (Opcode) { case MMX_PALIGNRrmi: case MMX_PALIGNRrri: case PALIGNRrmi: case PALIGNRrri: return true; } return false; } bool isPUSHAL(unsigned Opcode) { return Opcode == PUSHA32; } bool isVPBROADCASTW(unsigned Opcode) { switch (Opcode) { case VPBROADCASTWYrm: case VPBROADCASTWYrr: case VPBROADCASTWZ128rm: case VPBROADCASTWZ128rmk: case VPBROADCASTWZ128rmkz: case VPBROADCASTWZ128rr: case VPBROADCASTWZ128rrk: case VPBROADCASTWZ128rrkz: case VPBROADCASTWZ256rm: case VPBROADCASTWZ256rmk: case VPBROADCASTWZ256rmkz: case VPBROADCASTWZ256rr: case VPBROADCASTWZ256rrk: case VPBROADCASTWZ256rrkz: case VPBROADCASTWZrm: case VPBROADCASTWZrmk: case VPBROADCASTWZrmkz: case VPBROADCASTWZrr: case VPBROADCASTWZrrk: case VPBROADCASTWZrrkz: case VPBROADCASTWrZ128rr: case VPBROADCASTWrZ128rrk: case VPBROADCASTWrZ128rrkz: case VPBROADCASTWrZ256rr: case VPBROADCASTWrZ256rrk: case VPBROADCASTWrZ256rrkz: case VPBROADCASTWrZrr: case VPBROADCASTWrZrrk: case VPBROADCASTWrZrrkz: case VPBROADCASTWrm: case VPBROADCASTWrr: return true; } return false; } bool isVPMULLQ(unsigned Opcode) { switch (Opcode) { case VPMULLQZ128rm: case VPMULLQZ128rmb: case VPMULLQZ128rmbk: case VPMULLQZ128rmbkz: case VPMULLQZ128rmk: case VPMULLQZ128rmkz: case VPMULLQZ128rr: case VPMULLQZ128rrk: case VPMULLQZ128rrkz: case VPMULLQZ256rm: case VPMULLQZ256rmb: case VPMULLQZ256rmbk: case VPMULLQZ256rmbkz: case VPMULLQZ256rmk: case VPMULLQZ256rmkz: case VPMULLQZ256rr: case VPMULLQZ256rrk: case VPMULLQZ256rrkz: case VPMULLQZrm: case VPMULLQZrmb: case VPMULLQZrmbk: case VPMULLQZrmbkz: case VPMULLQZrmk: case VPMULLQZrmkz: case VPMULLQZrr: case VPMULLQZrrk: case VPMULLQZrrkz: return true; } return false; } bool isFINCSTP(unsigned Opcode) { return Opcode == FINCSTP; } bool isPUSHAW(unsigned Opcode) { return Opcode == PUSHA16; } bool isVPMULLW(unsigned Opcode) { switch (Opcode) { case VPMULLWYrm: case VPMULLWYrr: case VPMULLWZ128rm: case VPMULLWZ128rmk: case VPMULLWZ128rmkz: case VPMULLWZ128rr: case VPMULLWZ128rrk: case VPMULLWZ128rrkz: case VPMULLWZ256rm: case VPMULLWZ256rmk: case VPMULLWZ256rmkz: case VPMULLWZ256rr: case VPMULLWZ256rrk: case VPMULLWZ256rrkz: case VPMULLWZrm: case VPMULLWZrmk: case VPMULLWZrmkz: case VPMULLWZrr: case VPMULLWZrrk: case VPMULLWZrrkz: case VPMULLWrm: case VPMULLWrr: return true; } return false; } bool isPFPNACC(unsigned Opcode) { switch (Opcode) { case PFPNACCrm: case PFPNACCrr: return true; } return false; } bool isTESTUI(unsigned Opcode) { return Opcode == TESTUI; } bool isVPMOVZXWD(unsigned Opcode) { switch (Opcode) { case VPMOVZXWDYrm: case VPMOVZXWDYrr: case VPMOVZXWDZ128rm: case VPMOVZXWDZ128rmk: case VPMOVZXWDZ128rmkz: case VPMOVZXWDZ128rr: case VPMOVZXWDZ128rrk: case VPMOVZXWDZ128rrkz: case VPMOVZXWDZ256rm: case VPMOVZXWDZ256rmk: case VPMOVZXWDZ256rmkz: case VPMOVZXWDZ256rr: case VPMOVZXWDZ256rrk: case VPMOVZXWDZ256rrkz: case VPMOVZXWDZrm: case VPMOVZXWDZrmk: case VPMOVZXWDZrmkz: case VPMOVZXWDZrr: case VPMOVZXWDZrrk: case VPMOVZXWDZrrkz: case VPMOVZXWDrm: case VPMOVZXWDrr: return true; } return false; } bool isVPDPWSSDS(unsigned Opcode) { switch (Opcode) { case VPDPWSSDSYrm: case VPDPWSSDSYrr: case VPDPWSSDSZ128m: case VPDPWSSDSZ128mb: case VPDPWSSDSZ128mbk: case VPDPWSSDSZ128mbkz: case VPDPWSSDSZ128mk: case VPDPWSSDSZ128mkz: case VPDPWSSDSZ128r: case VPDPWSSDSZ128rk: case VPDPWSSDSZ128rkz: case VPDPWSSDSZ256m: case VPDPWSSDSZ256mb: case VPDPWSSDSZ256mbk: case VPDPWSSDSZ256mbkz: case VPDPWSSDSZ256mk: case VPDPWSSDSZ256mkz: case VPDPWSSDSZ256r: case VPDPWSSDSZ256rk: case VPDPWSSDSZ256rkz: case VPDPWSSDSZm: case VPDPWSSDSZmb: case VPDPWSSDSZmbk: case VPDPWSSDSZmbkz: case VPDPWSSDSZmk: case VPDPWSSDSZmkz: case VPDPWSSDSZr: case VPDPWSSDSZrk: case VPDPWSSDSZrkz: case VPDPWSSDSrm: case VPDPWSSDSrr: return true; } return false; } bool isINVLPG(unsigned Opcode) { return Opcode == INVLPG; } bool isJCC(unsigned Opcode) { switch (Opcode) { case JCC_1: case JCC_2: case JCC_4: return true; } return false; } bool isVPMOVZXWQ(unsigned Opcode) { switch (Opcode) { case VPMOVZXWQYrm: case VPMOVZXWQYrr: case VPMOVZXWQZ128rm: case VPMOVZXWQZ128rmk: case VPMOVZXWQZ128rmkz: case VPMOVZXWQZ128rr: case VPMOVZXWQZ128rrk: case VPMOVZXWQZ128rrkz: case VPMOVZXWQZ256rm: case VPMOVZXWQZ256rmk: case VPMOVZXWQZ256rmkz: case VPMOVZXWQZ256rr: case VPMOVZXWQZ256rrk: case VPMOVZXWQZ256rrkz: case VPMOVZXWQZrm: case VPMOVZXWQZrmk: case VPMOVZXWQZrmkz: case VPMOVZXWQZrr: case VPMOVZXWQZrrk: case VPMOVZXWQZrrkz: case VPMOVZXWQrm: case VPMOVZXWQrr: return true; } return false; } bool isBSF(unsigned Opcode) { switch (Opcode) { case BSF16rm: case BSF16rr: case BSF32rm: case BSF32rr: case BSF64rm: case BSF64rr: return true; } return false; } bool isROUNDPD(unsigned Opcode) { switch (Opcode) { case ROUNDPDm: case ROUNDPDr: return true; } return false; } bool isSAVEPREVSSP(unsigned Opcode) { return Opcode == SAVEPREVSSP; } bool isVSCATTERDPD(unsigned Opcode) { switch (Opcode) { case VSCATTERDPDZ128mr: case VSCATTERDPDZ256mr: case VSCATTERDPDZmr: return true; } return false; } bool isBSR(unsigned Opcode) { switch (Opcode) { case BSR16rm: case BSR16rr: case BSR32rm: case BSR32rr: case BSR64rm: case BSR64rr: return true; } return false; } bool isROUNDPS(unsigned Opcode) { switch (Opcode) { case ROUNDPSm: case ROUNDPSr: return true; } return false; } bool isCVTPI2PD(unsigned Opcode) { switch (Opcode) { case MMX_CVTPI2PDrm: case MMX_CVTPI2PDrr: return true; } return false; } bool isKTESTB(unsigned Opcode) { return Opcode == KTESTBrr; } bool isKTESTD(unsigned Opcode) { return Opcode == KTESTDrr; } bool isVSCATTERDPS(unsigned Opcode) { switch (Opcode) { case VSCATTERDPSZ128mr: case VSCATTERDPSZ256mr: case VSCATTERDPSZmr: return true; } return false; } bool isFLD(unsigned Opcode) { switch (Opcode) { case LD_F32m: case LD_F64m: case LD_F80m: case LD_Frr: return true; } return false; } bool isBTC(unsigned Opcode) { switch (Opcode) { case BTC16mi8: case BTC16mr: case BTC16ri8: case BTC16rr: case BTC32mi8: case BTC32mr: case BTC32ri8: case BTC32rr: case BTC64mi8: case BTC64mr: case BTC64ri8: case BTC64rr: return true; } return false; } bool isVBCSTNEBF162PS(unsigned Opcode) { switch (Opcode) { case VBCSTNEBF162PSYrm: case VBCSTNEBF162PSrm: return true; } return false; } bool isCVTPI2PS(unsigned Opcode) { switch (Opcode) { case MMX_CVTPI2PSrm: case MMX_CVTPI2PSrr: return true; } return false; } bool isKTESTQ(unsigned Opcode) { return Opcode == KTESTQrr; } bool isVSCALEFSD(unsigned Opcode) { switch (Opcode) { case VSCALEFSDZrm: case VSCALEFSDZrmk: case VSCALEFSDZrmkz: case VSCALEFSDZrr: case VSCALEFSDZrrb_Int: case VSCALEFSDZrrb_Intk: case VSCALEFSDZrrb_Intkz: case VSCALEFSDZrrk: case VSCALEFSDZrrkz: return true; } return false; } bool isVSCALEFSH(unsigned Opcode) { switch (Opcode) { case VSCALEFSHZrm: case VSCALEFSHZrmk: case VSCALEFSHZrmkz: case VSCALEFSHZrr: case VSCALEFSHZrrb_Int: case VSCALEFSHZrrb_Intk: case VSCALEFSHZrrb_Intkz: case VSCALEFSHZrrk: case VSCALEFSHZrrkz: return true; } return false; } bool isKTESTW(unsigned Opcode) { return Opcode == KTESTWrr; } bool isXSTORE(unsigned Opcode) { return Opcode == XSTORE; } bool isVFMADDSUB132PD(unsigned Opcode) { switch (Opcode) { case VFMADDSUB132PDYm: case VFMADDSUB132PDYr: case VFMADDSUB132PDZ128m: case VFMADDSUB132PDZ128mb: case VFMADDSUB132PDZ128mbk: case VFMADDSUB132PDZ128mbkz: case VFMADDSUB132PDZ128mk: case VFMADDSUB132PDZ128mkz: case VFMADDSUB132PDZ128r: case VFMADDSUB132PDZ128rk: case VFMADDSUB132PDZ128rkz: case VFMADDSUB132PDZ256m: case VFMADDSUB132PDZ256mb: case VFMADDSUB132PDZ256mbk: case VFMADDSUB132PDZ256mbkz: case VFMADDSUB132PDZ256mk: case VFMADDSUB132PDZ256mkz: case VFMADDSUB132PDZ256r: case VFMADDSUB132PDZ256rk: case VFMADDSUB132PDZ256rkz: case VFMADDSUB132PDZm: case VFMADDSUB132PDZmb: case VFMADDSUB132PDZmbk: case VFMADDSUB132PDZmbkz: case VFMADDSUB132PDZmk: case VFMADDSUB132PDZmkz: case VFMADDSUB132PDZr: case VFMADDSUB132PDZrb: case VFMADDSUB132PDZrbk: case VFMADDSUB132PDZrbkz: case VFMADDSUB132PDZrk: case VFMADDSUB132PDZrkz: case VFMADDSUB132PDm: case VFMADDSUB132PDr: return true; } return false; } bool isVPSRAVD(unsigned Opcode) { switch (Opcode) { case VPSRAVDYrm: case VPSRAVDYrr: case VPSRAVDZ128rm: case VPSRAVDZ128rmb: case VPSRAVDZ128rmbk: case VPSRAVDZ128rmbkz: case VPSRAVDZ128rmk: case VPSRAVDZ128rmkz: case VPSRAVDZ128rr: case VPSRAVDZ128rrk: case VPSRAVDZ128rrkz: case VPSRAVDZ256rm: case VPSRAVDZ256rmb: case VPSRAVDZ256rmbk: case VPSRAVDZ256rmbkz: case VPSRAVDZ256rmk: case VPSRAVDZ256rmkz: case VPSRAVDZ256rr: case VPSRAVDZ256rrk: case VPSRAVDZ256rrkz: case VPSRAVDZrm: case VPSRAVDZrmb: case VPSRAVDZrmbk: case VPSRAVDZrmbkz: case VPSRAVDZrmk: case VPSRAVDZrmkz: case VPSRAVDZrr: case VPSRAVDZrrk: case VPSRAVDZrrkz: case VPSRAVDrm: case VPSRAVDrr: return true; } return false; } bool isBTR(unsigned Opcode) { switch (Opcode) { case BTR16mi8: case BTR16mr: case BTR16ri8: case BTR16rr: case BTR32mi8: case BTR32mr: case BTR32ri8: case BTR32rr: case BTR64mi8: case BTR64mr: case BTR64ri8: case BTR64rr: return true; } return false; } bool isBTS(unsigned Opcode) { switch (Opcode) { case BTS16mi8: case BTS16mr: case BTS16ri8: case BTS16rr: case BTS32mi8: case BTS32mr: case BTS32ri8: case BTS32rr: case BTS64mi8: case BTS64mr: case BTS64ri8: case BTS64rr: return true; } return false; } bool isVFMADDSUB132PH(unsigned Opcode) { switch (Opcode) { case VFMADDSUB132PHZ128m: case VFMADDSUB132PHZ128mb: case VFMADDSUB132PHZ128mbk: case VFMADDSUB132PHZ128mbkz: case VFMADDSUB132PHZ128mk: case VFMADDSUB132PHZ128mkz: case VFMADDSUB132PHZ128r: case VFMADDSUB132PHZ128rk: case VFMADDSUB132PHZ128rkz: case VFMADDSUB132PHZ256m: case VFMADDSUB132PHZ256mb: case VFMADDSUB132PHZ256mbk: case VFMADDSUB132PHZ256mbkz: case VFMADDSUB132PHZ256mk: case VFMADDSUB132PHZ256mkz: case VFMADDSUB132PHZ256r: case VFMADDSUB132PHZ256rk: case VFMADDSUB132PHZ256rkz: case VFMADDSUB132PHZm: case VFMADDSUB132PHZmb: case VFMADDSUB132PHZmbk: case VFMADDSUB132PHZmbkz: case VFMADDSUB132PHZmk: case VFMADDSUB132PHZmkz: case VFMADDSUB132PHZr: case VFMADDSUB132PHZrb: case VFMADDSUB132PHZrbk: case VFMADDSUB132PHZrbkz: case VFMADDSUB132PHZrk: case VFMADDSUB132PHZrkz: return true; } return false; } bool isLGDT(unsigned Opcode) { return Opcode == LGDT64m; } bool isVSCALEFSS(unsigned Opcode) { switch (Opcode) { case VSCALEFSSZrm: case VSCALEFSSZrmk: case VSCALEFSSZrmkz: case VSCALEFSSZrr: case VSCALEFSSZrrb_Int: case VSCALEFSSZrrb_Intk: case VSCALEFSSZrrb_Intkz: case VSCALEFSSZrrk: case VSCALEFSSZrrkz: return true; } return false; } bool isVEXTRACTF128(unsigned Opcode) { switch (Opcode) { case VEXTRACTF128mr: case VEXTRACTF128rr: return true; } return false; } bool isPMOVSXBD(unsigned Opcode) { switch (Opcode) { case PMOVSXBDrm: case PMOVSXBDrr: return true; } return false; } bool isKXNORB(unsigned Opcode) { return Opcode == KXNORBrr; } bool isVFMADDSUB132PS(unsigned Opcode) { switch (Opcode) { case VFMADDSUB132PSYm: case VFMADDSUB132PSYr: case VFMADDSUB132PSZ128m: case VFMADDSUB132PSZ128mb: case VFMADDSUB132PSZ128mbk: case VFMADDSUB132PSZ128mbkz: case VFMADDSUB132PSZ128mk: case VFMADDSUB132PSZ128mkz: case VFMADDSUB132PSZ128r: case VFMADDSUB132PSZ128rk: case VFMADDSUB132PSZ128rkz: case VFMADDSUB132PSZ256m: case VFMADDSUB132PSZ256mb: case VFMADDSUB132PSZ256mbk: case VFMADDSUB132PSZ256mbkz: case VFMADDSUB132PSZ256mk: case VFMADDSUB132PSZ256mkz: case VFMADDSUB132PSZ256r: case VFMADDSUB132PSZ256rk: case VFMADDSUB132PSZ256rkz: case VFMADDSUB132PSZm: case VFMADDSUB132PSZmb: case VFMADDSUB132PSZmbk: case VFMADDSUB132PSZmbkz: case VFMADDSUB132PSZmk: case VFMADDSUB132PSZmkz: case VFMADDSUB132PSZr: case VFMADDSUB132PSZrb: case VFMADDSUB132PSZrbk: case VFMADDSUB132PSZrbkz: case VFMADDSUB132PSZrk: case VFMADDSUB132PSZrkz: case VFMADDSUB132PSm: case VFMADDSUB132PSr: return true; } return false; } bool isKXNORD(unsigned Opcode) { return Opcode == KXNORDrr; } bool isXRSTOR(unsigned Opcode) { return Opcode == XRSTOR; } bool isVPSRAVQ(unsigned Opcode) { switch (Opcode) { case VPSRAVQZ128rm: case VPSRAVQZ128rmb: case VPSRAVQZ128rmbk: case VPSRAVQZ128rmbkz: case VPSRAVQZ128rmk: case VPSRAVQZ128rmkz: case VPSRAVQZ128rr: case VPSRAVQZ128rrk: case VPSRAVQZ128rrkz: case VPSRAVQZ256rm: case VPSRAVQZ256rmb: case VPSRAVQZ256rmbk: case VPSRAVQZ256rmbkz: case VPSRAVQZ256rmk: case VPSRAVQZ256rmkz: case VPSRAVQZ256rr: case VPSRAVQZ256rrk: case VPSRAVQZ256rrkz: case VPSRAVQZrm: case VPSRAVQZrmb: case VPSRAVQZrmbk: case VPSRAVQZrmbkz: case VPSRAVQZrmk: case VPSRAVQZrmkz: case VPSRAVQZrr: case VPSRAVQZrrk: case VPSRAVQZrrkz: return true; } return false; } bool isVPSRAVW(unsigned Opcode) { switch (Opcode) { case VPSRAVWZ128rm: case VPSRAVWZ128rmk: case VPSRAVWZ128rmkz: case VPSRAVWZ128rr: case VPSRAVWZ128rrk: case VPSRAVWZ128rrkz: case VPSRAVWZ256rm: case VPSRAVWZ256rmk: case VPSRAVWZ256rmkz: case VPSRAVWZ256rr: case VPSRAVWZ256rrk: case VPSRAVWZ256rrkz: case VPSRAVWZrm: case VPSRAVWZrmk: case VPSRAVWZrmkz: case VPSRAVWZrr: case VPSRAVWZrrk: case VPSRAVWZrrkz: return true; } return false; } bool isVPDPWSSD(unsigned Opcode) { switch (Opcode) { case VPDPWSSDYrm: case VPDPWSSDYrr: case VPDPWSSDZ128m: case VPDPWSSDZ128mb: case VPDPWSSDZ128mbk: case VPDPWSSDZ128mbkz: case VPDPWSSDZ128mk: case VPDPWSSDZ128mkz: case VPDPWSSDZ128r: case VPDPWSSDZ128rk: case VPDPWSSDZ128rkz: case VPDPWSSDZ256m: case VPDPWSSDZ256mb: case VPDPWSSDZ256mbk: case VPDPWSSDZ256mbkz: case VPDPWSSDZ256mk: case VPDPWSSDZ256mkz: case VPDPWSSDZ256r: case VPDPWSSDZ256rk: case VPDPWSSDZ256rkz: case VPDPWSSDZm: case VPDPWSSDZmb: case VPDPWSSDZmbk: case VPDPWSSDZmbkz: case VPDPWSSDZmk: case VPDPWSSDZmkz: case VPDPWSSDZr: case VPDPWSSDZrk: case VPDPWSSDZrkz: case VPDPWSSDrm: case VPDPWSSDrr: return true; } return false; } bool isSQRTPD(unsigned Opcode) { switch (Opcode) { case SQRTPDm: case SQRTPDr: return true; } return false; } bool isVDPPD(unsigned Opcode) { switch (Opcode) { case VDPPDrmi: case VDPPDrri: return true; } return false; } bool isPMOVSXBQ(unsigned Opcode) { switch (Opcode) { case PMOVSXBQrm: case PMOVSXBQrr: return true; } return false; } bool isPMADDWD(unsigned Opcode) { switch (Opcode) { case MMX_PMADDWDrm: case MMX_PMADDWDrr: case PMADDWDrm: case PMADDWDrr: return true; } return false; } bool isKXNORQ(unsigned Opcode) { return Opcode == KXNORQrr; } bool isSTUI(unsigned Opcode) { return Opcode == STUI; } bool isINSERTQ(unsigned Opcode) { switch (Opcode) { case INSERTQ: case INSERTQI: return true; } return false; } bool isPMOVSXBW(unsigned Opcode) { switch (Opcode) { case PMOVSXBWrm: case PMOVSXBWrr: return true; } return false; } bool isVCVTSI2SD(unsigned Opcode) { switch (Opcode) { case VCVTSI2SDZrm_Int: case VCVTSI2SDZrr_Int: case VCVTSI2SDrm_Int: case VCVTSI2SDrr_Int: case VCVTSI642SDZrm_Int: case VCVTSI642SDZrr_Int: case VCVTSI642SDZrrb_Int: case VCVTSI642SDrm_Int: case VCVTSI642SDrr_Int: return true; } return false; } bool isKXNORW(unsigned Opcode) { return Opcode == KXNORWrr; } bool isVSCATTERPF0DPD(unsigned Opcode) { return Opcode == VSCATTERPF0DPDm; } bool isVCVTSI2SH(unsigned Opcode) { switch (Opcode) { case VCVTSI2SHZrm_Int: case VCVTSI2SHZrr_Int: case VCVTSI2SHZrrb_Int: case VCVTSI642SHZrm_Int: case VCVTSI642SHZrr_Int: case VCVTSI642SHZrrb_Int: return true; } return false; } bool isSQRTPS(unsigned Opcode) { switch (Opcode) { case SQRTPSm: case SQRTPSr: return true; } return false; } bool isVDPPS(unsigned Opcode) { switch (Opcode) { case VDPPSYrmi: case VDPPSYrri: case VDPPSrmi: case VDPPSrri: return true; } return false; } bool isPSUBSB(unsigned Opcode) { switch (Opcode) { case MMX_PSUBSBrm: case MMX_PSUBSBrr: case PSUBSBrm: case PSUBSBrr: return true; } return false; } bool isVPSHRDVD(unsigned Opcode) { switch (Opcode) { case VPSHRDVDZ128m: case VPSHRDVDZ128mb: case VPSHRDVDZ128mbk: case VPSHRDVDZ128mbkz: case VPSHRDVDZ128mk: case VPSHRDVDZ128mkz: case VPSHRDVDZ128r: case VPSHRDVDZ128rk: case VPSHRDVDZ128rkz: case VPSHRDVDZ256m: case VPSHRDVDZ256mb: case VPSHRDVDZ256mbk: case VPSHRDVDZ256mbkz: case VPSHRDVDZ256mk: case VPSHRDVDZ256mkz: case VPSHRDVDZ256r: case VPSHRDVDZ256rk: case VPSHRDVDZ256rkz: case VPSHRDVDZm: case VPSHRDVDZmb: case VPSHRDVDZmbk: case VPSHRDVDZmbkz: case VPSHRDVDZmk: case VPSHRDVDZmkz: case VPSHRDVDZr: case VPSHRDVDZrk: case VPSHRDVDZrkz: return true; } return false; } bool isFIST(unsigned Opcode) { switch (Opcode) { case IST_F16m: case IST_F32m: return true; } return false; } bool isVCVTSI2SS(unsigned Opcode) { switch (Opcode) { case VCVTSI2SSZrm_Int: case VCVTSI2SSZrr_Int: case VCVTSI2SSZrrb_Int: case VCVTSI2SSrm_Int: case VCVTSI2SSrr_Int: case VCVTSI642SSZrm_Int: case VCVTSI642SSZrr_Int: case VCVTSI642SSZrrb_Int: case VCVTSI642SSrm_Int: case VCVTSI642SSrr_Int: return true; } return false; } bool isVSCATTERPF0DPS(unsigned Opcode) { return Opcode == VSCATTERPF0DPSm; } bool isVMOVNTPD(unsigned Opcode) { switch (Opcode) { case VMOVNTPDYmr: case VMOVNTPDZ128mr: case VMOVNTPDZ256mr: case VMOVNTPDZmr: case VMOVNTPDmr: return true; } return false; } bool isROUNDSD(unsigned Opcode) { switch (Opcode) { case ROUNDSDm_Int: case ROUNDSDr_Int: return true; } return false; } bool isVPSHRDVQ(unsigned Opcode) { switch (Opcode) { case VPSHRDVQZ128m: case VPSHRDVQZ128mb: case VPSHRDVQZ128mbk: case VPSHRDVQZ128mbkz: case VPSHRDVQZ128mk: case VPSHRDVQZ128mkz: case VPSHRDVQZ128r: case VPSHRDVQZ128rk: case VPSHRDVQZ128rkz: case VPSHRDVQZ256m: case VPSHRDVQZ256mb: case VPSHRDVQZ256mbk: case VPSHRDVQZ256mbkz: case VPSHRDVQZ256mk: case VPSHRDVQZ256mkz: case VPSHRDVQZ256r: case VPSHRDVQZ256rk: case VPSHRDVQZ256rkz: case VPSHRDVQZm: case VPSHRDVQZmb: case VPSHRDVQZmbk: case VPSHRDVQZmbkz: case VPSHRDVQZmk: case VPSHRDVQZmkz: case VPSHRDVQZr: case VPSHRDVQZrk: case VPSHRDVQZrkz: return true; } return false; } bool isPSIGNB(unsigned Opcode) { switch (Opcode) { case MMX_PSIGNBrm: case MMX_PSIGNBrr: case PSIGNBrm: case PSIGNBrr: return true; } return false; } bool isJECXZ(unsigned Opcode) { return Opcode == JECXZ; } bool isPSIGND(unsigned Opcode) { switch (Opcode) { case MMX_PSIGNDrm: case MMX_PSIGNDrr: case PSIGNDrm: case PSIGNDrr: return true; } return false; } bool isPSUBSW(unsigned Opcode) { switch (Opcode) { case MMX_PSUBSWrm: case MMX_PSUBSWrr: case PSUBSWrm: case PSUBSWrr: return true; } return false; } bool isMOVDQ2Q(unsigned Opcode) { return Opcode == MMX_MOVDQ2Qrr; } bool isPUSHFD(unsigned Opcode) { return Opcode == PUSHF32; } bool isVMOVNTPS(unsigned Opcode) { switch (Opcode) { case VMOVNTPSYmr: case VMOVNTPSZ128mr: case VMOVNTPSZ256mr: case VMOVNTPSZmr: case VMOVNTPSmr: return true; } return false; } bool isROUNDSS(unsigned Opcode) { switch (Opcode) { case ROUNDSSm_Int: case ROUNDSSr_Int: return true; } return false; } bool isVAESDECLAST(unsigned Opcode) { switch (Opcode) { case VAESDECLASTYrm: case VAESDECLASTYrr: case VAESDECLASTZ128rm: case VAESDECLASTZ128rr: case VAESDECLASTZ256rm: case VAESDECLASTZ256rr: case VAESDECLASTZrm: case VAESDECLASTZrr: case VAESDECLASTrm: case VAESDECLASTrr: return true; } return false; } bool isPAVGB(unsigned Opcode) { switch (Opcode) { case MMX_PAVGBrm: case MMX_PAVGBrr: case PAVGBrm: case PAVGBrr: return true; } return false; } bool isVPSUBB(unsigned Opcode) { switch (Opcode) { case VPSUBBYrm: case VPSUBBYrr: case VPSUBBZ128rm: case VPSUBBZ128rmk: case VPSUBBZ128rmkz: case VPSUBBZ128rr: case VPSUBBZ128rrk: case VPSUBBZ128rrkz: case VPSUBBZ256rm: case VPSUBBZ256rmk: case VPSUBBZ256rmkz: case VPSUBBZ256rr: case VPSUBBZ256rrk: case VPSUBBZ256rrkz: case VPSUBBZrm: case VPSUBBZrmk: case VPSUBBZrmkz: case VPSUBBZrr: case VPSUBBZrrk: case VPSUBBZrrkz: case VPSUBBrm: case VPSUBBrr: return true; } return false; } bool isVPSHRDVW(unsigned Opcode) { switch (Opcode) { case VPSHRDVWZ128m: case VPSHRDVWZ128mk: case VPSHRDVWZ128mkz: case VPSHRDVWZ128r: case VPSHRDVWZ128rk: case VPSHRDVWZ128rkz: case VPSHRDVWZ256m: case VPSHRDVWZ256mk: case VPSHRDVWZ256mkz: case VPSHRDVWZ256r: case VPSHRDVWZ256rk: case VPSHRDVWZ256rkz: case VPSHRDVWZm: case VPSHRDVWZmk: case VPSHRDVWZmkz: case VPSHRDVWZr: case VPSHRDVWZrk: case VPSHRDVWZrkz: return true; } return false; } bool isVPSUBD(unsigned Opcode) { switch (Opcode) { case VPSUBDYrm: case VPSUBDYrr: case VPSUBDZ128rm: case VPSUBDZ128rmb: case VPSUBDZ128rmbk: case VPSUBDZ128rmbkz: case VPSUBDZ128rmk: case VPSUBDZ128rmkz: case VPSUBDZ128rr: case VPSUBDZ128rrk: case VPSUBDZ128rrkz: case VPSUBDZ256rm: case VPSUBDZ256rmb: case VPSUBDZ256rmbk: case VPSUBDZ256rmbkz: case VPSUBDZ256rmk: case VPSUBDZ256rmkz: case VPSUBDZ256rr: case VPSUBDZ256rrk: case VPSUBDZ256rrkz: case VPSUBDZrm: case VPSUBDZrmb: case VPSUBDZrmbk: case VPSUBDZrmbkz: case VPSUBDZrmk: case VPSUBDZrmkz: case VPSUBDZrr: case VPSUBDZrrk: case VPSUBDZrrkz: case VPSUBDrm: case VPSUBDrr: return true; } return false; } bool isPUSHFQ(unsigned Opcode) { return Opcode == PUSHF64; } bool isPSIGNW(unsigned Opcode) { switch (Opcode) { case MMX_PSIGNWrm: case MMX_PSIGNWrr: case PSIGNWrm: case PSIGNWrr: return true; } return false; } bool isVBROADCASTSD(unsigned Opcode) { switch (Opcode) { case VBROADCASTSDYrm: case VBROADCASTSDYrr: case VBROADCASTSDZ256rm: case VBROADCASTSDZ256rmk: case VBROADCASTSDZ256rmkz: case VBROADCASTSDZ256rr: case VBROADCASTSDZ256rrk: case VBROADCASTSDZ256rrkz: case VBROADCASTSDZrm: case VBROADCASTSDZrmk: case VBROADCASTSDZrmkz: case VBROADCASTSDZrr: case VBROADCASTSDZrrk: case VBROADCASTSDZrrkz: return true; } return false; } bool isVPSUBQ(unsigned Opcode) { switch (Opcode) { case VPSUBQYrm: case VPSUBQYrr: case VPSUBQZ128rm: case VPSUBQZ128rmb: case VPSUBQZ128rmbk: case VPSUBQZ128rmbkz: case VPSUBQZ128rmk: case VPSUBQZ128rmkz: case VPSUBQZ128rr: case VPSUBQZ128rrk: case VPSUBQZ128rrkz: case VPSUBQZ256rm: case VPSUBQZ256rmb: case VPSUBQZ256rmbk: case VPSUBQZ256rmbkz: case VPSUBQZ256rmk: case VPSUBQZ256rmkz: case VPSUBQZ256rr: case VPSUBQZ256rrk: case VPSUBQZ256rrkz: case VPSUBQZrm: case VPSUBQZrmb: case VPSUBQZrmbk: case VPSUBQZrmbkz: case VPSUBQZrmk: case VPSUBQZrmkz: case VPSUBQZrr: case VPSUBQZrrk: case VPSUBQZrrkz: case VPSUBQrm: case VPSUBQrr: return true; } return false; } bool isPMOVSXDQ(unsigned Opcode) { switch (Opcode) { case PMOVSXDQrm: case PMOVSXDQrr: return true; } return false; } bool isPAVGW(unsigned Opcode) { switch (Opcode) { case MMX_PAVGWrm: case MMX_PAVGWrr: case PAVGWrm: case PAVGWrr: return true; } return false; } bool isVFMSUBADD132PD(unsigned Opcode) { switch (Opcode) { case VFMSUBADD132PDYm: case VFMSUBADD132PDYr: case VFMSUBADD132PDZ128m: case VFMSUBADD132PDZ128mb: case VFMSUBADD132PDZ128mbk: case VFMSUBADD132PDZ128mbkz: case VFMSUBADD132PDZ128mk: case VFMSUBADD132PDZ128mkz: case VFMSUBADD132PDZ128r: case VFMSUBADD132PDZ128rk: case VFMSUBADD132PDZ128rkz: case VFMSUBADD132PDZ256m: case VFMSUBADD132PDZ256mb: case VFMSUBADD132PDZ256mbk: case VFMSUBADD132PDZ256mbkz: case VFMSUBADD132PDZ256mk: case VFMSUBADD132PDZ256mkz: case VFMSUBADD132PDZ256r: case VFMSUBADD132PDZ256rk: case VFMSUBADD132PDZ256rkz: case VFMSUBADD132PDZm: case VFMSUBADD132PDZmb: case VFMSUBADD132PDZmbk: case VFMSUBADD132PDZmbkz: case VFMSUBADD132PDZmk: case VFMSUBADD132PDZmkz: case VFMSUBADD132PDZr: case VFMSUBADD132PDZrb: case VFMSUBADD132PDZrbk: case VFMSUBADD132PDZrbkz: case VFMSUBADD132PDZrk: case VFMSUBADD132PDZrkz: case VFMSUBADD132PDm: case VFMSUBADD132PDr: return true; } return false; } bool isVPSUBW(unsigned Opcode) { switch (Opcode) { case VPSUBWYrm: case VPSUBWYrr: case VPSUBWZ128rm: case VPSUBWZ128rmk: case VPSUBWZ128rmkz: case VPSUBWZ128rr: case VPSUBWZ128rrk: case VPSUBWZ128rrkz: case VPSUBWZ256rm: case VPSUBWZ256rmk: case VPSUBWZ256rmkz: case VPSUBWZ256rr: case VPSUBWZ256rrk: case VPSUBWZ256rrkz: case VPSUBWZrm: case VPSUBWZrmk: case VPSUBWZrmkz: case VPSUBWZrr: case VPSUBWZrrk: case VPSUBWZrrkz: case VPSUBWrm: case VPSUBWrr: return true; } return false; } bool isVCVTPS2PHX(unsigned Opcode) { switch (Opcode) { case VCVTPS2PHXZ128rm: case VCVTPS2PHXZ128rmb: case VCVTPS2PHXZ128rmbk: case VCVTPS2PHXZ128rmbkz: case VCVTPS2PHXZ128rmk: case VCVTPS2PHXZ128rmkz: case VCVTPS2PHXZ128rr: case VCVTPS2PHXZ128rrk: case VCVTPS2PHXZ128rrkz: case VCVTPS2PHXZ256rm: case VCVTPS2PHXZ256rmb: case VCVTPS2PHXZ256rmbk: case VCVTPS2PHXZ256rmbkz: case VCVTPS2PHXZ256rmk: case VCVTPS2PHXZ256rmkz: case VCVTPS2PHXZ256rr: case VCVTPS2PHXZ256rrk: case VCVTPS2PHXZ256rrkz: case VCVTPS2PHXZrm: case VCVTPS2PHXZrmb: case VCVTPS2PHXZrmbk: case VCVTPS2PHXZrmbkz: case VCVTPS2PHXZrmk: case VCVTPS2PHXZrmkz: case VCVTPS2PHXZrr: case VCVTPS2PHXZrrb: case VCVTPS2PHXZrrbk: case VCVTPS2PHXZrrbkz: case VCVTPS2PHXZrrk: case VCVTPS2PHXZrrkz: return true; } return false; } bool isMOVHLPS(unsigned Opcode) { return Opcode == MOVHLPSrr; } bool isVFMSUBADD132PH(unsigned Opcode) { switch (Opcode) { case VFMSUBADD132PHZ128m: case VFMSUBADD132PHZ128mb: case VFMSUBADD132PHZ128mbk: case VFMSUBADD132PHZ128mbkz: case VFMSUBADD132PHZ128mk: case VFMSUBADD132PHZ128mkz: case VFMSUBADD132PHZ128r: case VFMSUBADD132PHZ128rk: case VFMSUBADD132PHZ128rkz: case VFMSUBADD132PHZ256m: case VFMSUBADD132PHZ256mb: case VFMSUBADD132PHZ256mbk: case VFMSUBADD132PHZ256mbkz: case VFMSUBADD132PHZ256mk: case VFMSUBADD132PHZ256mkz: case VFMSUBADD132PHZ256r: case VFMSUBADD132PHZ256rk: case VFMSUBADD132PHZ256rkz: case VFMSUBADD132PHZm: case VFMSUBADD132PHZmb: case VFMSUBADD132PHZmbk: case VFMSUBADD132PHZmbkz: case VFMSUBADD132PHZmk: case VFMSUBADD132PHZmkz: case VFMSUBADD132PHZr: case VFMSUBADD132PHZrb: case VFMSUBADD132PHZrbk: case VFMSUBADD132PHZrbkz: case VFMSUBADD132PHZrk: case VFMSUBADD132PHZrkz: return true; } return false; } bool isVSHUFF64X2(unsigned Opcode) { switch (Opcode) { case VSHUFF64X2Z256rmbi: case VSHUFF64X2Z256rmbik: case VSHUFF64X2Z256rmbikz: case VSHUFF64X2Z256rmi: case VSHUFF64X2Z256rmik: case VSHUFF64X2Z256rmikz: case VSHUFF64X2Z256rri: case VSHUFF64X2Z256rrik: case VSHUFF64X2Z256rrikz: case VSHUFF64X2Zrmbi: case VSHUFF64X2Zrmbik: case VSHUFF64X2Zrmbikz: case VSHUFF64X2Zrmi: case VSHUFF64X2Zrmik: case VSHUFF64X2Zrmikz: case VSHUFF64X2Zrri: case VSHUFF64X2Zrrik: case VSHUFF64X2Zrrikz: return true; } return false; } bool isVBROADCASTSS(unsigned Opcode) { switch (Opcode) { case VBROADCASTSSYrm: case VBROADCASTSSYrr: case VBROADCASTSSZ128rm: case VBROADCASTSSZ128rmk: case VBROADCASTSSZ128rmkz: case VBROADCASTSSZ128rr: case VBROADCASTSSZ128rrk: case VBROADCASTSSZ128rrkz: case VBROADCASTSSZ256rm: case VBROADCASTSSZ256rmk: case VBROADCASTSSZ256rmkz: case VBROADCASTSSZ256rr: case VBROADCASTSSZ256rrk: case VBROADCASTSSZ256rrkz: case VBROADCASTSSZrm: case VBROADCASTSSZrmk: case VBROADCASTSSZrmkz: case VBROADCASTSSZrr: case VBROADCASTSSZrrk: case VBROADCASTSSZrrkz: case VBROADCASTSSrm: case VBROADCASTSSrr: return true; } return false; } bool isVFMSUBADD132PS(unsigned Opcode) { switch (Opcode) { case VFMSUBADD132PSYm: case VFMSUBADD132PSYr: case VFMSUBADD132PSZ128m: case VFMSUBADD132PSZ128mb: case VFMSUBADD132PSZ128mbk: case VFMSUBADD132PSZ128mbkz: case VFMSUBADD132PSZ128mk: case VFMSUBADD132PSZ128mkz: case VFMSUBADD132PSZ128r: case VFMSUBADD132PSZ128rk: case VFMSUBADD132PSZ128rkz: case VFMSUBADD132PSZ256m: case VFMSUBADD132PSZ256mb: case VFMSUBADD132PSZ256mbk: case VFMSUBADD132PSZ256mbkz: case VFMSUBADD132PSZ256mk: case VFMSUBADD132PSZ256mkz: case VFMSUBADD132PSZ256r: case VFMSUBADD132PSZ256rk: case VFMSUBADD132PSZ256rkz: case VFMSUBADD132PSZm: case VFMSUBADD132PSZmb: case VFMSUBADD132PSZmbk: case VFMSUBADD132PSZmbkz: case VFMSUBADD132PSZmk: case VFMSUBADD132PSZmkz: case VFMSUBADD132PSZr: case VFMSUBADD132PSZrb: case VFMSUBADD132PSZrbk: case VFMSUBADD132PSZrbkz: case VFMSUBADD132PSZrk: case VFMSUBADD132PSZrkz: case VFMSUBADD132PSm: case VFMSUBADD132PSr: return true; } return false; } bool isMAXPD(unsigned Opcode) { switch (Opcode) { case MAXPDrm: case MAXPDrr: return true; } return false; } bool isSQRTSD(unsigned Opcode) { switch (Opcode) { case SQRTSDm_Int: case SQRTSDr_Int: return true; } return false; } bool isCVTPD2DQ(unsigned Opcode) { switch (Opcode) { case CVTPD2DQrm: case CVTPD2DQrr: return true; } return false; } bool isMAXPS(unsigned Opcode) { switch (Opcode) { case MAXPSrm: case MAXPSrr: return true; } return false; } bool isVPMOVQB(unsigned Opcode) { switch (Opcode) { case VPMOVQBZ128mr: case VPMOVQBZ128mrk: case VPMOVQBZ128rr: case VPMOVQBZ128rrk: case VPMOVQBZ128rrkz: case VPMOVQBZ256mr: case VPMOVQBZ256mrk: case VPMOVQBZ256rr: case VPMOVQBZ256rrk: case VPMOVQBZ256rrkz: case VPMOVQBZmr: case VPMOVQBZmrk: case VPMOVQBZrr: case VPMOVQBZrrk: case VPMOVQBZrrkz: return true; } return false; } bool isINVPCID(unsigned Opcode) { switch (Opcode) { case INVPCID32: case INVPCID64: return true; } return false; } bool isVCVTPS2DQ(unsigned Opcode) { switch (Opcode) { case VCVTPS2DQYrm: case VCVTPS2DQYrr: case VCVTPS2DQZ128rm: case VCVTPS2DQZ128rmb: case VCVTPS2DQZ128rmbk: case VCVTPS2DQZ128rmbkz: case VCVTPS2DQZ128rmk: case VCVTPS2DQZ128rmkz: case VCVTPS2DQZ128rr: case VCVTPS2DQZ128rrk: case VCVTPS2DQZ128rrkz: case VCVTPS2DQZ256rm: case VCVTPS2DQZ256rmb: case VCVTPS2DQZ256rmbk: case VCVTPS2DQZ256rmbkz: case VCVTPS2DQZ256rmk: case VCVTPS2DQZ256rmkz: case VCVTPS2DQZ256rr: case VCVTPS2DQZ256rrk: case VCVTPS2DQZ256rrkz: case VCVTPS2DQZrm: case VCVTPS2DQZrmb: case VCVTPS2DQZrmbk: case VCVTPS2DQZrmbkz: case VCVTPS2DQZrmk: case VCVTPS2DQZrmkz: case VCVTPS2DQZrr: case VCVTPS2DQZrrb: case VCVTPS2DQZrrbk: case VCVTPS2DQZrrbkz: case VCVTPS2DQZrrk: case VCVTPS2DQZrrkz: case VCVTPS2DQrm: case VCVTPS2DQrr: return true; } return false; } bool isSQRTSS(unsigned Opcode) { switch (Opcode) { case SQRTSSm_Int: case SQRTSSr_Int: return true; } return false; } bool isVADDPD(unsigned Opcode) { switch (Opcode) { case VADDPDYrm: case VADDPDYrr: case VADDPDZ128rm: case VADDPDZ128rmb: case VADDPDZ128rmbk: case VADDPDZ128rmbkz: case VADDPDZ128rmk: case VADDPDZ128rmkz: case VADDPDZ128rr: case VADDPDZ128rrk: case VADDPDZ128rrkz: case VADDPDZ256rm: case VADDPDZ256rmb: case VADDPDZ256rmbk: case VADDPDZ256rmbkz: case VADDPDZ256rmk: case VADDPDZ256rmkz: case VADDPDZ256rr: case VADDPDZ256rrk: case VADDPDZ256rrkz: case VADDPDZrm: case VADDPDZrmb: case VADDPDZrmbk: case VADDPDZrmbkz: case VADDPDZrmk: case VADDPDZrmkz: case VADDPDZrr: case VADDPDZrrb: case VADDPDZrrbk: case VADDPDZrrbkz: case VADDPDZrrk: case VADDPDZrrkz: case VADDPDrm: case VADDPDrr: return true; } return false; } bool isLODSB(unsigned Opcode) { return Opcode == LODSB; } bool isLODSD(unsigned Opcode) { return Opcode == LODSL; } bool isV4FNMADDPS(unsigned Opcode) { switch (Opcode) { case V4FNMADDPSrm: case V4FNMADDPSrmk: case V4FNMADDPSrmkz: return true; } return false; } bool isIRETD(unsigned Opcode) { return Opcode == IRET32; } bool isVADDPH(unsigned Opcode) { switch (Opcode) { case VADDPHZ128rm: case VADDPHZ128rmb: case VADDPHZ128rmbk: case VADDPHZ128rmbkz: case VADDPHZ128rmk: case VADDPHZ128rmkz: case VADDPHZ128rr: case VADDPHZ128rrk: case VADDPHZ128rrkz: case VADDPHZ256rm: case VADDPHZ256rmb: case VADDPHZ256rmbk: case VADDPHZ256rmbkz: case VADDPHZ256rmk: case VADDPHZ256rmkz: case VADDPHZ256rr: case VADDPHZ256rrk: case VADDPHZ256rrkz: case VADDPHZrm: case VADDPHZrmb: case VADDPHZrmbk: case VADDPHZrmbkz: case VADDPHZrmk: case VADDPHZrmkz: case VADDPHZrr: case VADDPHZrrb: case VADDPHZrrbk: case VADDPHZrrbkz: case VADDPHZrrk: case VADDPHZrrkz: return true; } return false; } bool isVHADDPD(unsigned Opcode) { switch (Opcode) { case VHADDPDYrm: case VHADDPDYrr: case VHADDPDrm: case VHADDPDrr: return true; } return false; } bool isVPMOVQD(unsigned Opcode) { switch (Opcode) { case VPMOVQDZ128mr: case VPMOVQDZ128mrk: case VPMOVQDZ128rr: case VPMOVQDZ128rrk: case VPMOVQDZ128rrkz: case VPMOVQDZ256mr: case VPMOVQDZ256mrk: case VPMOVQDZ256rr: case VPMOVQDZ256rrk: case VPMOVQDZ256rrkz: case VPMOVQDZmr: case VPMOVQDZmrk: case VPMOVQDZrr: case VPMOVQDZrrk: case VPMOVQDZrrkz: return true; } return false; } bool isVPSUBUSB(unsigned Opcode) { switch (Opcode) { case VPSUBUSBYrm: case VPSUBUSBYrr: case VPSUBUSBZ128rm: case VPSUBUSBZ128rmk: case VPSUBUSBZ128rmkz: case VPSUBUSBZ128rr: case VPSUBUSBZ128rrk: case VPSUBUSBZ128rrkz: case VPSUBUSBZ256rm: case VPSUBUSBZ256rmk: case VPSUBUSBZ256rmkz: case VPSUBUSBZ256rr: case VPSUBUSBZ256rrk: case VPSUBUSBZ256rrkz: case VPSUBUSBZrm: case VPSUBUSBZrmk: case VPSUBUSBZrmkz: case VPSUBUSBZrr: case VPSUBUSBZrrk: case VPSUBUSBZrrkz: case VPSUBUSBrm: case VPSUBUSBrr: return true; } return false; } bool isVPMOVQW(unsigned Opcode) { switch (Opcode) { case VPMOVQWZ128mr: case VPMOVQWZ128mrk: case VPMOVQWZ128rr: case VPMOVQWZ128rrk: case VPMOVQWZ128rrkz: case VPMOVQWZ256mr: case VPMOVQWZ256mrk: case VPMOVQWZ256rr: case VPMOVQWZ256rrk: case VPMOVQWZ256rrkz: case VPMOVQWZmr: case VPMOVQWZmrk: case VPMOVQWZrr: case VPMOVQWZrrk: case VPMOVQWZrrkz: return true; } return false; } bool isVADDPS(unsigned Opcode) { switch (Opcode) { case VADDPSYrm: case VADDPSYrr: case VADDPSZ128rm: case VADDPSZ128rmb: case VADDPSZ128rmbk: case VADDPSZ128rmbkz: case VADDPSZ128rmk: case VADDPSZ128rmkz: case VADDPSZ128rr: case VADDPSZ128rrk: case VADDPSZ128rrkz: case VADDPSZ256rm: case VADDPSZ256rmb: case VADDPSZ256rmbk: case VADDPSZ256rmbkz: case VADDPSZ256rmk: case VADDPSZ256rmkz: case VADDPSZ256rr: case VADDPSZ256rrk: case VADDPSZ256rrkz: case VADDPSZrm: case VADDPSZrmb: case VADDPSZrmbk: case VADDPSZrmbkz: case VADDPSZrmk: case VADDPSZrmkz: case VADDPSZrr: case VADDPSZrrb: case VADDPSZrrbk: case VADDPSZrrbkz: case VADDPSZrrk: case VADDPSZrrkz: case VADDPSrm: case VADDPSrr: return true; } return false; } bool isLODSQ(unsigned Opcode) { return Opcode == LODSQ; } bool isFIDIVR(unsigned Opcode) { switch (Opcode) { case DIVR_FI16m: case DIVR_FI32m: return true; } return false; } bool isIRETQ(unsigned Opcode) { return Opcode == IRET64; } bool isLODSW(unsigned Opcode) { return Opcode == LODSW; } bool isVHADDPS(unsigned Opcode) { switch (Opcode) { case VHADDPSYrm: case VHADDPSYrr: case VHADDPSrm: case VHADDPSrr: return true; } return false; } bool isCVTTPS2DQ(unsigned Opcode) { switch (Opcode) { case CVTTPS2DQrm: case CVTTPS2DQrr: return true; } return false; } bool isVPORD(unsigned Opcode) { switch (Opcode) { case VPORDZ128rm: case VPORDZ128rmb: case VPORDZ128rmbk: case VPORDZ128rmbkz: case VPORDZ128rmk: case VPORDZ128rmkz: case VPORDZ128rr: case VPORDZ128rrk: case VPORDZ128rrkz: case VPORDZ256rm: case VPORDZ256rmb: case VPORDZ256rmbk: case VPORDZ256rmbkz: case VPORDZ256rmk: case VPORDZ256rmkz: case VPORDZ256rr: case VPORDZ256rrk: case VPORDZ256rrkz: case VPORDZrm: case VPORDZrmb: case VPORDZrmbk: case VPORDZrmbkz: case VPORDZrmk: case VPORDZrmkz: case VPORDZrr: case VPORDZrrk: case VPORDZrrkz: return true; } return false; } bool isVP2INTERSECTD(unsigned Opcode) { switch (Opcode) { case VP2INTERSECTDZ128rm: case VP2INTERSECTDZ128rmb: case VP2INTERSECTDZ128rr: case VP2INTERSECTDZ256rm: case VP2INTERSECTDZ256rmb: case VP2INTERSECTDZ256rr: case VP2INTERSECTDZrm: case VP2INTERSECTDZrmb: case VP2INTERSECTDZrr: return true; } return false; } bool isVPSUBUSW(unsigned Opcode) { switch (Opcode) { case VPSUBUSWYrm: case VPSUBUSWYrr: case VPSUBUSWZ128rm: case VPSUBUSWZ128rmk: case VPSUBUSWZ128rmkz: case VPSUBUSWZ128rr: case VPSUBUSWZ128rrk: case VPSUBUSWZ128rrkz: case VPSUBUSWZ256rm: case VPSUBUSWZ256rmk: case VPSUBUSWZ256rmkz: case VPSUBUSWZ256rr: case VPSUBUSWZ256rrk: case VPSUBUSWZ256rrkz: case VPSUBUSWZrm: case VPSUBUSWZrmk: case VPSUBUSWZrmkz: case VPSUBUSWZrr: case VPSUBUSWZrrk: case VPSUBUSWZrrkz: case VPSUBUSWrm: case VPSUBUSWrr: return true; } return false; } bool isVPERMILPD(unsigned Opcode) { switch (Opcode) { case VPERMILPDYmi: case VPERMILPDYri: case VPERMILPDYrm: case VPERMILPDYrr: case VPERMILPDZ128mbi: case VPERMILPDZ128mbik: case VPERMILPDZ128mbikz: case VPERMILPDZ128mi: case VPERMILPDZ128mik: case VPERMILPDZ128mikz: case VPERMILPDZ128ri: case VPERMILPDZ128rik: case VPERMILPDZ128rikz: case VPERMILPDZ128rm: case VPERMILPDZ128rmb: case VPERMILPDZ128rmbk: case VPERMILPDZ128rmbkz: case VPERMILPDZ128rmk: case VPERMILPDZ128rmkz: case VPERMILPDZ128rr: case VPERMILPDZ128rrk: case VPERMILPDZ128rrkz: case VPERMILPDZ256mbi: case VPERMILPDZ256mbik: case VPERMILPDZ256mbikz: case VPERMILPDZ256mi: case VPERMILPDZ256mik: case VPERMILPDZ256mikz: case VPERMILPDZ256ri: case VPERMILPDZ256rik: case VPERMILPDZ256rikz: case VPERMILPDZ256rm: case VPERMILPDZ256rmb: case VPERMILPDZ256rmbk: case VPERMILPDZ256rmbkz: case VPERMILPDZ256rmk: case VPERMILPDZ256rmkz: case VPERMILPDZ256rr: case VPERMILPDZ256rrk: case VPERMILPDZ256rrkz: case VPERMILPDZmbi: case VPERMILPDZmbik: case VPERMILPDZmbikz: case VPERMILPDZmi: case VPERMILPDZmik: case VPERMILPDZmikz: case VPERMILPDZri: case VPERMILPDZrik: case VPERMILPDZrikz: case VPERMILPDZrm: case VPERMILPDZrmb: case VPERMILPDZrmbk: case VPERMILPDZrmbkz: case VPERMILPDZrmk: case VPERMILPDZrmkz: case VPERMILPDZrr: case VPERMILPDZrrk: case VPERMILPDZrrkz: case VPERMILPDmi: case VPERMILPDri: case VPERMILPDrm: case VPERMILPDrr: return true; } return false; } bool isVPSHLDD(unsigned Opcode) { switch (Opcode) { case VPSHLDDZ128rmbi: case VPSHLDDZ128rmbik: case VPSHLDDZ128rmbikz: case VPSHLDDZ128rmi: case VPSHLDDZ128rmik: case VPSHLDDZ128rmikz: case VPSHLDDZ128rri: case VPSHLDDZ128rrik: case VPSHLDDZ128rrikz: case VPSHLDDZ256rmbi: case VPSHLDDZ256rmbik: case VPSHLDDZ256rmbikz: case VPSHLDDZ256rmi: case VPSHLDDZ256rmik: case VPSHLDDZ256rmikz: case VPSHLDDZ256rri: case VPSHLDDZ256rrik: case VPSHLDDZ256rrikz: case VPSHLDDZrmbi: case VPSHLDDZrmbik: case VPSHLDDZrmbikz: case VPSHLDDZrmi: case VPSHLDDZrmik: case VPSHLDDZrmikz: case VPSHLDDZrri: case VPSHLDDZrrik: case VPSHLDDZrrikz: return true; } return false; } bool isMOVD(unsigned Opcode) { switch (Opcode) { case MMX_MOVD64grr: case MMX_MOVD64mr: case MMX_MOVD64rm: case MMX_MOVD64rr: case MOVDI2PDIrm: case MOVDI2PDIrr: case MOVPDI2DImr: case MOVPDI2DIrr: return true; } return false; } bool isVPORQ(unsigned Opcode) { switch (Opcode) { case VPORQZ128rm: case VPORQZ128rmb: case VPORQZ128rmbk: case VPORQZ128rmbkz: case VPORQZ128rmk: case VPORQZ128rmkz: case VPORQZ128rr: case VPORQZ128rrk: case VPORQZ128rrkz: case VPORQZ256rm: case VPORQZ256rmb: case VPORQZ256rmbk: case VPORQZ256rmbkz: case VPORQZ256rmk: case VPORQZ256rmkz: case VPORQZ256rr: case VPORQZ256rrk: case VPORQZ256rrkz: case VPORQZrm: case VPORQZrmb: case VPORQZrmbk: case VPORQZrmbkz: case VPORQZrmk: case VPORQZrmkz: case VPORQZrr: case VPORQZrrk: case VPORQZrrkz: return true; } return false; } bool isVP2INTERSECTQ(unsigned Opcode) { switch (Opcode) { case VP2INTERSECTQZ128rm: case VP2INTERSECTQZ128rmb: case VP2INTERSECTQZ128rr: case VP2INTERSECTQZ256rm: case VP2INTERSECTQZ256rmb: case VP2INTERSECTQZ256rr: case VP2INTERSECTQZrm: case VP2INTERSECTQZrmb: case VP2INTERSECTQZrr: return true; } return false; } bool isCRC32(unsigned Opcode) { switch (Opcode) { case CRC32r32m16: case CRC32r32m32: case CRC32r32m8: case CRC32r32r16: case CRC32r32r32: case CRC32r32r8: case CRC32r64m64: case CRC32r64m8: case CRC32r64r64: case CRC32r64r8: return true; } return false; } bool isVPERMILPS(unsigned Opcode) { switch (Opcode) { case VPERMILPSYmi: case VPERMILPSYri: case VPERMILPSYrm: case VPERMILPSYrr: case VPERMILPSZ128mbi: case VPERMILPSZ128mbik: case VPERMILPSZ128mbikz: case VPERMILPSZ128mi: case VPERMILPSZ128mik: case VPERMILPSZ128mikz: case VPERMILPSZ128ri: case VPERMILPSZ128rik: case VPERMILPSZ128rikz: case VPERMILPSZ128rm: case VPERMILPSZ128rmb: case VPERMILPSZ128rmbk: case VPERMILPSZ128rmbkz: case VPERMILPSZ128rmk: case VPERMILPSZ128rmkz: case VPERMILPSZ128rr: case VPERMILPSZ128rrk: case VPERMILPSZ128rrkz: case VPERMILPSZ256mbi: case VPERMILPSZ256mbik: case VPERMILPSZ256mbikz: case VPERMILPSZ256mi: case VPERMILPSZ256mik: case VPERMILPSZ256mikz: case VPERMILPSZ256ri: case VPERMILPSZ256rik: case VPERMILPSZ256rikz: case VPERMILPSZ256rm: case VPERMILPSZ256rmb: case VPERMILPSZ256rmbk: case VPERMILPSZ256rmbkz: case VPERMILPSZ256rmk: case VPERMILPSZ256rmkz: case VPERMILPSZ256rr: case VPERMILPSZ256rrk: case VPERMILPSZ256rrkz: case VPERMILPSZmbi: case VPERMILPSZmbik: case VPERMILPSZmbikz: case VPERMILPSZmi: case VPERMILPSZmik: case VPERMILPSZmikz: case VPERMILPSZri: case VPERMILPSZrik: case VPERMILPSZrikz: case VPERMILPSZrm: case VPERMILPSZrmb: case VPERMILPSZrmbk: case VPERMILPSZrmbkz: case VPERMILPSZrmk: case VPERMILPSZrmkz: case VPERMILPSZrr: case VPERMILPSZrrk: case VPERMILPSZrrkz: case VPERMILPSmi: case VPERMILPSri: case VPERMILPSrm: case VPERMILPSrr: return true; } return false; } bool isMOVQ(unsigned Opcode) { switch (Opcode) { case MMX_MOVD64from64mr: case MMX_MOVD64from64rr: case MMX_MOVD64to64rm: case MMX_MOVD64to64rr: case MMX_MOVQ64mr: case MMX_MOVQ64rm: case MMX_MOVQ64rr: case MMX_MOVQ64rr_REV: case MOV64toPQIrm: case MOV64toPQIrr: case MOVPQI2QImr: case MOVPQI2QIrr: case MOVPQIto64mr: case MOVPQIto64rr: case MOVQI2PQIrm: case MOVZPQILo2PQIrr: return true; } return false; } bool isVPSHLDQ(unsigned Opcode) { switch (Opcode) { case VPSHLDQZ128rmbi: case VPSHLDQZ128rmbik: case VPSHLDQZ128rmbikz: case VPSHLDQZ128rmi: case VPSHLDQZ128rmik: case VPSHLDQZ128rmikz: case VPSHLDQZ128rri: case VPSHLDQZ128rrik: case VPSHLDQZ128rrikz: case VPSHLDQZ256rmbi: case VPSHLDQZ256rmbik: case VPSHLDQZ256rmbikz: case VPSHLDQZ256rmi: case VPSHLDQZ256rmik: case VPSHLDQZ256rmikz: case VPSHLDQZ256rri: case VPSHLDQZ256rrik: case VPSHLDQZ256rrikz: case VPSHLDQZrmbi: case VPSHLDQZrmbik: case VPSHLDQZrmbikz: case VPSHLDQZrmi: case VPSHLDQZrmik: case VPSHLDQZrmikz: case VPSHLDQZrri: case VPSHLDQZrrik: case VPSHLDQZrrikz: return true; } return false; } bool isVPMASKMOVD(unsigned Opcode) { switch (Opcode) { case VPMASKMOVDYmr: case VPMASKMOVDYrm: case VPMASKMOVDmr: case VPMASKMOVDrm: return true; } return false; } bool isVPSHLDW(unsigned Opcode) { switch (Opcode) { case VPSHLDWZ128rmi: case VPSHLDWZ128rmik: case VPSHLDWZ128rmikz: case VPSHLDWZ128rri: case VPSHLDWZ128rrik: case VPSHLDWZ128rrikz: case VPSHLDWZ256rmi: case VPSHLDWZ256rmik: case VPSHLDWZ256rmikz: case VPSHLDWZ256rri: case VPSHLDWZ256rrik: case VPSHLDWZ256rrikz: case VPSHLDWZrmi: case VPSHLDWZrmik: case VPSHLDWZrmikz: case VPSHLDWZrri: case VPSHLDWZrrik: case VPSHLDWZrrikz: return true; } return false; } bool isSLWPCB(unsigned Opcode) { switch (Opcode) { case SLWPCB: case SLWPCB64: return true; } return false; } bool isVORPD(unsigned Opcode) { switch (Opcode) { case VORPDYrm: case VORPDYrr: case VORPDZ128rm: case VORPDZ128rmb: case VORPDZ128rmbk: case VORPDZ128rmbkz: case VORPDZ128rmk: case VORPDZ128rmkz: case VORPDZ128rr: case VORPDZ128rrk: case VORPDZ128rrkz: case VORPDZ256rm: case VORPDZ256rmb: case VORPDZ256rmbk: case VORPDZ256rmbkz: case VORPDZ256rmk: case VORPDZ256rmkz: case VORPDZ256rr: case VORPDZ256rrk: case VORPDZ256rrkz: case VORPDZrm: case VORPDZrmb: case VORPDZrmbk: case VORPDZrmbkz: case VORPDZrmk: case VORPDZrmkz: case VORPDZrr: case VORPDZrrk: case VORPDZrrkz: case VORPDrm: case VORPDrr: return true; } return false; } bool isPCMPGTB(unsigned Opcode) { switch (Opcode) { case MMX_PCMPGTBrm: case MMX_PCMPGTBrr: case PCMPGTBrm: case PCMPGTBrr: return true; } return false; } bool isPCMPGTD(unsigned Opcode) { switch (Opcode) { case MMX_PCMPGTDrm: case MMX_PCMPGTDrr: case PCMPGTDrm: case PCMPGTDrr: return true; } return false; } bool isVPMASKMOVQ(unsigned Opcode) { switch (Opcode) { case VPMASKMOVQYmr: case VPMASKMOVQYrm: case VPMASKMOVQmr: case VPMASKMOVQrm: return true; } return false; } bool isPFRSQIT1(unsigned Opcode) { switch (Opcode) { case PFRSQIT1rm: case PFRSQIT1rr: return true; } return false; } bool isVORPS(unsigned Opcode) { switch (Opcode) { case VORPSYrm: case VORPSYrr: case VORPSZ128rm: case VORPSZ128rmb: case VORPSZ128rmbk: case VORPSZ128rmbkz: case VORPSZ128rmk: case VORPSZ128rmkz: case VORPSZ128rr: case VORPSZ128rrk: case VORPSZ128rrkz: case VORPSZ256rm: case VORPSZ256rmb: case VORPSZ256rmbk: case VORPSZ256rmbkz: case VORPSZ256rmk: case VORPSZ256rmkz: case VORPSZ256rr: case VORPSZ256rrk: case VORPSZ256rrkz: case VORPSZrm: case VORPSZrmb: case VORPSZrmbk: case VORPSZrmbkz: case VORPSZrmk: case VORPSZrmkz: case VORPSZrr: case VORPSZrrk: case VORPSZrrkz: case VORPSrm: case VORPSrr: return true; } return false; } bool isPCMPGTQ(unsigned Opcode) { switch (Opcode) { case PCMPGTQrm: case PCMPGTQrr: return true; } return false; } bool isBLCIC(unsigned Opcode) { switch (Opcode) { case BLCIC32rm: case BLCIC32rr: case BLCIC64rm: case BLCIC64rr: return true; } return false; } bool isMAXSD(unsigned Opcode) { switch (Opcode) { case MAXSDrm_Int: case MAXSDrr_Int: return true; } return false; } bool isPCMPGTW(unsigned Opcode) { switch (Opcode) { case MMX_PCMPGTWrm: case MMX_PCMPGTWrr: case PCMPGTWrm: case PCMPGTWrr: return true; } return false; } bool isVBCSTNESH2PS(unsigned Opcode) { switch (Opcode) { case VBCSTNESH2PSYrm: case VBCSTNESH2PSrm: return true; } return false; } bool isMOVLHPS(unsigned Opcode) { return Opcode == MOVLHPSrr; } bool isXSAVEC(unsigned Opcode) { return Opcode == XSAVEC; } bool isMAXSS(unsigned Opcode) { switch (Opcode) { case MAXSSrm_Int: case MAXSSrr_Int: return true; } return false; } bool isFST(unsigned Opcode) { switch (Opcode) { case ST_F32m: case ST_F64m: case ST_Frr: return true; } return false; } bool isVCVTSS2USI(unsigned Opcode) { switch (Opcode) { case VCVTSS2USI64Zrm_Int: case VCVTSS2USI64Zrr_Int: case VCVTSS2USI64Zrrb_Int: case VCVTSS2USIZrm_Int: case VCVTSS2USIZrr_Int: case VCVTSS2USIZrrb_Int: return true; } return false; } bool isVADDSD(unsigned Opcode) { switch (Opcode) { case VADDSDZrm_Int: case VADDSDZrm_Intk: case VADDSDZrm_Intkz: case VADDSDZrr_Int: case VADDSDZrr_Intk: case VADDSDZrr_Intkz: case VADDSDZrrb_Int: case VADDSDZrrb_Intk: case VADDSDZrrb_Intkz: case VADDSDrm_Int: case VADDSDrr_Int: return true; } return false; } bool isVRNDSCALEPD(unsigned Opcode) { switch (Opcode) { case VRNDSCALEPDZ128rmbi: case VRNDSCALEPDZ128rmbik: case VRNDSCALEPDZ128rmbikz: case VRNDSCALEPDZ128rmi: case VRNDSCALEPDZ128rmik: case VRNDSCALEPDZ128rmikz: case VRNDSCALEPDZ128rri: case VRNDSCALEPDZ128rrik: case VRNDSCALEPDZ128rrikz: case VRNDSCALEPDZ256rmbi: case VRNDSCALEPDZ256rmbik: case VRNDSCALEPDZ256rmbikz: case VRNDSCALEPDZ256rmi: case VRNDSCALEPDZ256rmik: case VRNDSCALEPDZ256rmikz: case VRNDSCALEPDZ256rri: case VRNDSCALEPDZ256rrik: case VRNDSCALEPDZ256rrikz: case VRNDSCALEPDZrmbi: case VRNDSCALEPDZrmbik: case VRNDSCALEPDZrmbikz: case VRNDSCALEPDZrmi: case VRNDSCALEPDZrmik: case VRNDSCALEPDZrmikz: case VRNDSCALEPDZrri: case VRNDSCALEPDZrrib: case VRNDSCALEPDZrribk: case VRNDSCALEPDZrribkz: case VRNDSCALEPDZrrik: case VRNDSCALEPDZrrikz: return true; } return false; } bool isVCVTTPH2UQQ(unsigned Opcode) { switch (Opcode) { case VCVTTPH2UQQZ128rm: case VCVTTPH2UQQZ128rmb: case VCVTTPH2UQQZ128rmbk: case VCVTTPH2UQQZ128rmbkz: case VCVTTPH2UQQZ128rmk: case VCVTTPH2UQQZ128rmkz: case VCVTTPH2UQQZ128rr: case VCVTTPH2UQQZ128rrk: case VCVTTPH2UQQZ128rrkz: case VCVTTPH2UQQZ256rm: case VCVTTPH2UQQZ256rmb: case VCVTTPH2UQQZ256rmbk: case VCVTTPH2UQQZ256rmbkz: case VCVTTPH2UQQZ256rmk: case VCVTTPH2UQQZ256rmkz: case VCVTTPH2UQQZ256rr: case VCVTTPH2UQQZ256rrk: case VCVTTPH2UQQZ256rrkz: case VCVTTPH2UQQZrm: case VCVTTPH2UQQZrmb: case VCVTTPH2UQQZrmbk: case VCVTTPH2UQQZrmbkz: case VCVTTPH2UQQZrmk: case VCVTTPH2UQQZrmkz: case VCVTTPH2UQQZrr: case VCVTTPH2UQQZrrb: case VCVTTPH2UQQZrrbk: case VCVTTPH2UQQZrrbkz: case VCVTTPH2UQQZrrk: case VCVTTPH2UQQZrrkz: return true; } return false; } bool isV4FNMADDSS(unsigned Opcode) { switch (Opcode) { case V4FNMADDSSrm: case V4FNMADDSSrmk: case V4FNMADDSSrmkz: return true; } return false; } bool isVADDSH(unsigned Opcode) { switch (Opcode) { case VADDSHZrm_Int: case VADDSHZrm_Intk: case VADDSHZrm_Intkz: case VADDSHZrr_Int: case VADDSHZrr_Intk: case VADDSHZrr_Intkz: case VADDSHZrrb_Int: case VADDSHZrrb_Intk: case VADDSHZrrb_Intkz: return true; } return false; } bool isVRNDSCALEPH(unsigned Opcode) { switch (Opcode) { case VRNDSCALEPHZ128rmbi: case VRNDSCALEPHZ128rmbik: case VRNDSCALEPHZ128rmbikz: case VRNDSCALEPHZ128rmi: case VRNDSCALEPHZ128rmik: case VRNDSCALEPHZ128rmikz: case VRNDSCALEPHZ128rri: case VRNDSCALEPHZ128rrik: case VRNDSCALEPHZ128rrikz: case VRNDSCALEPHZ256rmbi: case VRNDSCALEPHZ256rmbik: case VRNDSCALEPHZ256rmbikz: case VRNDSCALEPHZ256rmi: case VRNDSCALEPHZ256rmik: case VRNDSCALEPHZ256rmikz: case VRNDSCALEPHZ256rri: case VRNDSCALEPHZ256rrik: case VRNDSCALEPHZ256rrikz: case VRNDSCALEPHZrmbi: case VRNDSCALEPHZrmbik: case VRNDSCALEPHZrmbikz: case VRNDSCALEPHZrmi: case VRNDSCALEPHZrmik: case VRNDSCALEPHZrmikz: case VRNDSCALEPHZrri: case VRNDSCALEPHZrrib: case VRNDSCALEPHZrribk: case VRNDSCALEPHZrribkz: case VRNDSCALEPHZrrik: case VRNDSCALEPHZrrikz: return true; } return false; } bool isXSAVES(unsigned Opcode) { return Opcode == XSAVES; } bool isXRESLDTRK(unsigned Opcode) { return Opcode == XRESLDTRK; } bool isVADDSS(unsigned Opcode) { switch (Opcode) { case VADDSSZrm_Int: case VADDSSZrm_Intk: case VADDSSZrm_Intkz: case VADDSSZrr_Int: case VADDSSZrr_Intk: case VADDSSZrr_Intkz: case VADDSSZrrb_Int: case VADDSSZrrb_Intk: case VADDSSZrrb_Intkz: case VADDSSrm_Int: case VADDSSrr_Int: return true; } return false; } bool isVRNDSCALEPS(unsigned Opcode) { switch (Opcode) { case VRNDSCALEPSZ128rmbi: case VRNDSCALEPSZ128rmbik: case VRNDSCALEPSZ128rmbikz: case VRNDSCALEPSZ128rmi: case VRNDSCALEPSZ128rmik: case VRNDSCALEPSZ128rmikz: case VRNDSCALEPSZ128rri: case VRNDSCALEPSZ128rrik: case VRNDSCALEPSZ128rrikz: case VRNDSCALEPSZ256rmbi: case VRNDSCALEPSZ256rmbik: case VRNDSCALEPSZ256rmbikz: case VRNDSCALEPSZ256rmi: case VRNDSCALEPSZ256rmik: case VRNDSCALEPSZ256rmikz: case VRNDSCALEPSZ256rri: case VRNDSCALEPSZ256rrik: case VRNDSCALEPSZ256rrikz: case VRNDSCALEPSZrmbi: case VRNDSCALEPSZrmbik: case VRNDSCALEPSZrmbikz: case VRNDSCALEPSZrmi: case VRNDSCALEPSZrmik: case VRNDSCALEPSZrmikz: case VRNDSCALEPSZrri: case VRNDSCALEPSZrrib: case VRNDSCALEPSZrribk: case VRNDSCALEPSZrribkz: case VRNDSCALEPSZrrik: case VRNDSCALEPSZrrikz: return true; } return false; } bool isVPHADDUWD(unsigned Opcode) { switch (Opcode) { case VPHADDUWDrm: case VPHADDUWDrr: return true; } return false; } bool isRDSSPD(unsigned Opcode) { return Opcode == RDSSPD; } bool isVPHADDUWQ(unsigned Opcode) { switch (Opcode) { case VPHADDUWQrm: case VPHADDUWQrr: return true; } return false; } bool isVMOVDDUP(unsigned Opcode) { switch (Opcode) { case VMOVDDUPYrm: case VMOVDDUPYrr: case VMOVDDUPZ128rm: case VMOVDDUPZ128rmk: case VMOVDDUPZ128rmkz: case VMOVDDUPZ128rr: case VMOVDDUPZ128rrk: case VMOVDDUPZ128rrkz: case VMOVDDUPZ256rm: case VMOVDDUPZ256rmk: case VMOVDDUPZ256rmkz: case VMOVDDUPZ256rr: case VMOVDDUPZ256rrk: case VMOVDDUPZ256rrkz: case VMOVDDUPZrm: case VMOVDDUPZrmk: case VMOVDDUPZrmkz: case VMOVDDUPZrr: case VMOVDDUPZrrk: case VMOVDDUPZrrkz: case VMOVDDUPrm: case VMOVDDUPrr: return true; } return false; } bool isINSERTPS(unsigned Opcode) { switch (Opcode) { case INSERTPSrm: case INSERTPSrr: return true; } return false; } bool isNEG(unsigned Opcode) { switch (Opcode) { case NEG16m: case NEG16r: case NEG32m: case NEG32r: case NEG64m: case NEG64r: case NEG8m: case NEG8r: return true; } return false; } bool isMOVUPD(unsigned Opcode) { switch (Opcode) { case MOVUPDmr: case MOVUPDrm: case MOVUPDrr: case MOVUPDrr_REV: return true; } return false; } bool isRDSSPQ(unsigned Opcode) { return Opcode == RDSSPQ; } bool isVFRCZPD(unsigned Opcode) { switch (Opcode) { case VFRCZPDYrm: case VFRCZPDYrr: case VFRCZPDrm: case VFRCZPDrr: return true; } return false; } bool isPHMINPOSUW(unsigned Opcode) { switch (Opcode) { case PHMINPOSUWrm: case PHMINPOSUWrr: return true; } return false; } bool isVBROADCASTI32X2(unsigned Opcode) { switch (Opcode) { case VBROADCASTI32X2Z128rm: case VBROADCASTI32X2Z128rmk: case VBROADCASTI32X2Z128rmkz: case VBROADCASTI32X2Z128rr: case VBROADCASTI32X2Z128rrk: case VBROADCASTI32X2Z128rrkz: case VBROADCASTI32X2Z256rm: case VBROADCASTI32X2Z256rmk: case VBROADCASTI32X2Z256rmkz: case VBROADCASTI32X2Z256rr: case VBROADCASTI32X2Z256rrk: case VBROADCASTI32X2Z256rrkz: case VBROADCASTI32X2Zrm: case VBROADCASTI32X2Zrmk: case VBROADCASTI32X2Zrmkz: case VBROADCASTI32X2Zrr: case VBROADCASTI32X2Zrrk: case VBROADCASTI32X2Zrrkz: return true; } return false; } bool isVBROADCASTI32X4(unsigned Opcode) { switch (Opcode) { case VBROADCASTI32X4Z256rm: case VBROADCASTI32X4Z256rmk: case VBROADCASTI32X4Z256rmkz: case VBROADCASTI32X4rm: case VBROADCASTI32X4rmk: case VBROADCASTI32X4rmkz: return true; } return false; } bool isJMP(unsigned Opcode) { switch (Opcode) { case FARJMP32m: case JMP16m: case JMP16r: case JMP32m: case JMP32r: case JMP64m: case JMP64r: case JMP_1: case JMP_2: case JMP_4: return true; } return false; } bool isVBROADCASTI32X8(unsigned Opcode) { switch (Opcode) { case VBROADCASTI32X8rm: case VBROADCASTI32X8rmk: case VBROADCASTI32X8rmkz: return true; } return false; } bool isMOVUPS(unsigned Opcode) { switch (Opcode) { case MOVUPSmr: case MOVUPSrm: case MOVUPSrr: case MOVUPSrr_REV: return true; } return false; } bool isVPANDND(unsigned Opcode) { switch (Opcode) { case VPANDNDZ128rm: case VPANDNDZ128rmb: case VPANDNDZ128rmbk: case VPANDNDZ128rmbkz: case VPANDNDZ128rmk: case VPANDNDZ128rmkz: case VPANDNDZ128rr: case VPANDNDZ128rrk: case VPANDNDZ128rrkz: case VPANDNDZ256rm: case VPANDNDZ256rmb: case VPANDNDZ256rmbk: case VPANDNDZ256rmbkz: case VPANDNDZ256rmk: case VPANDNDZ256rmkz: case VPANDNDZ256rr: case VPANDNDZ256rrk: case VPANDNDZ256rrkz: case VPANDNDZrm: case VPANDNDZrmb: case VPANDNDZrmbk: case VPANDNDZrmbkz: case VPANDNDZrmk: case VPANDNDZrmkz: case VPANDNDZrr: case VPANDNDZrrk: case VPANDNDZrrkz: return true; } return false; } bool isVCVTNE2PS2BF16(unsigned Opcode) { switch (Opcode) { case VCVTNE2PS2BF16Z128rm: case VCVTNE2PS2BF16Z128rmb: case VCVTNE2PS2BF16Z128rmbk: case VCVTNE2PS2BF16Z128rmbkz: case VCVTNE2PS2BF16Z128rmk: case VCVTNE2PS2BF16Z128rmkz: case VCVTNE2PS2BF16Z128rr: case VCVTNE2PS2BF16Z128rrk: case VCVTNE2PS2BF16Z128rrkz: case VCVTNE2PS2BF16Z256rm: case VCVTNE2PS2BF16Z256rmb: case VCVTNE2PS2BF16Z256rmbk: case VCVTNE2PS2BF16Z256rmbkz: case VCVTNE2PS2BF16Z256rmk: case VCVTNE2PS2BF16Z256rmkz: case VCVTNE2PS2BF16Z256rr: case VCVTNE2PS2BF16Z256rrk: case VCVTNE2PS2BF16Z256rrkz: case VCVTNE2PS2BF16Zrm: case VCVTNE2PS2BF16Zrmb: case VCVTNE2PS2BF16Zrmbk: case VCVTNE2PS2BF16Zrmbkz: case VCVTNE2PS2BF16Zrmk: case VCVTNE2PS2BF16Zrmkz: case VCVTNE2PS2BF16Zrr: case VCVTNE2PS2BF16Zrrk: case VCVTNE2PS2BF16Zrrkz: return true; } return false; } bool isVPROLVD(unsigned Opcode) { switch (Opcode) { case VPROLVDZ128rm: case VPROLVDZ128rmb: case VPROLVDZ128rmbk: case VPROLVDZ128rmbkz: case VPROLVDZ128rmk: case VPROLVDZ128rmkz: case VPROLVDZ128rr: case VPROLVDZ128rrk: case VPROLVDZ128rrkz: case VPROLVDZ256rm: case VPROLVDZ256rmb: case VPROLVDZ256rmbk: case VPROLVDZ256rmbkz: case VPROLVDZ256rmk: case VPROLVDZ256rmkz: case VPROLVDZ256rr: case VPROLVDZ256rrk: case VPROLVDZ256rrkz: case VPROLVDZrm: case VPROLVDZrmb: case VPROLVDZrmbk: case VPROLVDZrmbkz: case VPROLVDZrmk: case VPROLVDZrmkz: case VPROLVDZrr: case VPROLVDZrrk: case VPROLVDZrrkz: return true; } return false; } bool isVFRCZPS(unsigned Opcode) { switch (Opcode) { case VFRCZPSYrm: case VFRCZPSYrr: case VFRCZPSrm: case VFRCZPSrr: return true; } return false; } bool isJRCXZ(unsigned Opcode) { return Opcode == JRCXZ; } bool isFNSTCW(unsigned Opcode) { return Opcode == FNSTCW16m; } bool isFFREEP(unsigned Opcode) { return Opcode == FFREEP; } bool isVPANDNQ(unsigned Opcode) { switch (Opcode) { case VPANDNQZ128rm: case VPANDNQZ128rmb: case VPANDNQZ128rmbk: case VPANDNQZ128rmbkz: case VPANDNQZ128rmk: case VPANDNQZ128rmkz: case VPANDNQZ128rr: case VPANDNQZ128rrk: case VPANDNQZ128rrkz: case VPANDNQZ256rm: case VPANDNQZ256rmb: case VPANDNQZ256rmbk: case VPANDNQZ256rmbkz: case VPANDNQZ256rmk: case VPANDNQZ256rmkz: case VPANDNQZ256rr: case VPANDNQZ256rrk: case VPANDNQZ256rrkz: case VPANDNQZrm: case VPANDNQZrmb: case VPANDNQZrmbk: case VPANDNQZrmbkz: case VPANDNQZrmk: case VPANDNQZrmkz: case VPANDNQZrr: case VPANDNQZrrk: case VPANDNQZrrkz: return true; } return false; } bool isVPROLVQ(unsigned Opcode) { switch (Opcode) { case VPROLVQZ128rm: case VPROLVQZ128rmb: case VPROLVQZ128rmbk: case VPROLVQZ128rmbkz: case VPROLVQZ128rmk: case VPROLVQZ128rmkz: case VPROLVQZ128rr: case VPROLVQZ128rrk: case VPROLVQZ128rrkz: case VPROLVQZ256rm: case VPROLVQZ256rmb: case VPROLVQZ256rmbk: case VPROLVQZ256rmbkz: case VPROLVQZ256rmk: case VPROLVQZ256rmkz: case VPROLVQZ256rr: case VPROLVQZ256rrk: case VPROLVQZ256rrkz: case VPROLVQZrm: case VPROLVQZrmb: case VPROLVQZrmbk: case VPROLVQZrmbkz: case VPROLVQZrmk: case VPROLVQZrmkz: case VPROLVQZrr: case VPROLVQZrrk: case VPROLVQZrrkz: return true; } return false; } bool isAESDECWIDE128KL(unsigned Opcode) { return Opcode == AESDECWIDE128KL; } bool isSTTILECFG(unsigned Opcode) { return Opcode == STTILECFG; } bool isVPMOVWB(unsigned Opcode) { switch (Opcode) { case VPMOVWBZ128mr: case VPMOVWBZ128mrk: case VPMOVWBZ128rr: case VPMOVWBZ128rrk: case VPMOVWBZ128rrkz: case VPMOVWBZ256mr: case VPMOVWBZ256mrk: case VPMOVWBZ256rr: case VPMOVWBZ256rrk: case VPMOVWBZ256rrkz: case VPMOVWBZmr: case VPMOVWBZmrk: case VPMOVWBZrr: case VPMOVWBZrrk: case VPMOVWBZrrkz: return true; } return false; } bool isVRNDSCALESD(unsigned Opcode) { switch (Opcode) { case VRNDSCALESDZm_Int: case VRNDSCALESDZm_Intk: case VRNDSCALESDZm_Intkz: case VRNDSCALESDZr_Int: case VRNDSCALESDZr_Intk: case VRNDSCALESDZr_Intkz: case VRNDSCALESDZrb_Int: case VRNDSCALESDZrb_Intk: case VRNDSCALESDZrb_Intkz: return true; } return false; } bool isVGATHERPF0QPD(unsigned Opcode) { return Opcode == VGATHERPF0QPDm; } bool isVPHSUBD(unsigned Opcode) { switch (Opcode) { case VPHSUBDYrm: case VPHSUBDYrr: case VPHSUBDrm: case VPHSUBDrr: return true; } return false; } bool isVCVTSD2USI(unsigned Opcode) { switch (Opcode) { case VCVTSD2USI64Zrm_Int: case VCVTSD2USI64Zrr_Int: case VCVTSD2USI64Zrrb_Int: case VCVTSD2USIZrm_Int: case VCVTSD2USIZrr_Int: case VCVTSD2USIZrrb_Int: return true; } return false; } bool isWRGSBASE(unsigned Opcode) { switch (Opcode) { case WRGSBASE: case WRGSBASE64: return true; } return false; } bool isVRNDSCALESH(unsigned Opcode) { switch (Opcode) { case VRNDSCALESHZm_Int: case VRNDSCALESHZm_Intk: case VRNDSCALESHZm_Intkz: case VRNDSCALESHZr_Int: case VRNDSCALESHZr_Intk: case VRNDSCALESHZr_Intkz: case VRNDSCALESHZrb_Int: case VRNDSCALESHZrb_Intk: case VRNDSCALESHZrb_Intkz: return true; } return false; } bool isAESENC256KL(unsigned Opcode) { return Opcode == AESENC256KL; } bool isVRNDSCALESS(unsigned Opcode) { switch (Opcode) { case VRNDSCALESSZm_Int: case VRNDSCALESSZm_Intk: case VRNDSCALESSZm_Intkz: case VRNDSCALESSZr_Int: case VRNDSCALESSZr_Intk: case VRNDSCALESSZr_Intkz: case VRNDSCALESSZrb_Int: case VRNDSCALESSZrb_Intk: case VRNDSCALESSZrb_Intkz: return true; } return false; } bool isVGATHERPF0QPS(unsigned Opcode) { return Opcode == VGATHERPF0QPSm; } bool isVPHSUBW(unsigned Opcode) { switch (Opcode) { case VPHSUBWYrm: case VPHSUBWYrr: case VPHSUBWrm: case VPHSUBWrr: return true; } return false; } bool isSHA1NEXTE(unsigned Opcode) { switch (Opcode) { case SHA1NEXTErm: case SHA1NEXTErr: return true; } return false; } bool isXCRYPTCTR(unsigned Opcode) { return Opcode == XCRYPTCTR; } bool isFMUL(unsigned Opcode) { switch (Opcode) { case MUL_F32m: case MUL_F64m: case MUL_FST0r: case MUL_FrST0: return true; } return false; } bool isFBLD(unsigned Opcode) { return Opcode == FBLDm; } bool isVMXON(unsigned Opcode) { return Opcode == VMXON; } bool isPUNPCKHQDQ(unsigned Opcode) { switch (Opcode) { case PUNPCKHQDQrm: case PUNPCKHQDQrr: return true; } return false; } bool isVFRCZSD(unsigned Opcode) { switch (Opcode) { case VFRCZSDrm: case VFRCZSDrr: return true; } return false; } bool isVFRCZSS(unsigned Opcode) { switch (Opcode) { case VFRCZSSrm: case VFRCZSSrr: return true; } return false; } bool isRMPUPDATE(unsigned Opcode) { return Opcode == RMPUPDATE; } bool isVFNMADDPD(unsigned Opcode) { switch (Opcode) { case VFNMADDPD4Ymr: case VFNMADDPD4Yrm: case VFNMADDPD4Yrr: case VFNMADDPD4Yrr_REV: case VFNMADDPD4mr: case VFNMADDPD4rm: case VFNMADDPD4rr: case VFNMADDPD4rr_REV: return true; } return false; } bool isVCOMISD(unsigned Opcode) { switch (Opcode) { case VCOMISDZrm: case VCOMISDZrr: case VCOMISDZrrb: case VCOMISDrm: case VCOMISDrr: return true; } return false; } bool isVCOMISH(unsigned Opcode) { switch (Opcode) { case VCOMISHZrm: case VCOMISHZrr: case VCOMISHZrrb: return true; } return false; } bool isAXOR(unsigned Opcode) { switch (Opcode) { case AXOR32mr: case AXOR64mr: return true; } return false; } bool isVFNMADDPS(unsigned Opcode) { switch (Opcode) { case VFNMADDPS4Ymr: case VFNMADDPS4Yrm: case VFNMADDPS4Yrr: case VFNMADDPS4Yrr_REV: case VFNMADDPS4mr: case VFNMADDPS4rm: case VFNMADDPS4rr: case VFNMADDPS4rr_REV: return true; } return false; } bool isVCOMISS(unsigned Opcode) { switch (Opcode) { case VCOMISSZrm: case VCOMISSZrr: case VCOMISSZrrb: case VCOMISSrm: case VCOMISSrr: return true; } return false; } bool isPHADDD(unsigned Opcode) { switch (Opcode) { case MMX_PHADDDrm: case MMX_PHADDDrr: case PHADDDrm: case PHADDDrr: return true; } return false; } bool isVPMULHUW(unsigned Opcode) { switch (Opcode) { case VPMULHUWYrm: case VPMULHUWYrr: case VPMULHUWZ128rm: case VPMULHUWZ128rmk: case VPMULHUWZ128rmkz: case VPMULHUWZ128rr: case VPMULHUWZ128rrk: case VPMULHUWZ128rrkz: case VPMULHUWZ256rm: case VPMULHUWZ256rmk: case VPMULHUWZ256rmkz: case VPMULHUWZ256rr: case VPMULHUWZ256rrk: case VPMULHUWZ256rrkz: case VPMULHUWZrm: case VPMULHUWZrmk: case VPMULHUWZrmkz: case VPMULHUWZrr: case VPMULHUWZrrk: case VPMULHUWZrrkz: case VPMULHUWrm: case VPMULHUWrr: return true; } return false; } bool isVFNMSUB132PD(unsigned Opcode) { switch (Opcode) { case VFNMSUB132PDYm: case VFNMSUB132PDYr: case VFNMSUB132PDZ128m: case VFNMSUB132PDZ128mb: case VFNMSUB132PDZ128mbk: case VFNMSUB132PDZ128mbkz: case VFNMSUB132PDZ128mk: case VFNMSUB132PDZ128mkz: case VFNMSUB132PDZ128r: case VFNMSUB132PDZ128rk: case VFNMSUB132PDZ128rkz: case VFNMSUB132PDZ256m: case VFNMSUB132PDZ256mb: case VFNMSUB132PDZ256mbk: case VFNMSUB132PDZ256mbkz: case VFNMSUB132PDZ256mk: case VFNMSUB132PDZ256mkz: case VFNMSUB132PDZ256r: case VFNMSUB132PDZ256rk: case VFNMSUB132PDZ256rkz: case VFNMSUB132PDZm: case VFNMSUB132PDZmb: case VFNMSUB132PDZmbk: case VFNMSUB132PDZmbkz: case VFNMSUB132PDZmk: case VFNMSUB132PDZmkz: case VFNMSUB132PDZr: case VFNMSUB132PDZrb: case VFNMSUB132PDZrbk: case VFNMSUB132PDZrbkz: case VFNMSUB132PDZrk: case VFNMSUB132PDZrkz: case VFNMSUB132PDm: case VFNMSUB132PDr: return true; } return false; } bool isPMOVMSKB(unsigned Opcode) { switch (Opcode) { case MMX_PMOVMSKBrr: case PMOVMSKBrr: return true; } return false; } bool isVFNMSUB132PH(unsigned Opcode) { switch (Opcode) { case VFNMSUB132PHZ128m: case VFNMSUB132PHZ128mb: case VFNMSUB132PHZ128mbk: case VFNMSUB132PHZ128mbkz: case VFNMSUB132PHZ128mk: case VFNMSUB132PHZ128mkz: case VFNMSUB132PHZ128r: case VFNMSUB132PHZ128rk: case VFNMSUB132PHZ128rkz: case VFNMSUB132PHZ256m: case VFNMSUB132PHZ256mb: case VFNMSUB132PHZ256mbk: case VFNMSUB132PHZ256mbkz: case VFNMSUB132PHZ256mk: case VFNMSUB132PHZ256mkz: case VFNMSUB132PHZ256r: case VFNMSUB132PHZ256rk: case VFNMSUB132PHZ256rkz: case VFNMSUB132PHZm: case VFNMSUB132PHZmb: case VFNMSUB132PHZmbk: case VFNMSUB132PHZmbkz: case VFNMSUB132PHZmk: case VFNMSUB132PHZmkz: case VFNMSUB132PHZr: case VFNMSUB132PHZrb: case VFNMSUB132PHZrbk: case VFNMSUB132PHZrbkz: case VFNMSUB132PHZrk: case VFNMSUB132PHZrkz: return true; } return false; } bool isPHADDW(unsigned Opcode) { switch (Opcode) { case MMX_PHADDWrm: case MMX_PHADDWrr: case PHADDWrm: case PHADDWrr: return true; } return false; } bool isVFNMSUB132PS(unsigned Opcode) { switch (Opcode) { case VFNMSUB132PSYm: case VFNMSUB132PSYr: case VFNMSUB132PSZ128m: case VFNMSUB132PSZ128mb: case VFNMSUB132PSZ128mbk: case VFNMSUB132PSZ128mbkz: case VFNMSUB132PSZ128mk: case VFNMSUB132PSZ128mkz: case VFNMSUB132PSZ128r: case VFNMSUB132PSZ128rk: case VFNMSUB132PSZ128rkz: case VFNMSUB132PSZ256m: case VFNMSUB132PSZ256mb: case VFNMSUB132PSZ256mbk: case VFNMSUB132PSZ256mbkz: case VFNMSUB132PSZ256mk: case VFNMSUB132PSZ256mkz: case VFNMSUB132PSZ256r: case VFNMSUB132PSZ256rk: case VFNMSUB132PSZ256rkz: case VFNMSUB132PSZm: case VFNMSUB132PSZmb: case VFNMSUB132PSZmbk: case VFNMSUB132PSZmbkz: case VFNMSUB132PSZmk: case VFNMSUB132PSZmkz: case VFNMSUB132PSZr: case VFNMSUB132PSZrb: case VFNMSUB132PSZrbk: case VFNMSUB132PSZrbkz: case VFNMSUB132PSZrk: case VFNMSUB132PSZrkz: case VFNMSUB132PSm: case VFNMSUB132PSr: return true; } return false; } bool isVMOVDQA(unsigned Opcode) { switch (Opcode) { case VMOVDQAYmr: case VMOVDQAYrm: case VMOVDQAYrr: case VMOVDQAYrr_REV: case VMOVDQAmr: case VMOVDQArm: case VMOVDQArr: case VMOVDQArr_REV: return true; } return false; } bool isSENDUIPI(unsigned Opcode) { return Opcode == SENDUIPI; } bool isVCVTTPS2DQ(unsigned Opcode) { switch (Opcode) { case VCVTTPS2DQYrm: case VCVTTPS2DQYrr: case VCVTTPS2DQZ128rm: case VCVTTPS2DQZ128rmb: case VCVTTPS2DQZ128rmbk: case VCVTTPS2DQZ128rmbkz: case VCVTTPS2DQZ128rmk: case VCVTTPS2DQZ128rmkz: case VCVTTPS2DQZ128rr: case VCVTTPS2DQZ128rrk: case VCVTTPS2DQZ128rrkz: case VCVTTPS2DQZ256rm: case VCVTTPS2DQZ256rmb: case VCVTTPS2DQZ256rmbk: case VCVTTPS2DQZ256rmbkz: case VCVTTPS2DQZ256rmk: case VCVTTPS2DQZ256rmkz: case VCVTTPS2DQZ256rr: case VCVTTPS2DQZ256rrk: case VCVTTPS2DQZ256rrkz: case VCVTTPS2DQZrm: case VCVTTPS2DQZrmb: case VCVTTPS2DQZrmbk: case VCVTTPS2DQZrmbkz: case VCVTTPS2DQZrmk: case VCVTTPS2DQZrmkz: case VCVTTPS2DQZrr: case VCVTTPS2DQZrrb: case VCVTTPS2DQZrrbk: case VCVTTPS2DQZrrbkz: case VCVTTPS2DQZrrk: case VCVTTPS2DQZrrkz: case VCVTTPS2DQrm: case VCVTTPS2DQrr: return true; } return false; } bool isRCPPS(unsigned Opcode) { switch (Opcode) { case RCPPSm: case RCPPSr: return true; } return false; } bool isRDMSR(unsigned Opcode) { return Opcode == RDMSR; } bool isVCVTQQ2PD(unsigned Opcode) { switch (Opcode) { case VCVTQQ2PDZ128rm: case VCVTQQ2PDZ128rmb: case VCVTQQ2PDZ128rmbk: case VCVTQQ2PDZ128rmbkz: case VCVTQQ2PDZ128rmk: case VCVTQQ2PDZ128rmkz: case VCVTQQ2PDZ128rr: case VCVTQQ2PDZ128rrk: case VCVTQQ2PDZ128rrkz: case VCVTQQ2PDZ256rm: case VCVTQQ2PDZ256rmb: case VCVTQQ2PDZ256rmbk: case VCVTQQ2PDZ256rmbkz: case VCVTQQ2PDZ256rmk: case VCVTQQ2PDZ256rmkz: case VCVTQQ2PDZ256rr: case VCVTQQ2PDZ256rrk: case VCVTQQ2PDZ256rrkz: case VCVTQQ2PDZrm: case VCVTQQ2PDZrmb: case VCVTQQ2PDZrmbk: case VCVTQQ2PDZrmbkz: case VCVTQQ2PDZrmk: case VCVTQQ2PDZrmkz: case VCVTQQ2PDZrr: case VCVTQQ2PDZrrb: case VCVTQQ2PDZrrbk: case VCVTQQ2PDZrrbkz: case VCVTQQ2PDZrrk: case VCVTQQ2PDZrrkz: return true; } return false; } bool isVRSQRT14PD(unsigned Opcode) { switch (Opcode) { case VRSQRT14PDZ128m: case VRSQRT14PDZ128mb: case VRSQRT14PDZ128mbk: case VRSQRT14PDZ128mbkz: case VRSQRT14PDZ128mk: case VRSQRT14PDZ128mkz: case VRSQRT14PDZ128r: case VRSQRT14PDZ128rk: case VRSQRT14PDZ128rkz: case VRSQRT14PDZ256m: case VRSQRT14PDZ256mb: case VRSQRT14PDZ256mbk: case VRSQRT14PDZ256mbkz: case VRSQRT14PDZ256mk: case VRSQRT14PDZ256mkz: case VRSQRT14PDZ256r: case VRSQRT14PDZ256rk: case VRSQRT14PDZ256rkz: case VRSQRT14PDZm: case VRSQRT14PDZmb: case VRSQRT14PDZmbk: case VRSQRT14PDZmbkz: case VRSQRT14PDZmk: case VRSQRT14PDZmkz: case VRSQRT14PDZr: case VRSQRT14PDZrk: case VRSQRT14PDZrkz: return true; } return false; } bool isXORPD(unsigned Opcode) { switch (Opcode) { case XORPDrm: case XORPDrr: return true; } return false; } bool isVCVTQQ2PH(unsigned Opcode) { switch (Opcode) { case VCVTQQ2PHZ128rm: case VCVTQQ2PHZ128rmb: case VCVTQQ2PHZ128rmbk: case VCVTQQ2PHZ128rmbkz: case VCVTQQ2PHZ128rmk: case VCVTQQ2PHZ128rmkz: case VCVTQQ2PHZ128rr: case VCVTQQ2PHZ128rrk: case VCVTQQ2PHZ128rrkz: case VCVTQQ2PHZ256rm: case VCVTQQ2PHZ256rmb: case VCVTQQ2PHZ256rmbk: case VCVTQQ2PHZ256rmbkz: case VCVTQQ2PHZ256rmk: case VCVTQQ2PHZ256rmkz: case VCVTQQ2PHZ256rr: case VCVTQQ2PHZ256rrk: case VCVTQQ2PHZ256rrkz: case VCVTQQ2PHZrm: case VCVTQQ2PHZrmb: case VCVTQQ2PHZrmbk: case VCVTQQ2PHZrmbkz: case VCVTQQ2PHZrmk: case VCVTQQ2PHZrmkz: case VCVTQQ2PHZrr: case VCVTQQ2PHZrrb: case VCVTQQ2PHZrrbk: case VCVTQQ2PHZrrbkz: case VCVTQQ2PHZrrk: case VCVTQQ2PHZrrkz: return true; } return false; } bool isVMOVDQU(unsigned Opcode) { switch (Opcode) { case VMOVDQUYmr: case VMOVDQUYrm: case VMOVDQUYrr: case VMOVDQUYrr_REV: case VMOVDQUmr: case VMOVDQUrm: case VMOVDQUrr: case VMOVDQUrr_REV: return true; } return false; } bool isBLENDPD(unsigned Opcode) { switch (Opcode) { case BLENDPDrmi: case BLENDPDrri: return true; } return false; } bool isVCVTQQ2PS(unsigned Opcode) { switch (Opcode) { case VCVTQQ2PSZ128rm: case VCVTQQ2PSZ128rmb: case VCVTQQ2PSZ128rmbk: case VCVTQQ2PSZ128rmbkz: case VCVTQQ2PSZ128rmk: case VCVTQQ2PSZ128rmkz: case VCVTQQ2PSZ128rr: case VCVTQQ2PSZ128rrk: case VCVTQQ2PSZ128rrkz: case VCVTQQ2PSZ256rm: case VCVTQQ2PSZ256rmb: case VCVTQQ2PSZ256rmbk: case VCVTQQ2PSZ256rmbkz: case VCVTQQ2PSZ256rmk: case VCVTQQ2PSZ256rmkz: case VCVTQQ2PSZ256rr: case VCVTQQ2PSZ256rrk: case VCVTQQ2PSZ256rrkz: case VCVTQQ2PSZrm: case VCVTQQ2PSZrmb: case VCVTQQ2PSZrmbk: case VCVTQQ2PSZrmbkz: case VCVTQQ2PSZrmk: case VCVTQQ2PSZrmkz: case VCVTQQ2PSZrr: case VCVTQQ2PSZrrb: case VCVTQQ2PSZrrbk: case VCVTQQ2PSZrrbkz: case VCVTQQ2PSZrrk: case VCVTQQ2PSZrrkz: return true; } return false; } bool isVRSQRT14PS(unsigned Opcode) { switch (Opcode) { case VRSQRT14PSZ128m: case VRSQRT14PSZ128mb: case VRSQRT14PSZ128mbk: case VRSQRT14PSZ128mbkz: case VRSQRT14PSZ128mk: case VRSQRT14PSZ128mkz: case VRSQRT14PSZ128r: case VRSQRT14PSZ128rk: case VRSQRT14PSZ128rkz: case VRSQRT14PSZ256m: case VRSQRT14PSZ256mb: case VRSQRT14PSZ256mbk: case VRSQRT14PSZ256mbkz: case VRSQRT14PSZ256mk: case VRSQRT14PSZ256mkz: case VRSQRT14PSZ256r: case VRSQRT14PSZ256rk: case VRSQRT14PSZ256rkz: case VRSQRT14PSZm: case VRSQRT14PSZmb: case VRSQRT14PSZmbk: case VRSQRT14PSZmbkz: case VRSQRT14PSZmk: case VRSQRT14PSZmkz: case VRSQRT14PSZr: case VRSQRT14PSZrk: case VRSQRT14PSZrkz: return true; } return false; } bool isXORPS(unsigned Opcode) { switch (Opcode) { case XORPSrm: case XORPSrr: return true; } return false; } bool isRCL(unsigned Opcode) { switch (Opcode) { case RCL16m1: case RCL16mCL: case RCL16mi: case RCL16r1: case RCL16rCL: case RCL16ri: case RCL32m1: case RCL32mCL: case RCL32mi: case RCL32r1: case RCL32rCL: case RCL32ri: case RCL64m1: case RCL64mCL: case RCL64mi: case RCL64r1: case RCL64rCL: case RCL64ri: case RCL8m1: case RCL8mCL: case RCL8mi: case RCL8r1: case RCL8rCL: case RCL8ri: return true; } return false; } bool isRCR(unsigned Opcode) { switch (Opcode) { case RCR16m1: case RCR16mCL: case RCR16mi: case RCR16r1: case RCR16rCL: case RCR16ri: case RCR32m1: case RCR32mCL: case RCR32mi: case RCR32r1: case RCR32rCL: case RCR32ri: case RCR64m1: case RCR64mCL: case RCR64mi: case RCR64r1: case RCR64rCL: case RCR64ri: case RCR8m1: case RCR8mCL: case RCR8mi: case RCR8r1: case RCR8rCL: case RCR8ri: return true; } return false; } bool isBLENDPS(unsigned Opcode) { switch (Opcode) { case BLENDPSrmi: case BLENDPSrri: return true; } return false; } bool isVPEXPANDB(unsigned Opcode) { switch (Opcode) { case VPEXPANDBZ128rm: case VPEXPANDBZ128rmk: case VPEXPANDBZ128rmkz: case VPEXPANDBZ128rr: case VPEXPANDBZ128rrk: case VPEXPANDBZ128rrkz: case VPEXPANDBZ256rm: case VPEXPANDBZ256rmk: case VPEXPANDBZ256rmkz: case VPEXPANDBZ256rr: case VPEXPANDBZ256rrk: case VPEXPANDBZ256rrkz: case VPEXPANDBZrm: case VPEXPANDBZrmk: case VPEXPANDBZrmkz: case VPEXPANDBZrr: case VPEXPANDBZrrk: case VPEXPANDBZrrkz: return true; } return false; } bool isVEXPANDPD(unsigned Opcode) { switch (Opcode) { case VEXPANDPDZ128rm: case VEXPANDPDZ128rmk: case VEXPANDPDZ128rmkz: case VEXPANDPDZ128rr: case VEXPANDPDZ128rrk: case VEXPANDPDZ128rrkz: case VEXPANDPDZ256rm: case VEXPANDPDZ256rmk: case VEXPANDPDZ256rmkz: case VEXPANDPDZ256rr: case VEXPANDPDZ256rrk: case VEXPANDPDZ256rrkz: case VEXPANDPDZrm: case VEXPANDPDZrmk: case VEXPANDPDZrmkz: case VEXPANDPDZrr: case VEXPANDPDZrrk: case VEXPANDPDZrrkz: return true; } return false; } bool isVPEXPANDD(unsigned Opcode) { switch (Opcode) { case VPEXPANDDZ128rm: case VPEXPANDDZ128rmk: case VPEXPANDDZ128rmkz: case VPEXPANDDZ128rr: case VPEXPANDDZ128rrk: case VPEXPANDDZ128rrkz: case VPEXPANDDZ256rm: case VPEXPANDDZ256rmk: case VPEXPANDDZ256rmkz: case VPEXPANDDZ256rr: case VPEXPANDDZ256rrk: case VPEXPANDDZ256rrkz: case VPEXPANDDZrm: case VPEXPANDDZrmk: case VPEXPANDDZrmkz: case VPEXPANDDZrr: case VPEXPANDDZrrk: case VPEXPANDDZrrkz: return true; } return false; } bool isBLSMSK(unsigned Opcode) { switch (Opcode) { case BLSMSK32rm: case BLSMSK32rr: case BLSMSK64rm: case BLSMSK64rr: return true; } return false; } bool isXSUSLDTRK(unsigned Opcode) { return Opcode == XSUSLDTRK; } bool isGF2P8MULB(unsigned Opcode) { switch (Opcode) { case GF2P8MULBrm: case GF2P8MULBrr: return true; } return false; } bool isSIDTD(unsigned Opcode) { return Opcode == SIDT32m; } bool isVEXPANDPS(unsigned Opcode) { switch (Opcode) { case VEXPANDPSZ128rm: case VEXPANDPSZ128rmk: case VEXPANDPSZ128rmkz: case VEXPANDPSZ128rr: case VEXPANDPSZ128rrk: case VEXPANDPSZ128rrkz: case VEXPANDPSZ256rm: case VEXPANDPSZ256rmk: case VEXPANDPSZ256rmkz: case VEXPANDPSZ256rr: case VEXPANDPSZ256rrk: case VEXPANDPSZ256rrkz: case VEXPANDPSZrm: case VEXPANDPSZrmk: case VEXPANDPSZrmkz: case VEXPANDPSZrr: case VEXPANDPSZrrk: case VEXPANDPSZrrkz: return true; } return false; } bool isVFNMADDSD(unsigned Opcode) { switch (Opcode) { case VFNMADDSD4mr: case VFNMADDSD4rm: case VFNMADDSD4rr: case VFNMADDSD4rr_REV: return true; } return false; } bool isCBW(unsigned Opcode) { return Opcode == CBW; } bool isVPEXPANDW(unsigned Opcode) { switch (Opcode) { case VPEXPANDWZ128rm: case VPEXPANDWZ128rmk: case VPEXPANDWZ128rmkz: case VPEXPANDWZ128rr: case VPEXPANDWZ128rrk: case VPEXPANDWZ128rrkz: case VPEXPANDWZ256rm: case VPEXPANDWZ256rmk: case VPEXPANDWZ256rmkz: case VPEXPANDWZ256rr: case VPEXPANDWZ256rrk: case VPEXPANDWZ256rrkz: case VPEXPANDWZrm: case VPEXPANDWZrmk: case VPEXPANDWZrmkz: case VPEXPANDWZrr: case VPEXPANDWZrrk: case VPEXPANDWZrrkz: return true; } return false; } bool isVPEXPANDQ(unsigned Opcode) { switch (Opcode) { case VPEXPANDQZ128rm: case VPEXPANDQZ128rmk: case VPEXPANDQZ128rmkz: case VPEXPANDQZ128rr: case VPEXPANDQZ128rrk: case VPEXPANDQZ128rrkz: case VPEXPANDQZ256rm: case VPEXPANDQZ256rmk: case VPEXPANDQZ256rmkz: case VPEXPANDQZ256rr: case VPEXPANDQZ256rrk: case VPEXPANDQZ256rrkz: case VPEXPANDQZrm: case VPEXPANDQZrmk: case VPEXPANDQZrmkz: case VPEXPANDQZrr: case VPEXPANDQZrrk: case VPEXPANDQZrrkz: return true; } return false; } bool isFXRSTOR64(unsigned Opcode) { return Opcode == FXRSTOR64; } bool isVFNMADDSS(unsigned Opcode) { switch (Opcode) { case VFNMADDSS4mr: case VFNMADDSS4rm: case VFNMADDSS4rr: case VFNMADDSS4rr_REV: return true; } return false; } bool isSIDTW(unsigned Opcode) { return Opcode == SIDT16m; } bool isCVTPD2PI(unsigned Opcode) { switch (Opcode) { case MMX_CVTPD2PIrm: case MMX_CVTPD2PIrr: return true; } return false; } bool isVCVTPS2PD(unsigned Opcode) { switch (Opcode) { case VCVTPS2PDYrm: case VCVTPS2PDYrr: case VCVTPS2PDZ128rm: case VCVTPS2PDZ128rmb: case VCVTPS2PDZ128rmbk: case VCVTPS2PDZ128rmbkz: case VCVTPS2PDZ128rmk: case VCVTPS2PDZ128rmkz: case VCVTPS2PDZ128rr: case VCVTPS2PDZ128rrk: case VCVTPS2PDZ128rrkz: case VCVTPS2PDZ256rm: case VCVTPS2PDZ256rmb: case VCVTPS2PDZ256rmbk: case VCVTPS2PDZ256rmbkz: case VCVTPS2PDZ256rmk: case VCVTPS2PDZ256rmkz: case VCVTPS2PDZ256rr: case VCVTPS2PDZ256rrk: case VCVTPS2PDZ256rrkz: case VCVTPS2PDZrm: case VCVTPS2PDZrmb: case VCVTPS2PDZrmbk: case VCVTPS2PDZrmbkz: case VCVTPS2PDZrmk: case VCVTPS2PDZrmkz: case VCVTPS2PDZrr: case VCVTPS2PDZrrb: case VCVTPS2PDZrrbk: case VCVTPS2PDZrrbkz: case VCVTPS2PDZrrk: case VCVTPS2PDZrrkz: case VCVTPS2PDrm: case VCVTPS2PDrr: return true; } return false; } bool isVFNMSUB132SD(unsigned Opcode) { switch (Opcode) { case VFNMSUB132SDZm_Int: case VFNMSUB132SDZm_Intk: case VFNMSUB132SDZm_Intkz: case VFNMSUB132SDZr_Int: case VFNMSUB132SDZr_Intk: case VFNMSUB132SDZr_Intkz: case VFNMSUB132SDZrb_Int: case VFNMSUB132SDZrb_Intk: case VFNMSUB132SDZrb_Intkz: case VFNMSUB132SDm_Int: case VFNMSUB132SDr_Int: return true; } return false; } bool isVCVTPS2PH(unsigned Opcode) { switch (Opcode) { case VCVTPS2PHYmr: case VCVTPS2PHYrr: case VCVTPS2PHZ128mr: case VCVTPS2PHZ128mrk: case VCVTPS2PHZ128rr: case VCVTPS2PHZ128rrk: case VCVTPS2PHZ128rrkz: case VCVTPS2PHZ256mr: case VCVTPS2PHZ256mrk: case VCVTPS2PHZ256rr: case VCVTPS2PHZ256rrk: case VCVTPS2PHZ256rrkz: case VCVTPS2PHZmr: case VCVTPS2PHZmrk: case VCVTPS2PHZrr: case VCVTPS2PHZrrb: case VCVTPS2PHZrrbk: case VCVTPS2PHZrrbkz: case VCVTPS2PHZrrk: case VCVTPS2PHZrrkz: case VCVTPS2PHmr: case VCVTPS2PHrr: return true; } return false; } bool isFIDIV(unsigned Opcode) { switch (Opcode) { case DIV_FI16m: case DIV_FI32m: return true; } return false; } bool isVFNMSUB132SH(unsigned Opcode) { switch (Opcode) { case VFNMSUB132SHZm_Int: case VFNMSUB132SHZm_Intk: case VFNMSUB132SHZm_Intkz: case VFNMSUB132SHZr_Int: case VFNMSUB132SHZr_Intk: case VFNMSUB132SHZr_Intkz: case VFNMSUB132SHZrb_Int: case VFNMSUB132SHZrb_Intk: case VFNMSUB132SHZrb_Intkz: return true; } return false; } bool isCVTPD2PS(unsigned Opcode) { switch (Opcode) { case CVTPD2PSrm: case CVTPD2PSrr: return true; } return false; } bool isINVEPT(unsigned Opcode) { switch (Opcode) { case INVEPT32: case INVEPT64: return true; } return false; } bool isVPERMI2PD(unsigned Opcode) { switch (Opcode) { case VPERMI2PD128rm: case VPERMI2PD128rmb: case VPERMI2PD128rmbk: case VPERMI2PD128rmbkz: case VPERMI2PD128rmk: case VPERMI2PD128rmkz: case VPERMI2PD128rr: case VPERMI2PD128rrk: case VPERMI2PD128rrkz: case VPERMI2PD256rm: case VPERMI2PD256rmb: case VPERMI2PD256rmbk: case VPERMI2PD256rmbkz: case VPERMI2PD256rmk: case VPERMI2PD256rmkz: case VPERMI2PD256rr: case VPERMI2PD256rrk: case VPERMI2PD256rrkz: case VPERMI2PDrm: case VPERMI2PDrmb: case VPERMI2PDrmbk: case VPERMI2PDrmbkz: case VPERMI2PDrmk: case VPERMI2PDrmkz: case VPERMI2PDrr: case VPERMI2PDrrk: case VPERMI2PDrrkz: return true; } return false; } bool isVFMSUB213PD(unsigned Opcode) { switch (Opcode) { case VFMSUB213PDYm: case VFMSUB213PDYr: case VFMSUB213PDZ128m: case VFMSUB213PDZ128mb: case VFMSUB213PDZ128mbk: case VFMSUB213PDZ128mbkz: case VFMSUB213PDZ128mk: case VFMSUB213PDZ128mkz: case VFMSUB213PDZ128r: case VFMSUB213PDZ128rk: case VFMSUB213PDZ128rkz: case VFMSUB213PDZ256m: case VFMSUB213PDZ256mb: case VFMSUB213PDZ256mbk: case VFMSUB213PDZ256mbkz: case VFMSUB213PDZ256mk: case VFMSUB213PDZ256mkz: case VFMSUB213PDZ256r: case VFMSUB213PDZ256rk: case VFMSUB213PDZ256rkz: case VFMSUB213PDZm: case VFMSUB213PDZmb: case VFMSUB213PDZmbk: case VFMSUB213PDZmbkz: case VFMSUB213PDZmk: case VFMSUB213PDZmkz: case VFMSUB213PDZr: case VFMSUB213PDZrb: case VFMSUB213PDZrbk: case VFMSUB213PDZrbkz: case VFMSUB213PDZrk: case VFMSUB213PDZrkz: case VFMSUB213PDm: case VFMSUB213PDr: return true; } return false; } bool isVFNMSUB132SS(unsigned Opcode) { switch (Opcode) { case VFNMSUB132SSZm_Int: case VFNMSUB132SSZm_Intk: case VFNMSUB132SSZm_Intkz: case VFNMSUB132SSZr_Int: case VFNMSUB132SSZr_Intk: case VFNMSUB132SSZr_Intkz: case VFNMSUB132SSZrb_Int: case VFNMSUB132SSZrb_Intk: case VFNMSUB132SSZrb_Intkz: case VFNMSUB132SSm_Int: case VFNMSUB132SSr_Int: return true; } return false; } bool isINVVPID(unsigned Opcode) { switch (Opcode) { case INVVPID32: case INVVPID64: return true; } return false; } bool isVFMSUB213PH(unsigned Opcode) { switch (Opcode) { case VFMSUB213PHZ128m: case VFMSUB213PHZ128mb: case VFMSUB213PHZ128mbk: case VFMSUB213PHZ128mbkz: case VFMSUB213PHZ128mk: case VFMSUB213PHZ128mkz: case VFMSUB213PHZ128r: case VFMSUB213PHZ128rk: case VFMSUB213PHZ128rkz: case VFMSUB213PHZ256m: case VFMSUB213PHZ256mb: case VFMSUB213PHZ256mbk: case VFMSUB213PHZ256mbkz: case VFMSUB213PHZ256mk: case VFMSUB213PHZ256mkz: case VFMSUB213PHZ256r: case VFMSUB213PHZ256rk: case VFMSUB213PHZ256rkz: case VFMSUB213PHZm: case VFMSUB213PHZmb: case VFMSUB213PHZmbk: case VFMSUB213PHZmbkz: case VFMSUB213PHZmk: case VFMSUB213PHZmkz: case VFMSUB213PHZr: case VFMSUB213PHZrb: case VFMSUB213PHZrbk: case VFMSUB213PHZrbkz: case VFMSUB213PHZrk: case VFMSUB213PHZrkz: return true; } return false; } bool isVPCOMB(unsigned Opcode) { switch (Opcode) { case VPCOMBmi: case VPCOMBri: return true; } return false; } bool isVPERMI2PS(unsigned Opcode) { switch (Opcode) { case VPERMI2PS128rm: case VPERMI2PS128rmb: case VPERMI2PS128rmbk: case VPERMI2PS128rmbkz: case VPERMI2PS128rmk: case VPERMI2PS128rmkz: case VPERMI2PS128rr: case VPERMI2PS128rrk: case VPERMI2PS128rrkz: case VPERMI2PS256rm: case VPERMI2PS256rmb: case VPERMI2PS256rmbk: case VPERMI2PS256rmbkz: case VPERMI2PS256rmk: case VPERMI2PS256rmkz: case VPERMI2PS256rr: case VPERMI2PS256rrk: case VPERMI2PS256rrkz: case VPERMI2PSrm: case VPERMI2PSrmb: case VPERMI2PSrmbk: case VPERMI2PSrmbkz: case VPERMI2PSrmk: case VPERMI2PSrmkz: case VPERMI2PSrr: case VPERMI2PSrrk: case VPERMI2PSrrkz: return true; } return false; } bool isVPCOMD(unsigned Opcode) { switch (Opcode) { case VPCOMDmi: case VPCOMDri: return true; } return false; } bool isSMSW(unsigned Opcode) { switch (Opcode) { case SMSW16m: case SMSW16r: case SMSW32r: case SMSW64r: return true; } return false; } bool isRCPSS(unsigned Opcode) { switch (Opcode) { case RCPSSm_Int: case RCPSSr_Int: return true; } return false; } bool isRET(unsigned Opcode) { switch (Opcode) { case RET16: case RET32: case RET64: case RETI16: case RETI32: case RETI64: return true; } return false; } bool isVFMSUB213PS(unsigned Opcode) { switch (Opcode) { case VFMSUB213PSYm: case VFMSUB213PSYr: case VFMSUB213PSZ128m: case VFMSUB213PSZ128mb: case VFMSUB213PSZ128mbk: case VFMSUB213PSZ128mbkz: case VFMSUB213PSZ128mk: case VFMSUB213PSZ128mkz: case VFMSUB213PSZ128r: case VFMSUB213PSZ128rk: case VFMSUB213PSZ128rkz: case VFMSUB213PSZ256m: case VFMSUB213PSZ256mb: case VFMSUB213PSZ256mbk: case VFMSUB213PSZ256mbkz: case VFMSUB213PSZ256mk: case VFMSUB213PSZ256mkz: case VFMSUB213PSZ256r: case VFMSUB213PSZ256rk: case VFMSUB213PSZ256rkz: case VFMSUB213PSZm: case VFMSUB213PSZmb: case VFMSUB213PSZmbk: case VFMSUB213PSZmbkz: case VFMSUB213PSZmk: case VFMSUB213PSZmkz: case VFMSUB213PSZr: case VFMSUB213PSZrb: case VFMSUB213PSZrbk: case VFMSUB213PSZrbkz: case VFMSUB213PSZrk: case VFMSUB213PSZrkz: case VFMSUB213PSm: case VFMSUB213PSr: return true; } return false; } bool isVRSQRT14SD(unsigned Opcode) { switch (Opcode) { case VRSQRT14SDZrm: case VRSQRT14SDZrmk: case VRSQRT14SDZrmkz: case VRSQRT14SDZrr: case VRSQRT14SDZrrk: case VRSQRT14SDZrrkz: return true; } return false; } bool isCVTTPS2PI(unsigned Opcode) { switch (Opcode) { case MMX_CVTTPS2PIrm: case MMX_CVTTPS2PIrr: return true; } return false; } bool isVMCLEAR(unsigned Opcode) { return Opcode == VMCLEARm; } bool isVPCOMQ(unsigned Opcode) { switch (Opcode) { case VPCOMQmi: case VPCOMQri: return true; } return false; } bool isCDQ(unsigned Opcode) { return Opcode == CDQ; } bool isFLDL2E(unsigned Opcode) { return Opcode == FLDL2E; } bool isVCVTPS2QQ(unsigned Opcode) { switch (Opcode) { case VCVTPS2QQZ128rm: case VCVTPS2QQZ128rmb: case VCVTPS2QQZ128rmbk: case VCVTPS2QQZ128rmbkz: case VCVTPS2QQZ128rmk: case VCVTPS2QQZ128rmkz: case VCVTPS2QQZ128rr: case VCVTPS2QQZ128rrk: case VCVTPS2QQZ128rrkz: case VCVTPS2QQZ256rm: case VCVTPS2QQZ256rmb: case VCVTPS2QQZ256rmbk: case VCVTPS2QQZ256rmbkz: case VCVTPS2QQZ256rmk: case VCVTPS2QQZ256rmkz: case VCVTPS2QQZ256rr: case VCVTPS2QQZ256rrk: case VCVTPS2QQZ256rrkz: case VCVTPS2QQZrm: case VCVTPS2QQZrmb: case VCVTPS2QQZrmbk: case VCVTPS2QQZrmbkz: case VCVTPS2QQZrmk: case VCVTPS2QQZrmkz: case VCVTPS2QQZrr: case VCVTPS2QQZrrb: case VCVTPS2QQZrrbk: case VCVTPS2QQZrrbkz: case VCVTPS2QQZrrk: case VCVTPS2QQZrrkz: return true; } return false; } bool isVPCOMW(unsigned Opcode) { switch (Opcode) { case VPCOMWmi: case VPCOMWri: return true; } return false; } bool isVRSQRT14SS(unsigned Opcode) { switch (Opcode) { case VRSQRT14SSZrm: case VRSQRT14SSZrmk: case VRSQRT14SSZrmkz: case VRSQRT14SSZrr: case VRSQRT14SSZrrk: case VRSQRT14SSZrrkz: return true; } return false; } bool isVP4DPWSSDS(unsigned Opcode) { switch (Opcode) { case VP4DPWSSDSrm: case VP4DPWSSDSrmk: case VP4DPWSSDSrmkz: return true; } return false; } bool isVPSLLDQ(unsigned Opcode) { switch (Opcode) { case VPSLLDQYri: case VPSLLDQZ128mi: case VPSLLDQZ128ri: case VPSLLDQZ256mi: case VPSLLDQZ256ri: case VPSLLDQZmi: case VPSLLDQZri: case VPSLLDQri: return true; } return false; } bool isVCVTSD2SH(unsigned Opcode) { switch (Opcode) { case VCVTSD2SHZrm_Int: case VCVTSD2SHZrm_Intk: case VCVTSD2SHZrm_Intkz: case VCVTSD2SHZrr_Int: case VCVTSD2SHZrr_Intk: case VCVTSD2SHZrr_Intkz: case VCVTSD2SHZrrb_Int: case VCVTSD2SHZrrb_Intk: case VCVTSD2SHZrrb_Intkz: return true; } return false; } bool isFLDL2T(unsigned Opcode) { return Opcode == FLDL2T; } bool isVEXP2PD(unsigned Opcode) { switch (Opcode) { case VEXP2PDZm: case VEXP2PDZmb: case VEXP2PDZmbk: case VEXP2PDZmbkz: case VEXP2PDZmk: case VEXP2PDZmkz: case VEXP2PDZr: case VEXP2PDZrb: case VEXP2PDZrbk: case VEXP2PDZrbkz: case VEXP2PDZrk: case VEXP2PDZrkz: return true; } return false; } bool isVFNMADD132PD(unsigned Opcode) { switch (Opcode) { case VFNMADD132PDYm: case VFNMADD132PDYr: case VFNMADD132PDZ128m: case VFNMADD132PDZ128mb: case VFNMADD132PDZ128mbk: case VFNMADD132PDZ128mbkz: case VFNMADD132PDZ128mk: case VFNMADD132PDZ128mkz: case VFNMADD132PDZ128r: case VFNMADD132PDZ128rk: case VFNMADD132PDZ128rkz: case VFNMADD132PDZ256m: case VFNMADD132PDZ256mb: case VFNMADD132PDZ256mbk: case VFNMADD132PDZ256mbkz: case VFNMADD132PDZ256mk: case VFNMADD132PDZ256mkz: case VFNMADD132PDZ256r: case VFNMADD132PDZ256rk: case VFNMADD132PDZ256rkz: case VFNMADD132PDZm: case VFNMADD132PDZmb: case VFNMADD132PDZmbk: case VFNMADD132PDZmbkz: case VFNMADD132PDZmk: case VFNMADD132PDZmkz: case VFNMADD132PDZr: case VFNMADD132PDZrb: case VFNMADD132PDZrbk: case VFNMADD132PDZrbkz: case VFNMADD132PDZrk: case VFNMADD132PDZrkz: case VFNMADD132PDm: case VFNMADD132PDr: return true; } return false; } bool isVCVTSD2SI(unsigned Opcode) { switch (Opcode) { case VCVTSD2SI64Zrm_Int: case VCVTSD2SI64Zrr_Int: case VCVTSD2SI64Zrrb_Int: case VCVTSD2SI64rm_Int: case VCVTSD2SI64rr_Int: case VCVTSD2SIZrm_Int: case VCVTSD2SIZrr_Int: case VCVTSD2SIZrrb_Int: case VCVTSD2SIrm_Int: case VCVTSD2SIrr_Int: return true; } return false; } bool isVPOPCNTB(unsigned Opcode) { switch (Opcode) { case VPOPCNTBZ128rm: case VPOPCNTBZ128rmk: case VPOPCNTBZ128rmkz: case VPOPCNTBZ128rr: case VPOPCNTBZ128rrk: case VPOPCNTBZ128rrkz: case VPOPCNTBZ256rm: case VPOPCNTBZ256rmk: case VPOPCNTBZ256rmkz: case VPOPCNTBZ256rr: case VPOPCNTBZ256rrk: case VPOPCNTBZ256rrkz: case VPOPCNTBZrm: case VPOPCNTBZrmk: case VPOPCNTBZrmkz: case VPOPCNTBZrr: case VPOPCNTBZrrk: case VPOPCNTBZrrkz: return true; } return false; } bool isVFNMADD132PH(unsigned Opcode) { switch (Opcode) { case VFNMADD132PHZ128m: case VFNMADD132PHZ128mb: case VFNMADD132PHZ128mbk: case VFNMADD132PHZ128mbkz: case VFNMADD132PHZ128mk: case VFNMADD132PHZ128mkz: case VFNMADD132PHZ128r: case VFNMADD132PHZ128rk: case VFNMADD132PHZ128rkz: case VFNMADD132PHZ256m: case VFNMADD132PHZ256mb: case VFNMADD132PHZ256mbk: case VFNMADD132PHZ256mbkz: case VFNMADD132PHZ256mk: case VFNMADD132PHZ256mkz: case VFNMADD132PHZ256r: case VFNMADD132PHZ256rk: case VFNMADD132PHZ256rkz: case VFNMADD132PHZm: case VFNMADD132PHZmb: case VFNMADD132PHZmbk: case VFNMADD132PHZmbkz: case VFNMADD132PHZmk: case VFNMADD132PHZmkz: case VFNMADD132PHZr: case VFNMADD132PHZrb: case VFNMADD132PHZrbk: case VFNMADD132PHZrbkz: case VFNMADD132PHZrk: case VFNMADD132PHZrkz: return true; } return false; } bool isVINSERTI128(unsigned Opcode) { switch (Opcode) { case VINSERTI128rm: case VINSERTI128rr: return true; } return false; } bool isVPOPCNTD(unsigned Opcode) { switch (Opcode) { case VPOPCNTDZ128rm: case VPOPCNTDZ128rmb: case VPOPCNTDZ128rmbk: case VPOPCNTDZ128rmbkz: case VPOPCNTDZ128rmk: case VPOPCNTDZ128rmkz: case VPOPCNTDZ128rr: case VPOPCNTDZ128rrk: case VPOPCNTDZ128rrkz: case VPOPCNTDZ256rm: case VPOPCNTDZ256rmb: case VPOPCNTDZ256rmbk: case VPOPCNTDZ256rmbkz: case VPOPCNTDZ256rmk: case VPOPCNTDZ256rmkz: case VPOPCNTDZ256rr: case VPOPCNTDZ256rrk: case VPOPCNTDZ256rrkz: case VPOPCNTDZrm: case VPOPCNTDZrmb: case VPOPCNTDZrmbk: case VPOPCNTDZrmbkz: case VPOPCNTDZrmk: case VPOPCNTDZrmkz: case VPOPCNTDZrr: case VPOPCNTDZrrk: case VPOPCNTDZrrkz: return true; } return false; } bool isSETCC(unsigned Opcode) { switch (Opcode) { case SETCCm: case SETCCr: return true; } return false; } bool isVCVTSD2SS(unsigned Opcode) { switch (Opcode) { case VCVTSD2SSZrm_Int: case VCVTSD2SSZrm_Intk: case VCVTSD2SSZrm_Intkz: case VCVTSD2SSZrr_Int: case VCVTSD2SSZrr_Intk: case VCVTSD2SSZrr_Intkz: case VCVTSD2SSZrrb_Int: case VCVTSD2SSZrrb_Intk: case VCVTSD2SSZrrb_Intkz: case VCVTSD2SSrm_Int: case VCVTSD2SSrr_Int: return true; } return false; } bool isVEXP2PS(unsigned Opcode) { switch (Opcode) { case VEXP2PSZm: case VEXP2PSZmb: case VEXP2PSZmbk: case VEXP2PSZmbkz: case VEXP2PSZmk: case VEXP2PSZmkz: case VEXP2PSZr: case VEXP2PSZrb: case VEXP2PSZrbk: case VEXP2PSZrbkz: case VEXP2PSZrk: case VEXP2PSZrkz: return true; } return false; } bool isVFNMADD132PS(unsigned Opcode) { switch (Opcode) { case VFNMADD132PSYm: case VFNMADD132PSYr: case VFNMADD132PSZ128m: case VFNMADD132PSZ128mb: case VFNMADD132PSZ128mbk: case VFNMADD132PSZ128mbkz: case VFNMADD132PSZ128mk: case VFNMADD132PSZ128mkz: case VFNMADD132PSZ128r: case VFNMADD132PSZ128rk: case VFNMADD132PSZ128rkz: case VFNMADD132PSZ256m: case VFNMADD132PSZ256mb: case VFNMADD132PSZ256mbk: case VFNMADD132PSZ256mbkz: case VFNMADD132PSZ256mk: case VFNMADD132PSZ256mkz: case VFNMADD132PSZ256r: case VFNMADD132PSZ256rk: case VFNMADD132PSZ256rkz: case VFNMADD132PSZm: case VFNMADD132PSZmb: case VFNMADD132PSZmbk: case VFNMADD132PSZmbkz: case VFNMADD132PSZmk: case VFNMADD132PSZmkz: case VFNMADD132PSZr: case VFNMADD132PSZrb: case VFNMADD132PSZrbk: case VFNMADD132PSZrbkz: case VFNMADD132PSZrk: case VFNMADD132PSZrkz: case VFNMADD132PSm: case VFNMADD132PSr: return true; } return false; } bool isMOVDIRI(unsigned Opcode) { switch (Opcode) { case MOVDIRI32: case MOVDIRI64: return true; } return false; } bool isVPOPCNTQ(unsigned Opcode) { switch (Opcode) { case VPOPCNTQZ128rm: case VPOPCNTQZ128rmb: case VPOPCNTQZ128rmbk: case VPOPCNTQZ128rmbkz: case VPOPCNTQZ128rmk: case VPOPCNTQZ128rmkz: case VPOPCNTQZ128rr: case VPOPCNTQZ128rrk: case VPOPCNTQZ128rrkz: case VPOPCNTQZ256rm: case VPOPCNTQZ256rmb: case VPOPCNTQZ256rmbk: case VPOPCNTQZ256rmbkz: case VPOPCNTQZ256rmk: case VPOPCNTQZ256rmkz: case VPOPCNTQZ256rr: case VPOPCNTQZ256rrk: case VPOPCNTQZ256rrkz: case VPOPCNTQZrm: case VPOPCNTQZrmb: case VPOPCNTQZrmbk: case VPOPCNTQZrmbkz: case VPOPCNTQZrmk: case VPOPCNTQZrmkz: case VPOPCNTQZrr: case VPOPCNTQZrrk: case VPOPCNTQZrrkz: return true; } return false; } bool isVFMSUB231PD(unsigned Opcode) { switch (Opcode) { case VFMSUB231PDYm: case VFMSUB231PDYr: case VFMSUB231PDZ128m: case VFMSUB231PDZ128mb: case VFMSUB231PDZ128mbk: case VFMSUB231PDZ128mbkz: case VFMSUB231PDZ128mk: case VFMSUB231PDZ128mkz: case VFMSUB231PDZ128r: case VFMSUB231PDZ128rk: case VFMSUB231PDZ128rkz: case VFMSUB231PDZ256m: case VFMSUB231PDZ256mb: case VFMSUB231PDZ256mbk: case VFMSUB231PDZ256mbkz: case VFMSUB231PDZ256mk: case VFMSUB231PDZ256mkz: case VFMSUB231PDZ256r: case VFMSUB231PDZ256rk: case VFMSUB231PDZ256rkz: case VFMSUB231PDZm: case VFMSUB231PDZmb: case VFMSUB231PDZmbk: case VFMSUB231PDZmbkz: case VFMSUB231PDZmk: case VFMSUB231PDZmkz: case VFMSUB231PDZr: case VFMSUB231PDZrb: case VFMSUB231PDZrbk: case VFMSUB231PDZrbkz: case VFMSUB231PDZrk: case VFMSUB231PDZrkz: case VFMSUB231PDm: case VFMSUB231PDr: return true; } return false; } bool isVFMSUB231PH(unsigned Opcode) { switch (Opcode) { case VFMSUB231PHZ128m: case VFMSUB231PHZ128mb: case VFMSUB231PHZ128mbk: case VFMSUB231PHZ128mbkz: case VFMSUB231PHZ128mk: case VFMSUB231PHZ128mkz: case VFMSUB231PHZ128r: case VFMSUB231PHZ128rk: case VFMSUB231PHZ128rkz: case VFMSUB231PHZ256m: case VFMSUB231PHZ256mb: case VFMSUB231PHZ256mbk: case VFMSUB231PHZ256mbkz: case VFMSUB231PHZ256mk: case VFMSUB231PHZ256mkz: case VFMSUB231PHZ256r: case VFMSUB231PHZ256rk: case VFMSUB231PHZ256rkz: case VFMSUB231PHZm: case VFMSUB231PHZmb: case VFMSUB231PHZmbk: case VFMSUB231PHZmbkz: case VFMSUB231PHZmk: case VFMSUB231PHZmkz: case VFMSUB231PHZr: case VFMSUB231PHZrb: case VFMSUB231PHZrbk: case VFMSUB231PHZrbkz: case VFMSUB231PHZrk: case VFMSUB231PHZrkz: return true; } return false; } bool isFCMOVBE(unsigned Opcode) { return Opcode == CMOVBE_F; } bool isVPOPCNTW(unsigned Opcode) { switch (Opcode) { case VPOPCNTWZ128rm: case VPOPCNTWZ128rmk: case VPOPCNTWZ128rmkz: case VPOPCNTWZ128rr: case VPOPCNTWZ128rrk: case VPOPCNTWZ128rrkz: case VPOPCNTWZ256rm: case VPOPCNTWZ256rmk: case VPOPCNTWZ256rmkz: case VPOPCNTWZ256rr: case VPOPCNTWZ256rrk: case VPOPCNTWZ256rrkz: case VPOPCNTWZrm: case VPOPCNTWZrmk: case VPOPCNTWZrmkz: case VPOPCNTWZrr: case VPOPCNTWZrrk: case VPOPCNTWZrrkz: return true; } return false; } bool isCVTTSD2SI(unsigned Opcode) { switch (Opcode) { case CVTTSD2SI64rm_Int: case CVTTSD2SI64rr_Int: case CVTTSD2SIrm_Int: case CVTTSD2SIrr_Int: return true; } return false; } bool isVFMSUB231PS(unsigned Opcode) { switch (Opcode) { case VFMSUB231PSYm: case VFMSUB231PSYr: case VFMSUB231PSZ128m: case VFMSUB231PSZ128mb: case VFMSUB231PSZ128mbk: case VFMSUB231PSZ128mbkz: case VFMSUB231PSZ128mk: case VFMSUB231PSZ128mkz: case VFMSUB231PSZ128r: case VFMSUB231PSZ128rk: case VFMSUB231PSZ128rkz: case VFMSUB231PSZ256m: case VFMSUB231PSZ256mb: case VFMSUB231PSZ256mbk: case VFMSUB231PSZ256mbkz: case VFMSUB231PSZ256mk: case VFMSUB231PSZ256mkz: case VFMSUB231PSZ256r: case VFMSUB231PSZ256rk: case VFMSUB231PSZ256rkz: case VFMSUB231PSZm: case VFMSUB231PSZmb: case VFMSUB231PSZmbk: case VFMSUB231PSZmbkz: case VFMSUB231PSZmk: case VFMSUB231PSZmkz: case VFMSUB231PSZr: case VFMSUB231PSZrb: case VFMSUB231PSZrbk: case VFMSUB231PSZrbkz: case VFMSUB231PSZrk: case VFMSUB231PSZrkz: case VFMSUB231PSm: case VFMSUB231PSr: return true; } return false; } bool isNOP(unsigned Opcode) { switch (Opcode) { case NOOP: case NOOPL: case NOOPLr: case NOOPQ: case NOOPQr: case NOOPW: case NOOPWr: return true; } return false; } bool isNOT(unsigned Opcode) { switch (Opcode) { case NOT16m: case NOT16r: case NOT32m: case NOT32r: case NOT64m: case NOT64r: case NOT8m: case NOT8r: return true; } return false; } bool isTPAUSE(unsigned Opcode) { return Opcode == TPAUSE; } bool isVCVTNEPS2BF16(unsigned Opcode) { switch (Opcode) { case VCVTNEPS2BF16Yrm: case VCVTNEPS2BF16Yrr: case VCVTNEPS2BF16Z128rm: case VCVTNEPS2BF16Z128rmb: case VCVTNEPS2BF16Z128rmbk: case VCVTNEPS2BF16Z128rmbkz: case VCVTNEPS2BF16Z128rmk: case VCVTNEPS2BF16Z128rmkz: case VCVTNEPS2BF16Z128rr: case VCVTNEPS2BF16Z128rrk: case VCVTNEPS2BF16Z128rrkz: case VCVTNEPS2BF16Z256rm: case VCVTNEPS2BF16Z256rmb: case VCVTNEPS2BF16Z256rmbk: case VCVTNEPS2BF16Z256rmbkz: case VCVTNEPS2BF16Z256rmk: case VCVTNEPS2BF16Z256rmkz: case VCVTNEPS2BF16Z256rr: case VCVTNEPS2BF16Z256rrk: case VCVTNEPS2BF16Z256rrkz: case VCVTNEPS2BF16Zrm: case VCVTNEPS2BF16Zrmb: case VCVTNEPS2BF16Zrmbk: case VCVTNEPS2BF16Zrmbkz: case VCVTNEPS2BF16Zrmk: case VCVTNEPS2BF16Zrmkz: case VCVTNEPS2BF16Zrr: case VCVTNEPS2BF16Zrrk: case VCVTNEPS2BF16Zrrkz: case VCVTNEPS2BF16rm: case VCVTNEPS2BF16rr: return true; } return false; } bool isVFMSUB213SD(unsigned Opcode) { switch (Opcode) { case VFMSUB213SDZm_Int: case VFMSUB213SDZm_Intk: case VFMSUB213SDZm_Intkz: case VFMSUB213SDZr_Int: case VFMSUB213SDZr_Intk: case VFMSUB213SDZr_Intkz: case VFMSUB213SDZrb_Int: case VFMSUB213SDZrb_Intk: case VFMSUB213SDZrb_Intkz: case VFMSUB213SDm_Int: case VFMSUB213SDr_Int: return true; } return false; } bool isVFMSUB213SH(unsigned Opcode) { switch (Opcode) { case VFMSUB213SHZm_Int: case VFMSUB213SHZm_Intk: case VFMSUB213SHZm_Intkz: case VFMSUB213SHZr_Int: case VFMSUB213SHZr_Intk: case VFMSUB213SHZr_Intkz: case VFMSUB213SHZrb_Int: case VFMSUB213SHZrb_Intk: case VFMSUB213SHZrb_Intkz: return true; } return false; } bool isVFMADDCPH(unsigned Opcode) { switch (Opcode) { case VFMADDCPHZ128m: case VFMADDCPHZ128mb: case VFMADDCPHZ128mbk: case VFMADDCPHZ128mbkz: case VFMADDCPHZ128mk: case VFMADDCPHZ128mkz: case VFMADDCPHZ128r: case VFMADDCPHZ128rk: case VFMADDCPHZ128rkz: case VFMADDCPHZ256m: case VFMADDCPHZ256mb: case VFMADDCPHZ256mbk: case VFMADDCPHZ256mbkz: case VFMADDCPHZ256mk: case VFMADDCPHZ256mkz: case VFMADDCPHZ256r: case VFMADDCPHZ256rk: case VFMADDCPHZ256rkz: case VFMADDCPHZm: case VFMADDCPHZmb: case VFMADDCPHZmbk: case VFMADDCPHZmbkz: case VFMADDCPHZmk: case VFMADDCPHZmkz: case VFMADDCPHZr: case VFMADDCPHZrb: case VFMADDCPHZrbk: case VFMADDCPHZrbkz: case VFMADDCPHZrk: case VFMADDCPHZrkz: return true; } return false; } bool isVEXTRACTI64X2(unsigned Opcode) { switch (Opcode) { case VEXTRACTI64x2Z256mr: case VEXTRACTI64x2Z256mrk: case VEXTRACTI64x2Z256rr: case VEXTRACTI64x2Z256rrk: case VEXTRACTI64x2Z256rrkz: case VEXTRACTI64x2Zmr: case VEXTRACTI64x2Zmrk: case VEXTRACTI64x2Zrr: case VEXTRACTI64x2Zrrk: case VEXTRACTI64x2Zrrkz: return true; } return false; } bool isVFMSUB213SS(unsigned Opcode) { switch (Opcode) { case VFMSUB213SSZm_Int: case VFMSUB213SSZm_Intk: case VFMSUB213SSZm_Intkz: case VFMSUB213SSZr_Int: case VFMSUB213SSZr_Intk: case VFMSUB213SSZr_Intkz: case VFMSUB213SSZrb_Int: case VFMSUB213SSZrb_Intk: case VFMSUB213SSZrb_Intkz: case VFMSUB213SSm_Int: case VFMSUB213SSr_Int: return true; } return false; } bool isVEXTRACTI64X4(unsigned Opcode) { switch (Opcode) { case VEXTRACTI64x4Zmr: case VEXTRACTI64x4Zmrk: case VEXTRACTI64x4Zrr: case VEXTRACTI64x4Zrrk: case VEXTRACTI64x4Zrrkz: return true; } return false; } bool isXSAVEC64(unsigned Opcode) { return Opcode == XSAVEC64; } bool isBLCFILL(unsigned Opcode) { switch (Opcode) { case BLCFILL32rm: case BLCFILL32rr: case BLCFILL64rm: case BLCFILL64rr: return true; } return false; } bool isXBEGIN(unsigned Opcode) { switch (Opcode) { case XBEGIN_2: case XBEGIN_4: return true; } return false; } bool isXCRYPTOFB(unsigned Opcode) { return Opcode == XCRYPTOFB; } bool isFUCOMI(unsigned Opcode) { return Opcode == UCOM_FIr; } bool isVMOVHPD(unsigned Opcode) { switch (Opcode) { case VMOVHPDZ128mr: case VMOVHPDZ128rm: case VMOVHPDmr: case VMOVHPDrm: return true; } return false; } bool isMASKMOVDQU(unsigned Opcode) { switch (Opcode) { case MASKMOVDQU: case MASKMOVDQU64: return true; } return false; } bool isFUCOMP(unsigned Opcode) { return Opcode == UCOM_FPr; } bool isVFNMADD132SD(unsigned Opcode) { switch (Opcode) { case VFNMADD132SDZm_Int: case VFNMADD132SDZm_Intk: case VFNMADD132SDZm_Intkz: case VFNMADD132SDZr_Int: case VFNMADD132SDZr_Intk: case VFNMADD132SDZr_Intkz: case VFNMADD132SDZrb_Int: case VFNMADD132SDZrb_Intk: case VFNMADD132SDZrb_Intkz: case VFNMADD132SDm_Int: case VFNMADD132SDr_Int: return true; } return false; } bool isMFENCE(unsigned Opcode) { return Opcode == MFENCE; } bool isVFNMADD132SH(unsigned Opcode) { switch (Opcode) { case VFNMADD132SHZm_Int: case VFNMADD132SHZm_Intk: case VFNMADD132SHZm_Intkz: case VFNMADD132SHZr_Int: case VFNMADD132SHZr_Intk: case VFNMADD132SHZr_Intkz: case VFNMADD132SHZrb_Int: case VFNMADD132SHZrb_Intk: case VFNMADD132SHZrb_Intkz: return true; } return false; } bool isVMOVHPS(unsigned Opcode) { switch (Opcode) { case VMOVHPSZ128mr: case VMOVHPSZ128rm: case VMOVHPSmr: case VMOVHPSrm: return true; } return false; } bool isVPBROADCASTMW2D(unsigned Opcode) { switch (Opcode) { case VPBROADCASTMW2DZ128rr: case VPBROADCASTMW2DZ256rr: case VPBROADCASTMW2DZrr: return true; } return false; } bool isVFMADD213PD(unsigned Opcode) { switch (Opcode) { case VFMADD213PDYm: case VFMADD213PDYr: case VFMADD213PDZ128m: case VFMADD213PDZ128mb: case VFMADD213PDZ128mbk: case VFMADD213PDZ128mbkz: case VFMADD213PDZ128mk: case VFMADD213PDZ128mkz: case VFMADD213PDZ128r: case VFMADD213PDZ128rk: case VFMADD213PDZ128rkz: case VFMADD213PDZ256m: case VFMADD213PDZ256mb: case VFMADD213PDZ256mbk: case VFMADD213PDZ256mbkz: case VFMADD213PDZ256mk: case VFMADD213PDZ256mkz: case VFMADD213PDZ256r: case VFMADD213PDZ256rk: case VFMADD213PDZ256rkz: case VFMADD213PDZm: case VFMADD213PDZmb: case VFMADD213PDZmbk: case VFMADD213PDZmbkz: case VFMADD213PDZmk: case VFMADD213PDZmkz: case VFMADD213PDZr: case VFMADD213PDZrb: case VFMADD213PDZrbk: case VFMADD213PDZrbkz: case VFMADD213PDZrk: case VFMADD213PDZrkz: case VFMADD213PDm: case VFMADD213PDr: return true; } return false; } bool isVFNMADD132SS(unsigned Opcode) { switch (Opcode) { case VFNMADD132SSZm_Int: case VFNMADD132SSZm_Intk: case VFNMADD132SSZm_Intkz: case VFNMADD132SSZr_Int: case VFNMADD132SSZr_Intk: case VFNMADD132SSZr_Intkz: case VFNMADD132SSZrb_Int: case VFNMADD132SSZrb_Intk: case VFNMADD132SSZrb_Intkz: case VFNMADD132SSm_Int: case VFNMADD132SSr_Int: return true; } return false; } bool isVFMADD213PH(unsigned Opcode) { switch (Opcode) { case VFMADD213PHZ128m: case VFMADD213PHZ128mb: case VFMADD213PHZ128mbk: case VFMADD213PHZ128mbkz: case VFMADD213PHZ128mk: case VFMADD213PHZ128mkz: case VFMADD213PHZ128r: case VFMADD213PHZ128rk: case VFMADD213PHZ128rkz: case VFMADD213PHZ256m: case VFMADD213PHZ256mb: case VFMADD213PHZ256mbk: case VFMADD213PHZ256mbkz: case VFMADD213PHZ256mk: case VFMADD213PHZ256mkz: case VFMADD213PHZ256r: case VFMADD213PHZ256rk: case VFMADD213PHZ256rkz: case VFMADD213PHZm: case VFMADD213PHZmb: case VFMADD213PHZmbk: case VFMADD213PHZmbkz: case VFMADD213PHZmk: case VFMADD213PHZmkz: case VFMADD213PHZr: case VFMADD213PHZrb: case VFMADD213PHZrbk: case VFMADD213PHZrbkz: case VFMADD213PHZrk: case VFMADD213PHZrkz: return true; } return false; } bool isVFMSUB231SD(unsigned Opcode) { switch (Opcode) { case VFMSUB231SDZm_Int: case VFMSUB231SDZm_Intk: case VFMSUB231SDZm_Intkz: case VFMSUB231SDZr_Int: case VFMSUB231SDZr_Intk: case VFMSUB231SDZr_Intkz: case VFMSUB231SDZrb_Int: case VFMSUB231SDZrb_Intk: case VFMSUB231SDZrb_Intkz: case VFMSUB231SDm_Int: case VFMSUB231SDr_Int: return true; } return false; } bool isVPMULTISHIFTQB(unsigned Opcode) { switch (Opcode) { case VPMULTISHIFTQBZ128rm: case VPMULTISHIFTQBZ128rmb: case VPMULTISHIFTQBZ128rmbk: case VPMULTISHIFTQBZ128rmbkz: case VPMULTISHIFTQBZ128rmk: case VPMULTISHIFTQBZ128rmkz: case VPMULTISHIFTQBZ128rr: case VPMULTISHIFTQBZ128rrk: case VPMULTISHIFTQBZ128rrkz: case VPMULTISHIFTQBZ256rm: case VPMULTISHIFTQBZ256rmb: case VPMULTISHIFTQBZ256rmbk: case VPMULTISHIFTQBZ256rmbkz: case VPMULTISHIFTQBZ256rmk: case VPMULTISHIFTQBZ256rmkz: case VPMULTISHIFTQBZ256rr: case VPMULTISHIFTQBZ256rrk: case VPMULTISHIFTQBZ256rrkz: case VPMULTISHIFTQBZrm: case VPMULTISHIFTQBZrmb: case VPMULTISHIFTQBZrmbk: case VPMULTISHIFTQBZrmbkz: case VPMULTISHIFTQBZrmk: case VPMULTISHIFTQBZrmkz: case VPMULTISHIFTQBZrr: case VPMULTISHIFTQBZrrk: case VPMULTISHIFTQBZrrkz: return true; } return false; } bool isFNSAVE(unsigned Opcode) { return Opcode == FSAVEm; } bool isVFMSUB231SH(unsigned Opcode) { switch (Opcode) { case VFMSUB231SHZm_Int: case VFMSUB231SHZm_Intk: case VFMSUB231SHZm_Intkz: case VFMSUB231SHZr_Int: case VFMSUB231SHZr_Intk: case VFMSUB231SHZr_Intkz: case VFMSUB231SHZrb_Int: case VFMSUB231SHZrb_Intk: case VFMSUB231SHZrb_Intkz: return true; } return false; } bool isVSHUFF32X4(unsigned Opcode) { switch (Opcode) { case VSHUFF32X4Z256rmbi: case VSHUFF32X4Z256rmbik: case VSHUFF32X4Z256rmbikz: case VSHUFF32X4Z256rmi: case VSHUFF32X4Z256rmik: case VSHUFF32X4Z256rmikz: case VSHUFF32X4Z256rri: case VSHUFF32X4Z256rrik: case VSHUFF32X4Z256rrikz: case VSHUFF32X4Zrmbi: case VSHUFF32X4Zrmbik: case VSHUFF32X4Zrmbikz: case VSHUFF32X4Zrmi: case VSHUFF32X4Zrmik: case VSHUFF32X4Zrmikz: case VSHUFF32X4Zrri: case VSHUFF32X4Zrrik: case VSHUFF32X4Zrrikz: return true; } return false; } bool isPMOVSXWD(unsigned Opcode) { switch (Opcode) { case PMOVSXWDrm: case PMOVSXWDrr: return true; } return false; } bool isVFMADD213PS(unsigned Opcode) { switch (Opcode) { case VFMADD213PSYm: case VFMADD213PSYr: case VFMADD213PSZ128m: case VFMADD213PSZ128mb: case VFMADD213PSZ128mbk: case VFMADD213PSZ128mbkz: case VFMADD213PSZ128mk: case VFMADD213PSZ128mkz: case VFMADD213PSZ128r: case VFMADD213PSZ128rk: case VFMADD213PSZ128rkz: case VFMADD213PSZ256m: case VFMADD213PSZ256mb: case VFMADD213PSZ256mbk: case VFMADD213PSZ256mbkz: case VFMADD213PSZ256mk: case VFMADD213PSZ256mkz: case VFMADD213PSZ256r: case VFMADD213PSZ256rk: case VFMADD213PSZ256rkz: case VFMADD213PSZm: case VFMADD213PSZmb: case VFMADD213PSZmbk: case VFMADD213PSZmbkz: case VFMADD213PSZmk: case VFMADD213PSZmkz: case VFMADD213PSZr: case VFMADD213PSZrb: case VFMADD213PSZrbk: case VFMADD213PSZrbkz: case VFMADD213PSZrk: case VFMADD213PSZrkz: case VFMADD213PSm: case VFMADD213PSr: return true; } return false; } bool isVFMSUB231SS(unsigned Opcode) { switch (Opcode) { case VFMSUB231SSZm_Int: case VFMSUB231SSZm_Intk: case VFMSUB231SSZm_Intkz: case VFMSUB231SSZr_Int: case VFMSUB231SSZr_Intk: case VFMSUB231SSZr_Intkz: case VFMSUB231SSZrb_Int: case VFMSUB231SSZrb_Intk: case VFMSUB231SSZrb_Intkz: case VFMSUB231SSm_Int: case VFMSUB231SSr_Int: return true; } return false; } bool isVPCOMPRESSB(unsigned Opcode) { switch (Opcode) { case VPCOMPRESSBZ128mr: case VPCOMPRESSBZ128mrk: case VPCOMPRESSBZ128rr: case VPCOMPRESSBZ128rrk: case VPCOMPRESSBZ128rrkz: case VPCOMPRESSBZ256mr: case VPCOMPRESSBZ256mrk: case VPCOMPRESSBZ256rr: case VPCOMPRESSBZ256rrk: case VPCOMPRESSBZ256rrkz: case VPCOMPRESSBZmr: case VPCOMPRESSBZmrk: case VPCOMPRESSBZrr: case VPCOMPRESSBZrrk: case VPCOMPRESSBZrrkz: return true; } return false; } bool isPMOVSXWQ(unsigned Opcode) { switch (Opcode) { case PMOVSXWQrm: case PMOVSXWQrr: return true; } return false; } bool isVPCOMPRESSD(unsigned Opcode) { switch (Opcode) { case VPCOMPRESSDZ128mr: case VPCOMPRESSDZ128mrk: case VPCOMPRESSDZ128rr: case VPCOMPRESSDZ128rrk: case VPCOMPRESSDZ128rrkz: case VPCOMPRESSDZ256mr: case VPCOMPRESSDZ256mrk: case VPCOMPRESSDZ256rr: case VPCOMPRESSDZ256rrk: case VPCOMPRESSDZ256rrkz: case VPCOMPRESSDZmr: case VPCOMPRESSDZmrk: case VPCOMPRESSDZrr: case VPCOMPRESSDZrrk: case VPCOMPRESSDZrrkz: return true; } return false; } bool isVPABSB(unsigned Opcode) { switch (Opcode) { case VPABSBYrm: case VPABSBYrr: case VPABSBZ128rm: case VPABSBZ128rmk: case VPABSBZ128rmkz: case VPABSBZ128rr: case VPABSBZ128rrk: case VPABSBZ128rrkz: case VPABSBZ256rm: case VPABSBZ256rmk: case VPABSBZ256rmkz: case VPABSBZ256rr: case VPABSBZ256rrk: case VPABSBZ256rrkz: case VPABSBZrm: case VPABSBZrmk: case VPABSBZrmkz: case VPABSBZrr: case VPABSBZrrk: case VPABSBZrrkz: case VPABSBrm: case VPABSBrr: return true; } return false; } bool isVMOVNTDQA(unsigned Opcode) { switch (Opcode) { case VMOVNTDQAYrm: case VMOVNTDQAZ128rm: case VMOVNTDQAZ256rm: case VMOVNTDQAZrm: case VMOVNTDQArm: return true; } return false; } bool isVPABSD(unsigned Opcode) { switch (Opcode) { case VPABSDYrm: case VPABSDYrr: case VPABSDZ128rm: case VPABSDZ128rmb: case VPABSDZ128rmbk: case VPABSDZ128rmbkz: case VPABSDZ128rmk: case VPABSDZ128rmkz: case VPABSDZ128rr: case VPABSDZ128rrk: case VPABSDZ128rrkz: case VPABSDZ256rm: case VPABSDZ256rmb: case VPABSDZ256rmbk: case VPABSDZ256rmbkz: case VPABSDZ256rmk: case VPABSDZ256rmkz: case VPABSDZ256rr: case VPABSDZ256rrk: case VPABSDZ256rrkz: case VPABSDZrm: case VPABSDZrmb: case VPABSDZrmbk: case VPABSDZrmbkz: case VPABSDZrmk: case VPABSDZrmkz: case VPABSDZrr: case VPABSDZrrk: case VPABSDZrrkz: case VPABSDrm: case VPABSDrr: return true; } return false; } bool isVPCOMPRESSQ(unsigned Opcode) { switch (Opcode) { case VPCOMPRESSQZ128mr: case VPCOMPRESSQZ128mrk: case VPCOMPRESSQZ128rr: case VPCOMPRESSQZ128rrk: case VPCOMPRESSQZ128rrkz: case VPCOMPRESSQZ256mr: case VPCOMPRESSQZ256mrk: case VPCOMPRESSQZ256rr: case VPCOMPRESSQZ256rrk: case VPCOMPRESSQZ256rrkz: case VPCOMPRESSQZmr: case VPCOMPRESSQZmrk: case VPCOMPRESSQZrr: case VPCOMPRESSQZrrk: case VPCOMPRESSQZrrkz: return true; } return false; } bool isVINSERTI64X2(unsigned Opcode) { switch (Opcode) { case VINSERTI64x2Z256rm: case VINSERTI64x2Z256rmk: case VINSERTI64x2Z256rmkz: case VINSERTI64x2Z256rr: case VINSERTI64x2Z256rrk: case VINSERTI64x2Z256rrkz: case VINSERTI64x2Zrm: case VINSERTI64x2Zrmk: case VINSERTI64x2Zrmkz: case VINSERTI64x2Zrr: case VINSERTI64x2Zrrk: case VINSERTI64x2Zrrkz: return true; } return false; } bool isVPCOMPRESSW(unsigned Opcode) { switch (Opcode) { case VPCOMPRESSWZ128mr: case VPCOMPRESSWZ128mrk: case VPCOMPRESSWZ128rr: case VPCOMPRESSWZ128rrk: case VPCOMPRESSWZ128rrkz: case VPCOMPRESSWZ256mr: case VPCOMPRESSWZ256mrk: case VPCOMPRESSWZ256rr: case VPCOMPRESSWZ256rrk: case VPCOMPRESSWZ256rrkz: case VPCOMPRESSWZmr: case VPCOMPRESSWZmrk: case VPCOMPRESSWZrr: case VPCOMPRESSWZrrk: case VPCOMPRESSWZrrkz: return true; } return false; } bool isVINSERTI64X4(unsigned Opcode) { switch (Opcode) { case VINSERTI64x4Zrm: case VINSERTI64x4Zrmk: case VINSERTI64x4Zrmkz: case VINSERTI64x4Zrr: case VINSERTI64x4Zrrk: case VINSERTI64x4Zrrkz: return true; } return false; } bool isVPABSQ(unsigned Opcode) { switch (Opcode) { case VPABSQZ128rm: case VPABSQZ128rmb: case VPABSQZ128rmbk: case VPABSQZ128rmbkz: case VPABSQZ128rmk: case VPABSQZ128rmkz: case VPABSQZ128rr: case VPABSQZ128rrk: case VPABSQZ128rrkz: case VPABSQZ256rm: case VPABSQZ256rmb: case VPABSQZ256rmbk: case VPABSQZ256rmbkz: case VPABSQZ256rmk: case VPABSQZ256rmkz: case VPABSQZ256rr: case VPABSQZ256rrk: case VPABSQZ256rrkz: case VPABSQZrm: case VPABSQZrmb: case VPABSQZrmbk: case VPABSQZrmbkz: case VPABSQZrmk: case VPABSQZrmkz: case VPABSQZrr: case VPABSQZrrk: case VPABSQZrrkz: return true; } return false; } bool isVFMADDCSH(unsigned Opcode) { switch (Opcode) { case VFMADDCSHZm: case VFMADDCSHZmk: case VFMADDCSHZmkz: case VFMADDCSHZr: case VFMADDCSHZrb: case VFMADDCSHZrbk: case VFMADDCSHZrbkz: case VFMADDCSHZrk: case VFMADDCSHZrkz: return true; } return false; } bool isVPABSW(unsigned Opcode) { switch (Opcode) { case VPABSWYrm: case VPABSWYrr: case VPABSWZ128rm: case VPABSWZ128rmk: case VPABSWZ128rmkz: case VPABSWZ128rr: case VPABSWZ128rrk: case VPABSWZ128rrkz: case VPABSWZ256rm: case VPABSWZ256rmk: case VPABSWZ256rmkz: case VPABSWZ256rr: case VPABSWZ256rrk: case VPABSWZ256rrkz: case VPABSWZrm: case VPABSWZrmk: case VPABSWZrmkz: case VPABSWZrr: case VPABSWZrrk: case VPABSWZrrkz: case VPABSWrm: case VPABSWrr: return true; } return false; } bool isPVALIDATE(unsigned Opcode) { switch (Opcode) { case PVALIDATE32: case PVALIDATE64: return true; } return false; } bool isVFMADD231PD(unsigned Opcode) { switch (Opcode) { case VFMADD231PDYm: case VFMADD231PDYr: case VFMADD231PDZ128m: case VFMADD231PDZ128mb: case VFMADD231PDZ128mbk: case VFMADD231PDZ128mbkz: case VFMADD231PDZ128mk: case VFMADD231PDZ128mkz: case VFMADD231PDZ128r: case VFMADD231PDZ128rk: case VFMADD231PDZ128rkz: case VFMADD231PDZ256m: case VFMADD231PDZ256mb: case VFMADD231PDZ256mbk: case VFMADD231PDZ256mbkz: case VFMADD231PDZ256mk: case VFMADD231PDZ256mkz: case VFMADD231PDZ256r: case VFMADD231PDZ256rk: case VFMADD231PDZ256rkz: case VFMADD231PDZm: case VFMADD231PDZmb: case VFMADD231PDZmbk: case VFMADD231PDZmbkz: case VFMADD231PDZmk: case VFMADD231PDZmkz: case VFMADD231PDZr: case VFMADD231PDZrb: case VFMADD231PDZrbk: case VFMADD231PDZrbkz: case VFMADD231PDZrk: case VFMADD231PDZrkz: case VFMADD231PDm: case VFMADD231PDr: return true; } return false; } bool isVFMADD231PH(unsigned Opcode) { switch (Opcode) { case VFMADD231PHZ128m: case VFMADD231PHZ128mb: case VFMADD231PHZ128mbk: case VFMADD231PHZ128mbkz: case VFMADD231PHZ128mk: case VFMADD231PHZ128mkz: case VFMADD231PHZ128r: case VFMADD231PHZ128rk: case VFMADD231PHZ128rkz: case VFMADD231PHZ256m: case VFMADD231PHZ256mb: case VFMADD231PHZ256mbk: case VFMADD231PHZ256mbkz: case VFMADD231PHZ256mk: case VFMADD231PHZ256mkz: case VFMADD231PHZ256r: case VFMADD231PHZ256rk: case VFMADD231PHZ256rkz: case VFMADD231PHZm: case VFMADD231PHZmb: case VFMADD231PHZmbk: case VFMADD231PHZmbkz: case VFMADD231PHZmk: case VFMADD231PHZmkz: case VFMADD231PHZr: case VFMADD231PHZrb: case VFMADD231PHZrbk: case VFMADD231PHZrbkz: case VFMADD231PHZrk: case VFMADD231PHZrkz: return true; } return false; } bool isPUNPCKLQDQ(unsigned Opcode) { switch (Opcode) { case PUNPCKLQDQrm: case PUNPCKLQDQrr: return true; } return false; } bool isVCVTNEEPH2PS(unsigned Opcode) { switch (Opcode) { case VCVTNEEPH2PSYrm: case VCVTNEEPH2PSrm: return true; } return false; } bool isVFMADD231PS(unsigned Opcode) { switch (Opcode) { case VFMADD231PSYm: case VFMADD231PSYr: case VFMADD231PSZ128m: case VFMADD231PSZ128mb: case VFMADD231PSZ128mbk: case VFMADD231PSZ128mbkz: case VFMADD231PSZ128mk: case VFMADD231PSZ128mkz: case VFMADD231PSZ128r: case VFMADD231PSZ128rk: case VFMADD231PSZ128rkz: case VFMADD231PSZ256m: case VFMADD231PSZ256mb: case VFMADD231PSZ256mbk: case VFMADD231PSZ256mbkz: case VFMADD231PSZ256mk: case VFMADD231PSZ256mkz: case VFMADD231PSZ256r: case VFMADD231PSZ256rk: case VFMADD231PSZ256rkz: case VFMADD231PSZm: case VFMADD231PSZmb: case VFMADD231PSZmbk: case VFMADD231PSZmbkz: case VFMADD231PSZmk: case VFMADD231PSZmkz: case VFMADD231PSZr: case VFMADD231PSZrb: case VFMADD231PSZrbk: case VFMADD231PSZrbkz: case VFMADD231PSZrk: case VFMADD231PSZrkz: case VFMADD231PSm: case VFMADD231PSr: return true; } return false; } bool isAESENCWIDE256KL(unsigned Opcode) { return Opcode == AESENCWIDE256KL; } bool isVGF2P8MULB(unsigned Opcode) { switch (Opcode) { case VGF2P8MULBYrm: case VGF2P8MULBYrr: case VGF2P8MULBZ128rm: case VGF2P8MULBZ128rmk: case VGF2P8MULBZ128rmkz: case VGF2P8MULBZ128rr: case VGF2P8MULBZ128rrk: case VGF2P8MULBZ128rrkz: case VGF2P8MULBZ256rm: case VGF2P8MULBZ256rmk: case VGF2P8MULBZ256rmkz: case VGF2P8MULBZ256rr: case VGF2P8MULBZ256rrk: case VGF2P8MULBZ256rrkz: case VGF2P8MULBZrm: case VGF2P8MULBZrmk: case VGF2P8MULBZrmkz: case VGF2P8MULBZrr: case VGF2P8MULBZrrk: case VGF2P8MULBZrrkz: case VGF2P8MULBrm: case VGF2P8MULBrr: return true; } return false; } bool isWRSSD(unsigned Opcode) { return Opcode == WRSSD; } bool isMOVSHDUP(unsigned Opcode) { switch (Opcode) { case MOVSHDUPrm: case MOVSHDUPrr: return true; } return false; } bool isTZMSK(unsigned Opcode) { switch (Opcode) { case TZMSK32rm: case TZMSK32rr: case TZMSK64rm: case TZMSK64rr: return true; } return false; } bool isFPATAN(unsigned Opcode) { return Opcode == FPATAN; } bool isFUCOM(unsigned Opcode) { return Opcode == UCOM_Fr; } bool isVFMADD213SD(unsigned Opcode) { switch (Opcode) { case VFMADD213SDZm_Int: case VFMADD213SDZm_Intk: case VFMADD213SDZm_Intkz: case VFMADD213SDZr_Int: case VFMADD213SDZr_Intk: case VFMADD213SDZr_Intkz: case VFMADD213SDZrb_Int: case VFMADD213SDZrb_Intk: case VFMADD213SDZrb_Intkz: case VFMADD213SDm_Int: case VFMADD213SDr_Int: return true; } return false; } bool isWRSSQ(unsigned Opcode) { return Opcode == WRSSQ; } bool isVFMADD213SH(unsigned Opcode) { switch (Opcode) { case VFMADD213SHZm_Int: case VFMADD213SHZm_Intk: case VFMADD213SHZm_Intkz: case VFMADD213SHZr_Int: case VFMADD213SHZr_Intk: case VFMADD213SHZr_Intkz: case VFMADD213SHZrb_Int: case VFMADD213SHZrb_Intk: case VFMADD213SHZrb_Intkz: return true; } return false; } bool isVPTESTNMB(unsigned Opcode) { switch (Opcode) { case VPTESTNMBZ128rm: case VPTESTNMBZ128rmk: case VPTESTNMBZ128rr: case VPTESTNMBZ128rrk: case VPTESTNMBZ256rm: case VPTESTNMBZ256rmk: case VPTESTNMBZ256rr: case VPTESTNMBZ256rrk: case VPTESTNMBZrm: case VPTESTNMBZrmk: case VPTESTNMBZrr: case VPTESTNMBZrrk: return true; } return false; } bool isVPTESTNMD(unsigned Opcode) { switch (Opcode) { case VPTESTNMDZ128rm: case VPTESTNMDZ128rmb: case VPTESTNMDZ128rmbk: case VPTESTNMDZ128rmk: case VPTESTNMDZ128rr: case VPTESTNMDZ128rrk: case VPTESTNMDZ256rm: case VPTESTNMDZ256rmb: case VPTESTNMDZ256rmbk: case VPTESTNMDZ256rmk: case VPTESTNMDZ256rr: case VPTESTNMDZ256rrk: case VPTESTNMDZrm: case VPTESTNMDZrmb: case VPTESTNMDZrmbk: case VPTESTNMDZrmk: case VPTESTNMDZrr: case VPTESTNMDZrrk: return true; } return false; } bool isPMULUDQ(unsigned Opcode) { switch (Opcode) { case MMX_PMULUDQrm: case MMX_PMULUDQrr: case PMULUDQrm: case PMULUDQrr: return true; } return false; } bool isHRESET(unsigned Opcode) { return Opcode == HRESET; } bool isPMAXSB(unsigned Opcode) { switch (Opcode) { case PMAXSBrm: case PMAXSBrr: return true; } return false; } bool isPMAXSD(unsigned Opcode) { switch (Opcode) { case PMAXSDrm: case PMAXSDrr: return true; } return false; } bool isVFMADD213SS(unsigned Opcode) { switch (Opcode) { case VFMADD213SSZm_Int: case VFMADD213SSZm_Intk: case VFMADD213SSZm_Intkz: case VFMADD213SSZr_Int: case VFMADD213SSZr_Intk: case VFMADD213SSZr_Intkz: case VFMADD213SSZrb_Int: case VFMADD213SSZrb_Intk: case VFMADD213SSZrb_Intkz: case VFMADD213SSm_Int: case VFMADD213SSr_Int: return true; } return false; } bool isCLC(unsigned Opcode) { return Opcode == CLC; } bool isCLD(unsigned Opcode) { return Opcode == CLD; } bool isENCODEKEY256(unsigned Opcode) { return Opcode == ENCODEKEY256; } bool isVPTESTNMQ(unsigned Opcode) { switch (Opcode) { case VPTESTNMQZ128rm: case VPTESTNMQZ128rmb: case VPTESTNMQZ128rmbk: case VPTESTNMQZ128rmk: case VPTESTNMQZ128rr: case VPTESTNMQZ128rrk: case VPTESTNMQZ256rm: case VPTESTNMQZ256rmb: case VPTESTNMQZ256rmbk: case VPTESTNMQZ256rmk: case VPTESTNMQZ256rr: case VPTESTNMQZ256rrk: case VPTESTNMQZrm: case VPTESTNMQZrmb: case VPTESTNMQZrmbk: case VPTESTNMQZrmk: case VPTESTNMQZrr: case VPTESTNMQZrrk: return true; } return false; } bool isVGATHERQPD(unsigned Opcode) { switch (Opcode) { case VGATHERQPDYrm: case VGATHERQPDZ128rm: case VGATHERQPDZ256rm: case VGATHERQPDZrm: case VGATHERQPDrm: return true; } return false; } bool isBOUND(unsigned Opcode) { switch (Opcode) { case BOUNDS16rm: case BOUNDS32rm: return true; } return false; } bool isCLI(unsigned Opcode) { return Opcode == CLI; } bool isVPTESTNMW(unsigned Opcode) { switch (Opcode) { case VPTESTNMWZ128rm: case VPTESTNMWZ128rmk: case VPTESTNMWZ128rr: case VPTESTNMWZ128rrk: case VPTESTNMWZ256rm: case VPTESTNMWZ256rmk: case VPTESTNMWZ256rr: case VPTESTNMWZ256rrk: case VPTESTNMWZrm: case VPTESTNMWZrmk: case VPTESTNMWZrr: case VPTESTNMWZrrk: return true; } return false; } bool isPREFETCHIT0(unsigned Opcode) { return Opcode == PREFETCHIT0; } bool isPREFETCHIT1(unsigned Opcode) { return Opcode == PREFETCHIT1; } bool isPMAXSW(unsigned Opcode) { switch (Opcode) { case MMX_PMAXSWrm: case MMX_PMAXSWrr: case PMAXSWrm: case PMAXSWrr: return true; } return false; } bool isPFSUB(unsigned Opcode) { switch (Opcode) { case PFSUBrm: case PFSUBrr: return true; } return false; } bool isVCVTDQ2PH(unsigned Opcode) { switch (Opcode) { case VCVTDQ2PHZ128rm: case VCVTDQ2PHZ128rmb: case VCVTDQ2PHZ128rmbk: case VCVTDQ2PHZ128rmbkz: case VCVTDQ2PHZ128rmk: case VCVTDQ2PHZ128rmkz: case VCVTDQ2PHZ128rr: case VCVTDQ2PHZ128rrk: case VCVTDQ2PHZ128rrkz: case VCVTDQ2PHZ256rm: case VCVTDQ2PHZ256rmb: case VCVTDQ2PHZ256rmbk: case VCVTDQ2PHZ256rmbkz: case VCVTDQ2PHZ256rmk: case VCVTDQ2PHZ256rmkz: case VCVTDQ2PHZ256rr: case VCVTDQ2PHZ256rrk: case VCVTDQ2PHZ256rrkz: case VCVTDQ2PHZrm: case VCVTDQ2PHZrmb: case VCVTDQ2PHZrmbk: case VCVTDQ2PHZrmbkz: case VCVTDQ2PHZrmk: case VCVTDQ2PHZrmkz: case VCVTDQ2PHZrr: case VCVTDQ2PHZrrb: case VCVTDQ2PHZrrbk: case VCVTDQ2PHZrrbkz: case VCVTDQ2PHZrrk: case VCVTDQ2PHZrrkz: return true; } return false; } bool isVPALIGNR(unsigned Opcode) { switch (Opcode) { case VPALIGNRYrmi: case VPALIGNRYrri: case VPALIGNRZ128rmi: case VPALIGNRZ128rmik: case VPALIGNRZ128rmikz: case VPALIGNRZ128rri: case VPALIGNRZ128rrik: case VPALIGNRZ128rrikz: case VPALIGNRZ256rmi: case VPALIGNRZ256rmik: case VPALIGNRZ256rmikz: case VPALIGNRZ256rri: case VPALIGNRZ256rrik: case VPALIGNRZ256rrikz: case VPALIGNRZrmi: case VPALIGNRZrmik: case VPALIGNRZrmikz: case VPALIGNRZrri: case VPALIGNRZrrik: case VPALIGNRZrrikz: case VPALIGNRrmi: case VPALIGNRrri: return true; } return false; } bool isVCVTDQ2PD(unsigned Opcode) { switch (Opcode) { case VCVTDQ2PDYrm: case VCVTDQ2PDYrr: case VCVTDQ2PDZ128rm: case VCVTDQ2PDZ128rmb: case VCVTDQ2PDZ128rmbk: case VCVTDQ2PDZ128rmbkz: case VCVTDQ2PDZ128rmk: case VCVTDQ2PDZ128rmkz: case VCVTDQ2PDZ128rr: case VCVTDQ2PDZ128rrk: case VCVTDQ2PDZ128rrkz: case VCVTDQ2PDZ256rm: case VCVTDQ2PDZ256rmb: case VCVTDQ2PDZ256rmbk: case VCVTDQ2PDZ256rmbkz: case VCVTDQ2PDZ256rmk: case VCVTDQ2PDZ256rmkz: case VCVTDQ2PDZ256rr: case VCVTDQ2PDZ256rrk: case VCVTDQ2PDZ256rrkz: case VCVTDQ2PDZrm: case VCVTDQ2PDZrmb: case VCVTDQ2PDZrmbk: case VCVTDQ2PDZrmbkz: case VCVTDQ2PDZrmk: case VCVTDQ2PDZrmkz: case VCVTDQ2PDZrr: case VCVTDQ2PDZrrk: case VCVTDQ2PDZrrkz: case VCVTDQ2PDrm: case VCVTDQ2PDrr: return true; } return false; } bool isFNSTSW(unsigned Opcode) { switch (Opcode) { case FNSTSW16r: case FNSTSWm: return true; } return false; } bool isFISTP(unsigned Opcode) { switch (Opcode) { case IST_FP16m: case IST_FP32m: case IST_FP64m: return true; } return false; } bool isVFMADDPD(unsigned Opcode) { switch (Opcode) { case VFMADDPD4Ymr: case VFMADDPD4Yrm: case VFMADDPD4Yrr: case VFMADDPD4Yrr_REV: case VFMADDPD4mr: case VFMADDPD4rm: case VFMADDPD4rr: case VFMADDPD4rr_REV: return true; } return false; } bool isVGATHERQPS(unsigned Opcode) { switch (Opcode) { case VGATHERQPSYrm: case VGATHERQPSZ128rm: case VGATHERQPSZ256rm: case VGATHERQPSZrm: case VGATHERQPSrm: return true; } return false; } bool isPBLENDW(unsigned Opcode) { switch (Opcode) { case PBLENDWrmi: case PBLENDWrri: return true; } return false; } bool isVCVTDQ2PS(unsigned Opcode) { switch (Opcode) { case VCVTDQ2PSYrm: case VCVTDQ2PSYrr: case VCVTDQ2PSZ128rm: case VCVTDQ2PSZ128rmb: case VCVTDQ2PSZ128rmbk: case VCVTDQ2PSZ128rmbkz: case VCVTDQ2PSZ128rmk: case VCVTDQ2PSZ128rmkz: case VCVTDQ2PSZ128rr: case VCVTDQ2PSZ128rrk: case VCVTDQ2PSZ128rrkz: case VCVTDQ2PSZ256rm: case VCVTDQ2PSZ256rmb: case VCVTDQ2PSZ256rmbk: case VCVTDQ2PSZ256rmbkz: case VCVTDQ2PSZ256rmk: case VCVTDQ2PSZ256rmkz: case VCVTDQ2PSZ256rr: case VCVTDQ2PSZ256rrk: case VCVTDQ2PSZ256rrkz: case VCVTDQ2PSZrm: case VCVTDQ2PSZrmb: case VCVTDQ2PSZrmbk: case VCVTDQ2PSZrmbkz: case VCVTDQ2PSZrmk: case VCVTDQ2PSZrmkz: case VCVTDQ2PSZrr: case VCVTDQ2PSZrrb: case VCVTDQ2PSZrrbk: case VCVTDQ2PSZrrbkz: case VCVTDQ2PSZrrk: case VCVTDQ2PSZrrkz: case VCVTDQ2PSrm: case VCVTDQ2PSrr: return true; } return false; } bool isPREFETCH(unsigned Opcode) { return Opcode == PREFETCH; } bool isSKINIT(unsigned Opcode) { return Opcode == SKINIT; } bool isCMC(unsigned Opcode) { return Opcode == CMC; } bool isVFMADDPS(unsigned Opcode) { switch (Opcode) { case VFMADDPS4Ymr: case VFMADDPS4Yrm: case VFMADDPS4Yrr: case VFMADDPS4Yrr_REV: case VFMADDPS4mr: case VFMADDPS4rm: case VFMADDPS4rr: case VFMADDPS4rr_REV: return true; } return false; } bool isVPACKSSDW(unsigned Opcode) { switch (Opcode) { case VPACKSSDWYrm: case VPACKSSDWYrr: case VPACKSSDWZ128rm: case VPACKSSDWZ128rmb: case VPACKSSDWZ128rmbk: case VPACKSSDWZ128rmbkz: case VPACKSSDWZ128rmk: case VPACKSSDWZ128rmkz: case VPACKSSDWZ128rr: case VPACKSSDWZ128rrk: case VPACKSSDWZ128rrkz: case VPACKSSDWZ256rm: case VPACKSSDWZ256rmb: case VPACKSSDWZ256rmbk: case VPACKSSDWZ256rmbkz: case VPACKSSDWZ256rmk: case VPACKSSDWZ256rmkz: case VPACKSSDWZ256rr: case VPACKSSDWZ256rrk: case VPACKSSDWZ256rrkz: case VPACKSSDWZrm: case VPACKSSDWZrmb: case VPACKSSDWZrmbk: case VPACKSSDWZrmbkz: case VPACKSSDWZrmk: case VPACKSSDWZrmkz: case VPACKSSDWZrr: case VPACKSSDWZrrk: case VPACKSSDWZrrkz: case VPACKSSDWrm: case VPACKSSDWrr: return true; } return false; } bool isFISUB(unsigned Opcode) { switch (Opcode) { case SUB_FI16m: case SUB_FI32m: return true; } return false; } bool isPADDB(unsigned Opcode) { switch (Opcode) { case MMX_PADDBrm: case MMX_PADDBrr: case PADDBrm: case PADDBrr: return true; } return false; } bool isPOPAL(unsigned Opcode) { return Opcode == POPA32; } bool isPADDD(unsigned Opcode) { switch (Opcode) { case MMX_PADDDrm: case MMX_PADDDrr: case PADDDrm: case PADDDrr: return true; } return false; } bool isVFMADD231SD(unsigned Opcode) { switch (Opcode) { case VFMADD231SDZm_Int: case VFMADD231SDZm_Intk: case VFMADD231SDZm_Intkz: case VFMADD231SDZr_Int: case VFMADD231SDZr_Intk: case VFMADD231SDZr_Intkz: case VFMADD231SDZrb_Int: case VFMADD231SDZrb_Intk: case VFMADD231SDZrb_Intkz: case VFMADD231SDm_Int: case VFMADD231SDr_Int: return true; } return false; } bool isCMP(unsigned Opcode) { switch (Opcode) { case CMP16i16: case CMP16mi: case CMP16mi8: case CMP16mr: case CMP16ri: case CMP16ri8: case CMP16rm: case CMP16rr: case CMP16rr_REV: case CMP32i32: case CMP32mi: case CMP32mi8: case CMP32mr: case CMP32ri: case CMP32ri8: case CMP32rm: case CMP32rr: case CMP32rr_REV: case CMP64i32: case CMP64mi32: case CMP64mi8: case CMP64mr: case CMP64ri32: case CMP64ri8: case CMP64rm: case CMP64rr: case CMP64rr_REV: case CMP8i8: case CMP8mi: case CMP8mi8: case CMP8mr: case CMP8ri: case CMP8ri8: case CMP8rm: case CMP8rr: case CMP8rr_REV: return true; } return false; } bool isKANDB(unsigned Opcode) { return Opcode == KANDBrr; } bool isKANDD(unsigned Opcode) { return Opcode == KANDDrr; } bool isVFMADD231SH(unsigned Opcode) { switch (Opcode) { case VFMADD231SHZm_Int: case VFMADD231SHZm_Intk: case VFMADD231SHZm_Intkz: case VFMADD231SHZr_Int: case VFMADD231SHZr_Intk: case VFMADD231SHZr_Intkz: case VFMADD231SHZrb_Int: case VFMADD231SHZrb_Intk: case VFMADD231SHZrb_Intkz: return true; } return false; } bool isVCVTSH2USI(unsigned Opcode) { switch (Opcode) { case VCVTSH2USI64Zrm_Int: case VCVTSH2USI64Zrr_Int: case VCVTSH2USI64Zrrb_Int: case VCVTSH2USIZrm_Int: case VCVTSH2USIZrr_Int: case VCVTSH2USIZrrb_Int: return true; } return false; } bool isPCONFIG(unsigned Opcode) { return Opcode == PCONFIG; } bool isPOPAW(unsigned Opcode) { return Opcode == POPA16; } bool isPADDQ(unsigned Opcode) { switch (Opcode) { case MMX_PADDQrm: case MMX_PADDQrr: case PADDQrm: case PADDQrr: return true; } return false; } bool isPMAXUB(unsigned Opcode) { switch (Opcode) { case MMX_PMAXUBrm: case MMX_PMAXUBrr: case PMAXUBrm: case PMAXUBrr: return true; } return false; } bool isROL(unsigned Opcode) { switch (Opcode) { case ROL16m1: case ROL16mCL: case ROL16mi: case ROL16r1: case ROL16rCL: case ROL16ri: case ROL32m1: case ROL32mCL: case ROL32mi: case ROL32r1: case ROL32rCL: case ROL32ri: case ROL64m1: case ROL64mCL: case ROL64mi: case ROL64r1: case ROL64rCL: case ROL64ri: case ROL8m1: case ROL8mCL: case ROL8mi: case ROL8r1: case ROL8rCL: case ROL8ri: return true; } return false; } bool isKANDQ(unsigned Opcode) { return Opcode == KANDQrr; } bool isPADDW(unsigned Opcode) { switch (Opcode) { case MMX_PADDWrm: case MMX_PADDWrr: case PADDWrm: case PADDWrr: return true; } return false; } bool isVCVTTPS2QQ(unsigned Opcode) { switch (Opcode) { case VCVTTPS2QQZ128rm: case VCVTTPS2QQZ128rmb: case VCVTTPS2QQZ128rmbk: case VCVTTPS2QQZ128rmbkz: case VCVTTPS2QQZ128rmk: case VCVTTPS2QQZ128rmkz: case VCVTTPS2QQZ128rr: case VCVTTPS2QQZ128rrk: case VCVTTPS2QQZ128rrkz: case VCVTTPS2QQZ256rm: case VCVTTPS2QQZ256rmb: case VCVTTPS2QQZ256rmbk: case VCVTTPS2QQZ256rmbkz: case VCVTTPS2QQZ256rmk: case VCVTTPS2QQZ256rmkz: case VCVTTPS2QQZ256rr: case VCVTTPS2QQZ256rrk: case VCVTTPS2QQZ256rrkz: case VCVTTPS2QQZrm: case VCVTTPS2QQZrmb: case VCVTTPS2QQZrmbk: case VCVTTPS2QQZrmbkz: case VCVTTPS2QQZrmk: case VCVTTPS2QQZrmkz: case VCVTTPS2QQZrr: case VCVTTPS2QQZrrb: case VCVTTPS2QQZrrbk: case VCVTTPS2QQZrrbkz: case VCVTTPS2QQZrrk: case VCVTTPS2QQZrrkz: return true; } return false; } bool isPMAXUD(unsigned Opcode) { switch (Opcode) { case PMAXUDrm: case PMAXUDrr: return true; } return false; } bool isROR(unsigned Opcode) { switch (Opcode) { case ROR16m1: case ROR16mCL: case ROR16mi: case ROR16r1: case ROR16rCL: case ROR16ri: case ROR32m1: case ROR32mCL: case ROR32mi: case ROR32r1: case ROR32rCL: case ROR32ri: case ROR64m1: case ROR64mCL: case ROR64mi: case ROR64r1: case ROR64rCL: case ROR64ri: case ROR8m1: case ROR8mCL: case ROR8mi: case ROR8r1: case ROR8rCL: case ROR8ri: return true; } return false; } bool isVFMADD231SS(unsigned Opcode) { switch (Opcode) { case VFMADD231SSZm_Int: case VFMADD231SSZm_Intk: case VFMADD231SSZm_Intkz: case VFMADD231SSZr_Int: case VFMADD231SSZr_Intk: case VFMADD231SSZr_Intkz: case VFMADD231SSZrb_Int: case VFMADD231SSZrb_Intk: case VFMADD231SSZrb_Intkz: case VFMADD231SSm_Int: case VFMADD231SSr_Int: return true; } return false; } bool isKANDW(unsigned Opcode) { return Opcode == KANDWrr; } bool isVPSRAD(unsigned Opcode) { switch (Opcode) { case VPSRADYri: case VPSRADYrm: case VPSRADYrr: case VPSRADZ128mbi: case VPSRADZ128mbik: case VPSRADZ128mbikz: case VPSRADZ128mi: case VPSRADZ128mik: case VPSRADZ128mikz: case VPSRADZ128ri: case VPSRADZ128rik: case VPSRADZ128rikz: case VPSRADZ128rm: case VPSRADZ128rmk: case VPSRADZ128rmkz: case VPSRADZ128rr: case VPSRADZ128rrk: case VPSRADZ128rrkz: case VPSRADZ256mbi: case VPSRADZ256mbik: case VPSRADZ256mbikz: case VPSRADZ256mi: case VPSRADZ256mik: case VPSRADZ256mikz: case VPSRADZ256ri: case VPSRADZ256rik: case VPSRADZ256rikz: case VPSRADZ256rm: case VPSRADZ256rmk: case VPSRADZ256rmkz: case VPSRADZ256rr: case VPSRADZ256rrk: case VPSRADZ256rrkz: case VPSRADZmbi: case VPSRADZmbik: case VPSRADZmbikz: case VPSRADZmi: case VPSRADZmik: case VPSRADZmikz: case VPSRADZri: case VPSRADZrik: case VPSRADZrikz: case VPSRADZrm: case VPSRADZrmk: case VPSRADZrmkz: case VPSRADZrr: case VPSRADZrrk: case VPSRADZrrkz: case VPSRADri: case VPSRADrm: case VPSRADrr: return true; } return false; } bool isVROUNDPD(unsigned Opcode) { switch (Opcode) { case VROUNDPDYm: case VROUNDPDYr: case VROUNDPDm: case VROUNDPDr: return true; } return false; } bool isMOVBE(unsigned Opcode) { switch (Opcode) { case MOVBE16mr: case MOVBE16rm: case MOVBE32mr: case MOVBE32rm: case MOVBE64mr: case MOVBE64rm: return true; } return false; } bool isLOOP(unsigned Opcode) { return Opcode == LOOP; } bool isVCVTTSD2SI(unsigned Opcode) { switch (Opcode) { case VCVTTSD2SI64Zrm_Int: case VCVTTSD2SI64Zrr_Int: case VCVTTSD2SI64Zrrb_Int: case VCVTTSD2SI64rm_Int: case VCVTTSD2SI64rr_Int: case VCVTTSD2SIZrm_Int: case VCVTTSD2SIZrr_Int: case VCVTTSD2SIZrrb_Int: case VCVTTSD2SIrm_Int: case VCVTTSD2SIrr_Int: return true; } return false; } bool isVPSRAQ(unsigned Opcode) { switch (Opcode) { case VPSRAQZ128mbi: case VPSRAQZ128mbik: case VPSRAQZ128mbikz: case VPSRAQZ128mi: case VPSRAQZ128mik: case VPSRAQZ128mikz: case VPSRAQZ128ri: case VPSRAQZ128rik: case VPSRAQZ128rikz: case VPSRAQZ128rm: case VPSRAQZ128rmk: case VPSRAQZ128rmkz: case VPSRAQZ128rr: case VPSRAQZ128rrk: case VPSRAQZ128rrkz: case VPSRAQZ256mbi: case VPSRAQZ256mbik: case VPSRAQZ256mbikz: case VPSRAQZ256mi: case VPSRAQZ256mik: case VPSRAQZ256mikz: case VPSRAQZ256ri: case VPSRAQZ256rik: case VPSRAQZ256rikz: case VPSRAQZ256rm: case VPSRAQZ256rmk: case VPSRAQZ256rmkz: case VPSRAQZ256rr: case VPSRAQZ256rrk: case VPSRAQZ256rrkz: case VPSRAQZmbi: case VPSRAQZmbik: case VPSRAQZmbikz: case VPSRAQZmi: case VPSRAQZmik: case VPSRAQZmikz: case VPSRAQZri: case VPSRAQZrik: case VPSRAQZrikz: case VPSRAQZrm: case VPSRAQZrmk: case VPSRAQZrmkz: case VPSRAQZrr: case VPSRAQZrrk: case VPSRAQZrrkz: return true; } return false; } bool isVROUNDPS(unsigned Opcode) { switch (Opcode) { case VROUNDPSYm: case VROUNDPSYr: case VROUNDPSm: case VROUNDPSr: return true; } return false; } bool isPMAXUW(unsigned Opcode) { switch (Opcode) { case PMAXUWrm: case PMAXUWrr: return true; } return false; } bool isVPSRAW(unsigned Opcode) { switch (Opcode) { case VPSRAWYri: case VPSRAWYrm: case VPSRAWYrr: case VPSRAWZ128mi: case VPSRAWZ128mik: case VPSRAWZ128mikz: case VPSRAWZ128ri: case VPSRAWZ128rik: case VPSRAWZ128rikz: case VPSRAWZ128rm: case VPSRAWZ128rmk: case VPSRAWZ128rmkz: case VPSRAWZ128rr: case VPSRAWZ128rrk: case VPSRAWZ128rrkz: case VPSRAWZ256mi: case VPSRAWZ256mik: case VPSRAWZ256mikz: case VPSRAWZ256ri: case VPSRAWZ256rik: case VPSRAWZ256rikz: case VPSRAWZ256rm: case VPSRAWZ256rmk: case VPSRAWZ256rmkz: case VPSRAWZ256rr: case VPSRAWZ256rrk: case VPSRAWZ256rrkz: case VPSRAWZmi: case VPSRAWZmik: case VPSRAWZmikz: case VPSRAWZri: case VPSRAWZrik: case VPSRAWZrikz: case VPSRAWZrm: case VPSRAWZrmk: case VPSRAWZrmkz: case VPSRAWZrr: case VPSRAWZrrk: case VPSRAWZrrkz: case VPSRAWri: case VPSRAWrm: case VPSRAWrr: return true; } return false; } bool isVPOR(unsigned Opcode) { switch (Opcode) { case VPORYrm: case VPORYrr: case VPORrm: case VPORrr: return true; } return false; } bool isVPEXTRB(unsigned Opcode) { switch (Opcode) { case VPEXTRBZmr: case VPEXTRBZrr: case VPEXTRBmr: case VPEXTRBrr: return true; } return false; } bool isVPEXTRD(unsigned Opcode) { switch (Opcode) { case VPEXTRDZmr: case VPEXTRDZrr: case VPEXTRDmr: case VPEXTRDrr: return true; } return false; } bool isXGETBV(unsigned Opcode) { return Opcode == XGETBV; } bool isVSUBPD(unsigned Opcode) { switch (Opcode) { case VSUBPDYrm: case VSUBPDYrr: case VSUBPDZ128rm: case VSUBPDZ128rmb: case VSUBPDZ128rmbk: case VSUBPDZ128rmbkz: case VSUBPDZ128rmk: case VSUBPDZ128rmkz: case VSUBPDZ128rr: case VSUBPDZ128rrk: case VSUBPDZ128rrkz: case VSUBPDZ256rm: case VSUBPDZ256rmb: case VSUBPDZ256rmbk: case VSUBPDZ256rmbkz: case VSUBPDZ256rmk: case VSUBPDZ256rmkz: case VSUBPDZ256rr: case VSUBPDZ256rrk: case VSUBPDZ256rrkz: case VSUBPDZrm: case VSUBPDZrmb: case VSUBPDZrmbk: case VSUBPDZrmbkz: case VSUBPDZrmk: case VSUBPDZrmkz: case VSUBPDZrr: case VSUBPDZrrb: case VSUBPDZrrbk: case VSUBPDZrrbkz: case VSUBPDZrrk: case VSUBPDZrrkz: case VSUBPDrm: case VSUBPDrr: return true; } return false; } bool isENCLS(unsigned Opcode) { return Opcode == ENCLS; } bool isENCLU(unsigned Opcode) { return Opcode == ENCLU; } bool isENCLV(unsigned Opcode) { return Opcode == ENCLV; } bool isVSUBPH(unsigned Opcode) { switch (Opcode) { case VSUBPHZ128rm: case VSUBPHZ128rmb: case VSUBPHZ128rmbk: case VSUBPHZ128rmbkz: case VSUBPHZ128rmk: case VSUBPHZ128rmkz: case VSUBPHZ128rr: case VSUBPHZ128rrk: case VSUBPHZ128rrkz: case VSUBPHZ256rm: case VSUBPHZ256rmb: case VSUBPHZ256rmbk: case VSUBPHZ256rmbkz: case VSUBPHZ256rmk: case VSUBPHZ256rmkz: case VSUBPHZ256rr: case VSUBPHZ256rrk: case VSUBPHZ256rrkz: case VSUBPHZrm: case VSUBPHZrmb: case VSUBPHZrmbk: case VSUBPHZrmbkz: case VSUBPHZrmk: case VSUBPHZrmkz: case VSUBPHZrr: case VSUBPHZrrb: case VSUBPHZrrbk: case VSUBPHZrrbkz: case VSUBPHZrrk: case VSUBPHZrrkz: return true; } return false; } bool isVPEXTRQ(unsigned Opcode) { switch (Opcode) { case VPEXTRQZmr: case VPEXTRQZrr: case VPEXTRQmr: case VPEXTRQrr: return true; } return false; } bool isVHSUBPD(unsigned Opcode) { switch (Opcode) { case VHSUBPDYrm: case VHSUBPDYrr: case VHSUBPDrm: case VHSUBPDrr: return true; } return false; } bool isVPEXTRW(unsigned Opcode) { switch (Opcode) { case VPEXTRWZmr: case VPEXTRWZrr: case VPEXTRWZrr_REV: case VPEXTRWmr: case VPEXTRWrr: case VPEXTRWrr_REV: return true; } return false; } bool isVSUBPS(unsigned Opcode) { switch (Opcode) { case VSUBPSYrm: case VSUBPSYrr: case VSUBPSZ128rm: case VSUBPSZ128rmb: case VSUBPSZ128rmbk: case VSUBPSZ128rmbkz: case VSUBPSZ128rmk: case VSUBPSZ128rmkz: case VSUBPSZ128rr: case VSUBPSZ128rrk: case VSUBPSZ128rrkz: case VSUBPSZ256rm: case VSUBPSZ256rmb: case VSUBPSZ256rmbk: case VSUBPSZ256rmbkz: case VSUBPSZ256rmk: case VSUBPSZ256rmkz: case VSUBPSZ256rr: case VSUBPSZ256rrk: case VSUBPSZ256rrkz: case VSUBPSZrm: case VSUBPSZrmb: case VSUBPSZrmbk: case VSUBPSZrmbkz: case VSUBPSZrmk: case VSUBPSZrmkz: case VSUBPSZrr: case VSUBPSZrrb: case VSUBPSZrrbk: case VSUBPSZrrbkz: case VSUBPSZrrk: case VSUBPSZrrkz: case VSUBPSrm: case VSUBPSrr: return true; } return false; } bool isVGF2P8AFFINEINVQB(unsigned Opcode) { switch (Opcode) { case VGF2P8AFFINEINVQBYrmi: case VGF2P8AFFINEINVQBYrri: case VGF2P8AFFINEINVQBZ128rmbi: case VGF2P8AFFINEINVQBZ128rmbik: case VGF2P8AFFINEINVQBZ128rmbikz: case VGF2P8AFFINEINVQBZ128rmi: case VGF2P8AFFINEINVQBZ128rmik: case VGF2P8AFFINEINVQBZ128rmikz: case VGF2P8AFFINEINVQBZ128rri: case VGF2P8AFFINEINVQBZ128rrik: case VGF2P8AFFINEINVQBZ128rrikz: case VGF2P8AFFINEINVQBZ256rmbi: case VGF2P8AFFINEINVQBZ256rmbik: case VGF2P8AFFINEINVQBZ256rmbikz: case VGF2P8AFFINEINVQBZ256rmi: case VGF2P8AFFINEINVQBZ256rmik: case VGF2P8AFFINEINVQBZ256rmikz: case VGF2P8AFFINEINVQBZ256rri: case VGF2P8AFFINEINVQBZ256rrik: case VGF2P8AFFINEINVQBZ256rrikz: case VGF2P8AFFINEINVQBZrmbi: case VGF2P8AFFINEINVQBZrmbik: case VGF2P8AFFINEINVQBZrmbikz: case VGF2P8AFFINEINVQBZrmi: case VGF2P8AFFINEINVQBZrmik: case VGF2P8AFFINEINVQBZrmikz: case VGF2P8AFFINEINVQBZrri: case VGF2P8AFFINEINVQBZrrik: case VGF2P8AFFINEINVQBZrrikz: case VGF2P8AFFINEINVQBrmi: case VGF2P8AFFINEINVQBrri: return true; } return false; } bool isVMOVLPD(unsigned Opcode) { switch (Opcode) { case VMOVLPDZ128mr: case VMOVLPDZ128rm: case VMOVLPDmr: case VMOVLPDrm: return true; } return false; } bool isVFMADDSD(unsigned Opcode) { switch (Opcode) { case VFMADDSD4mr: case VFMADDSD4rm: case VFMADDSD4rr: case VFMADDSD4rr_REV: return true; } return false; } bool isVHSUBPS(unsigned Opcode) { switch (Opcode) { case VHSUBPSYrm: case VHSUBPSYrr: case VHSUBPSrm: case VHSUBPSrr: return true; } return false; } bool isPSRLDQ(unsigned Opcode) { return Opcode == PSRLDQri; } bool isVMOVLPS(unsigned Opcode) { switch (Opcode) { case VMOVLPSZ128mr: case VMOVLPSZ128rm: case VMOVLPSmr: case VMOVLPSrm: return true; } return false; } bool isVFMADDSS(unsigned Opcode) { switch (Opcode) { case VFMADDSS4mr: case VFMADDSS4rm: case VFMADDSS4rr: case VFMADDSS4rr_REV: return true; } return false; } bool isVRCP28PD(unsigned Opcode) { switch (Opcode) { case VRCP28PDZm: case VRCP28PDZmb: case VRCP28PDZmbk: case VRCP28PDZmbkz: case VRCP28PDZmk: case VRCP28PDZmkz: case VRCP28PDZr: case VRCP28PDZrb: case VRCP28PDZrbk: case VRCP28PDZrbkz: case VRCP28PDZrk: case VRCP28PDZrkz: return true; } return false; } bool isFPREM(unsigned Opcode) { return Opcode == FPREM; } bool isVPMADDWD(unsigned Opcode) { switch (Opcode) { case VPMADDWDYrm: case VPMADDWDYrr: case VPMADDWDZ128rm: case VPMADDWDZ128rmk: case VPMADDWDZ128rmkz: case VPMADDWDZ128rr: case VPMADDWDZ128rrk: case VPMADDWDZ128rrkz: case VPMADDWDZ256rm: case VPMADDWDZ256rmk: case VPMADDWDZ256rmkz: case VPMADDWDZ256rr: case VPMADDWDZ256rrk: case VPMADDWDZ256rrkz: case VPMADDWDZrm: case VPMADDWDZrmk: case VPMADDWDZrmkz: case VPMADDWDZrr: case VPMADDWDZrrk: case VPMADDWDZrrkz: case VPMADDWDrm: case VPMADDWDrr: return true; } return false; } bool isVCVTSH2SD(unsigned Opcode) { switch (Opcode) { case VCVTSH2SDZrm_Int: case VCVTSH2SDZrm_Intk: case VCVTSH2SDZrm_Intkz: case VCVTSH2SDZrr_Int: case VCVTSH2SDZrr_Intk: case VCVTSH2SDZrr_Intkz: case VCVTSH2SDZrrb_Int: case VCVTSH2SDZrrb_Intk: case VCVTSH2SDZrrb_Intkz: return true; } return false; } bool isSERIALIZE(unsigned Opcode) { return Opcode == SERIALIZE; } bool isV4FMADDPS(unsigned Opcode) { switch (Opcode) { case V4FMADDPSrm: case V4FMADDPSrmk: case V4FMADDPSrmkz: return true; } return false; } bool isVRCP28PS(unsigned Opcode) { switch (Opcode) { case VRCP28PSZm: case VRCP28PSZmb: case VRCP28PSZmbk: case VRCP28PSZmbkz: case VRCP28PSZmk: case VRCP28PSZmkz: case VRCP28PSZr: case VRCP28PSZrb: case VRCP28PSZrbk: case VRCP28PSZrbkz: case VRCP28PSZrk: case VRCP28PSZrkz: return true; } return false; } bool isVCVTSH2SI(unsigned Opcode) { switch (Opcode) { case VCVTSH2SI64Zrm_Int: case VCVTSH2SI64Zrr_Int: case VCVTSH2SI64Zrrb_Int: case VCVTSH2SIZrm_Int: case VCVTSH2SIZrr_Int: case VCVTSH2SIZrrb_Int: return true; } return false; } bool isRETF(unsigned Opcode) { switch (Opcode) { case LRET16: case LRET32: case LRETI16: case LRETI32: return true; } return false; } bool isVROUNDSD(unsigned Opcode) { switch (Opcode) { case VROUNDSDm_Int: case VROUNDSDr_Int: return true; } return false; } bool isVCVTSH2SS(unsigned Opcode) { switch (Opcode) { case VCVTSH2SSZrm_Int: case VCVTSH2SSZrm_Intk: case VCVTSH2SSZrm_Intkz: case VCVTSH2SSZrr_Int: case VCVTSH2SSZrr_Intk: case VCVTSH2SSZrr_Intkz: case VCVTSH2SSZrrb_Int: case VCVTSH2SSZrrb_Intk: case VCVTSH2SSZrrb_Intkz: return true; } return false; } bool isVSCATTERPF1QPD(unsigned Opcode) { return Opcode == VSCATTERPF1QPDm; } bool isVPCONFLICTD(unsigned Opcode) { switch (Opcode) { case VPCONFLICTDZ128rm: case VPCONFLICTDZ128rmb: case VPCONFLICTDZ128rmbk: case VPCONFLICTDZ128rmbkz: case VPCONFLICTDZ128rmk: case VPCONFLICTDZ128rmkz: case VPCONFLICTDZ128rr: case VPCONFLICTDZ128rrk: case VPCONFLICTDZ128rrkz: case VPCONFLICTDZ256rm: case VPCONFLICTDZ256rmb: case VPCONFLICTDZ256rmbk: case VPCONFLICTDZ256rmbkz: case VPCONFLICTDZ256rmk: case VPCONFLICTDZ256rmkz: case VPCONFLICTDZ256rr: case VPCONFLICTDZ256rrk: case VPCONFLICTDZ256rrkz: case VPCONFLICTDZrm: case VPCONFLICTDZrmb: case VPCONFLICTDZrmbk: case VPCONFLICTDZrmbkz: case VPCONFLICTDZrmk: case VPCONFLICTDZrmkz: case VPCONFLICTDZrr: case VPCONFLICTDZrrk: case VPCONFLICTDZrrkz: return true; } return false; } bool isMOVNTI(unsigned Opcode) { switch (Opcode) { case MOVNTI_64mr: case MOVNTImr: return true; } return false; } bool isCQO(unsigned Opcode) { return Opcode == CQO; } bool isVROUNDSS(unsigned Opcode) { switch (Opcode) { case VROUNDSSm_Int: case VROUNDSSr_Int: return true; } return false; } bool isMOVNTQ(unsigned Opcode) { return Opcode == MMX_MOVNTQmr; } bool isVAESENC(unsigned Opcode) { switch (Opcode) { case VAESENCYrm: case VAESENCYrr: case VAESENCZ128rm: case VAESENCZ128rr: case VAESENCZ256rm: case VAESENCZ256rr: case VAESENCZrm: case VAESENCZrr: case VAESENCrm: case VAESENCrr: return true; } return false; } bool isVSCATTERPF1QPS(unsigned Opcode) { return Opcode == VSCATTERPF1QPSm; } bool isVPCONFLICTQ(unsigned Opcode) { switch (Opcode) { case VPCONFLICTQZ128rm: case VPCONFLICTQZ128rmb: case VPCONFLICTQZ128rmbk: case VPCONFLICTQZ128rmbkz: case VPCONFLICTQZ128rmk: case VPCONFLICTQZ128rmkz: case VPCONFLICTQZ128rr: case VPCONFLICTQZ128rrk: case VPCONFLICTQZ128rrkz: case VPCONFLICTQZ256rm: case VPCONFLICTQZ256rmb: case VPCONFLICTQZ256rmbk: case VPCONFLICTQZ256rmbkz: case VPCONFLICTQZ256rmk: case VPCONFLICTQZ256rmkz: case VPCONFLICTQZ256rr: case VPCONFLICTQZ256rrk: case VPCONFLICTQZ256rrkz: case VPCONFLICTQZrm: case VPCONFLICTQZrmb: case VPCONFLICTQZrmbk: case VPCONFLICTQZrmbkz: case VPCONFLICTQZrmk: case VPCONFLICTQZrmkz: case VPCONFLICTQZrr: case VPCONFLICTQZrrk: case VPCONFLICTQZrrkz: return true; } return false; } bool isFCMOVNB(unsigned Opcode) { return Opcode == CMOVNB_F; } bool isLZCNT(unsigned Opcode) { switch (Opcode) { case LZCNT16rm: case LZCNT16rr: case LZCNT32rm: case LZCNT32rr: case LZCNT64rm: case LZCNT64rr: return true; } return false; } bool isFCMOVNE(unsigned Opcode) { return Opcode == CMOVNE_F; } bool isRSM(unsigned Opcode) { return Opcode == RSM; } bool isPOPCNT(unsigned Opcode) { switch (Opcode) { case POPCNT16rm: case POPCNT16rr: case POPCNT32rm: case POPCNT32rr: case POPCNT64rm: case POPCNT64rr: return true; } return false; } bool isVSUBSD(unsigned Opcode) { switch (Opcode) { case VSUBSDZrm_Int: case VSUBSDZrm_Intk: case VSUBSDZrm_Intkz: case VSUBSDZrr_Int: case VSUBSDZrr_Intk: case VSUBSDZrr_Intkz: case VSUBSDZrrb_Int: case VSUBSDZrrb_Intk: case VSUBSDZrrb_Intkz: case VSUBSDrm_Int: case VSUBSDrr_Int: return true; } return false; } bool isPOPFD(unsigned Opcode) { return Opcode == POPF32; } bool isVSUBSH(unsigned Opcode) { switch (Opcode) { case VSUBSHZrm_Int: case VSUBSHZrm_Intk: case VSUBSHZrm_Intkz: case VSUBSHZrr_Int: case VSUBSHZrr_Intk: case VSUBSHZrr_Intkz: case VSUBSHZrrb_Int: case VSUBSHZrrb_Intk: case VSUBSHZrrb_Intkz: return true; } return false; } bool isVPANDD(unsigned Opcode) { switch (Opcode) { case VPANDDZ128rm: case VPANDDZ128rmb: case VPANDDZ128rmbk: case VPANDDZ128rmbkz: case VPANDDZ128rmk: case VPANDDZ128rmkz: case VPANDDZ128rr: case VPANDDZ128rrk: case VPANDDZ128rrkz: case VPANDDZ256rm: case VPANDDZ256rmb: case VPANDDZ256rmbk: case VPANDDZ256rmbkz: case VPANDDZ256rmk: case VPANDDZ256rmkz: case VPANDDZ256rr: case VPANDDZ256rrk: case VPANDDZ256rrkz: case VPANDDZrm: case VPANDDZrmb: case VPANDDZrmbk: case VPANDDZrmbkz: case VPANDDZrmk: case VPANDDZrmkz: case VPANDDZrr: case VPANDDZrrk: case VPANDDZrrkz: return true; } return false; } bool isFCMOVNU(unsigned Opcode) { return Opcode == CMOVNP_F; } bool isVMOVHLPS(unsigned Opcode) { switch (Opcode) { case VMOVHLPSZrr: case VMOVHLPSrr: return true; } return false; } bool isPOPFQ(unsigned Opcode) { return Opcode == POPF64; } bool isVPANDN(unsigned Opcode) { switch (Opcode) { case VPANDNYrm: case VPANDNYrr: case VPANDNrm: case VPANDNrr: return true; } return false; } bool isVFMADDSUB213PD(unsigned Opcode) { switch (Opcode) { case VFMADDSUB213PDYm: case VFMADDSUB213PDYr: case VFMADDSUB213PDZ128m: case VFMADDSUB213PDZ128mb: case VFMADDSUB213PDZ128mbk: case VFMADDSUB213PDZ128mbkz: case VFMADDSUB213PDZ128mk: case VFMADDSUB213PDZ128mkz: case VFMADDSUB213PDZ128r: case VFMADDSUB213PDZ128rk: case VFMADDSUB213PDZ128rkz: case VFMADDSUB213PDZ256m: case VFMADDSUB213PDZ256mb: case VFMADDSUB213PDZ256mbk: case VFMADDSUB213PDZ256mbkz: case VFMADDSUB213PDZ256mk: case VFMADDSUB213PDZ256mkz: case VFMADDSUB213PDZ256r: case VFMADDSUB213PDZ256rk: case VFMADDSUB213PDZ256rkz: case VFMADDSUB213PDZm: case VFMADDSUB213PDZmb: case VFMADDSUB213PDZmbk: case VFMADDSUB213PDZmbkz: case VFMADDSUB213PDZmk: case VFMADDSUB213PDZmkz: case VFMADDSUB213PDZr: case VFMADDSUB213PDZrb: case VFMADDSUB213PDZrbk: case VFMADDSUB213PDZrbkz: case VFMADDSUB213PDZrk: case VFMADDSUB213PDZrkz: case VFMADDSUB213PDm: case VFMADDSUB213PDr: return true; } return false; } bool isVCMPPD(unsigned Opcode) { switch (Opcode) { case VCMPPDYrmi: case VCMPPDYrri: case VCMPPDZ128rmbi: case VCMPPDZ128rmbik: case VCMPPDZ128rmi: case VCMPPDZ128rmik: case VCMPPDZ128rri: case VCMPPDZ128rrik: case VCMPPDZ256rmbi: case VCMPPDZ256rmbik: case VCMPPDZ256rmi: case VCMPPDZ256rmik: case VCMPPDZ256rri: case VCMPPDZ256rrik: case VCMPPDZrmbi: case VCMPPDZrmbik: case VCMPPDZrmi: case VCMPPDZrmik: case VCMPPDZrri: case VCMPPDZrrib: case VCMPPDZrribk: case VCMPPDZrrik: case VCMPPDrmi: case VCMPPDrri: return true; } return false; } bool isVFMADDSUB213PH(unsigned Opcode) { switch (Opcode) { case VFMADDSUB213PHZ128m: case VFMADDSUB213PHZ128mb: case VFMADDSUB213PHZ128mbk: case VFMADDSUB213PHZ128mbkz: case VFMADDSUB213PHZ128mk: case VFMADDSUB213PHZ128mkz: case VFMADDSUB213PHZ128r: case VFMADDSUB213PHZ128rk: case VFMADDSUB213PHZ128rkz: case VFMADDSUB213PHZ256m: case VFMADDSUB213PHZ256mb: case VFMADDSUB213PHZ256mbk: case VFMADDSUB213PHZ256mbkz: case VFMADDSUB213PHZ256mk: case VFMADDSUB213PHZ256mkz: case VFMADDSUB213PHZ256r: case VFMADDSUB213PHZ256rk: case VFMADDSUB213PHZ256rkz: case VFMADDSUB213PHZm: case VFMADDSUB213PHZmb: case VFMADDSUB213PHZmbk: case VFMADDSUB213PHZmbkz: case VFMADDSUB213PHZmk: case VFMADDSUB213PHZmkz: case VFMADDSUB213PHZr: case VFMADDSUB213PHZrb: case VFMADDSUB213PHZrbk: case VFMADDSUB213PHZrbkz: case VFMADDSUB213PHZrk: case VFMADDSUB213PHZrkz: return true; } return false; } bool isVSUBSS(unsigned Opcode) { switch (Opcode) { case VSUBSSZrm_Int: case VSUBSSZrm_Intk: case VSUBSSZrm_Intkz: case VSUBSSZrr_Int: case VSUBSSZrr_Intk: case VSUBSSZrr_Intkz: case VSUBSSZrrb_Int: case VSUBSSZrrb_Intk: case VSUBSSZrrb_Intkz: case VSUBSSrm_Int: case VSUBSSrr_Int: return true; } return false; } bool isVPANDQ(unsigned Opcode) { switch (Opcode) { case VPANDQZ128rm: case VPANDQZ128rmb: case VPANDQZ128rmbk: case VPANDQZ128rmbkz: case VPANDQZ128rmk: case VPANDQZ128rmkz: case VPANDQZ128rr: case VPANDQZ128rrk: case VPANDQZ128rrkz: case VPANDQZ256rm: case VPANDQZ256rmb: case VPANDQZ256rmbk: case VPANDQZ256rmbkz: case VPANDQZ256rmk: case VPANDQZ256rmkz: case VPANDQZ256rr: case VPANDQZ256rrk: case VPANDQZ256rrkz: case VPANDQZrm: case VPANDQZrmb: case VPANDQZrmbk: case VPANDQZrmbkz: case VPANDQZrmk: case VPANDQZrmkz: case VPANDQZrr: case VPANDQZrrk: case VPANDQZrrkz: return true; } return false; } bool isVCMPPH(unsigned Opcode) { switch (Opcode) { case VCMPPHZ128rmbi: case VCMPPHZ128rmbik: case VCMPPHZ128rmi: case VCMPPHZ128rmik: case VCMPPHZ128rri: case VCMPPHZ128rrik: case VCMPPHZ256rmbi: case VCMPPHZ256rmbik: case VCMPPHZ256rmi: case VCMPPHZ256rmik: case VCMPPHZ256rri: case VCMPPHZ256rrik: case VCMPPHZrmbi: case VCMPPHZrmbik: case VCMPPHZrmi: case VCMPPHZrmik: case VCMPPHZrri: case VCMPPHZrrib: case VCMPPHZrribk: case VCMPPHZrrik: return true; } return false; } bool isVP4DPWSSD(unsigned Opcode) { switch (Opcode) { case VP4DPWSSDrm: case VP4DPWSSDrmk: case VP4DPWSSDrmkz: return true; } return false; } bool isENDBR32(unsigned Opcode) { return Opcode == ENDBR32; } bool isEMMS(unsigned Opcode) { return Opcode == MMX_EMMS; } bool isXCHG(unsigned Opcode) { switch (Opcode) { case XCHG16ar: case XCHG16rm: case XCHG16rr: case XCHG32ar: case XCHG32rm: case XCHG32rr: case XCHG64ar: case XCHG64rm: case XCHG64rr: case XCHG8rm: case XCHG8rr: return true; } return false; } bool isVFMADDSUB213PS(unsigned Opcode) { switch (Opcode) { case VFMADDSUB213PSYm: case VFMADDSUB213PSYr: case VFMADDSUB213PSZ128m: case VFMADDSUB213PSZ128mb: case VFMADDSUB213PSZ128mbk: case VFMADDSUB213PSZ128mbkz: case VFMADDSUB213PSZ128mk: case VFMADDSUB213PSZ128mkz: case VFMADDSUB213PSZ128r: case VFMADDSUB213PSZ128rk: case VFMADDSUB213PSZ128rkz: case VFMADDSUB213PSZ256m: case VFMADDSUB213PSZ256mb: case VFMADDSUB213PSZ256mbk: case VFMADDSUB213PSZ256mbkz: case VFMADDSUB213PSZ256mk: case VFMADDSUB213PSZ256mkz: case VFMADDSUB213PSZ256r: case VFMADDSUB213PSZ256rk: case VFMADDSUB213PSZ256rkz: case VFMADDSUB213PSZm: case VFMADDSUB213PSZmb: case VFMADDSUB213PSZmbk: case VFMADDSUB213PSZmbkz: case VFMADDSUB213PSZmk: case VFMADDSUB213PSZmkz: case VFMADDSUB213PSZr: case VFMADDSUB213PSZrb: case VFMADDSUB213PSZrbk: case VFMADDSUB213PSZrbkz: case VFMADDSUB213PSZrk: case VFMADDSUB213PSZrkz: case VFMADDSUB213PSm: case VFMADDSUB213PSr: return true; } return false; } bool isTDPBUSD(unsigned Opcode) { return Opcode == TDPBUSD; } bool isRDSEED(unsigned Opcode) { switch (Opcode) { case RDSEED16r: case RDSEED32r: case RDSEED64r: return true; } return false; } bool isVCMPPS(unsigned Opcode) { switch (Opcode) { case VCMPPSYrmi: case VCMPPSYrri: case VCMPPSZ128rmbi: case VCMPPSZ128rmbik: case VCMPPSZ128rmi: case VCMPPSZ128rmik: case VCMPPSZ128rri: case VCMPPSZ128rrik: case VCMPPSZ256rmbi: case VCMPPSZ256rmbik: case VCMPPSZ256rmi: case VCMPPSZ256rmik: case VCMPPSZ256rri: case VCMPPSZ256rrik: case VCMPPSZrmbi: case VCMPPSZrmbik: case VCMPPSZrmi: case VCMPPSZrmik: case VCMPPSZrri: case VCMPPSZrrib: case VCMPPSZrribk: case VCMPPSZrrik: case VCMPPSrmi: case VCMPPSrri: return true; } return false; } bool isVRCP28SD(unsigned Opcode) { switch (Opcode) { case VRCP28SDZm: case VRCP28SDZmk: case VRCP28SDZmkz: case VRCP28SDZr: case VRCP28SDZrb: case VRCP28SDZrbk: case VRCP28SDZrbkz: case VRCP28SDZrk: case VRCP28SDZrkz: return true; } return false; } bool isRDMSRLIST(unsigned Opcode) { return Opcode == RDMSRLIST; } bool isVRCP28SS(unsigned Opcode) { switch (Opcode) { case VRCP28SSZm: case VRCP28SSZmk: case VRCP28SSZmkz: case VRCP28SSZr: case VRCP28SSZrb: case VRCP28SSZrbk: case VRCP28SSZrbkz: case VRCP28SSZrk: case VRCP28SSZrkz: return true; } return false; } bool isV4FMADDSS(unsigned Opcode) { switch (Opcode) { case V4FMADDSSrm: case V4FMADDSSrmk: case V4FMADDSSrmkz: return true; } return false; } bool isAESKEYGENASSIST(unsigned Opcode) { switch (Opcode) { case AESKEYGENASSIST128rm: case AESKEYGENASSIST128rr: return true; } return false; } bool isFUCOMPI(unsigned Opcode) { return Opcode == UCOM_FIPr; } bool isTDPBF16PS(unsigned Opcode) { return Opcode == TDPBF16PS; } bool isFUCOMPP(unsigned Opcode) { return Opcode == UCOM_FPPr; } bool isVFMADDSUB231PD(unsigned Opcode) { switch (Opcode) { case VFMADDSUB231PDYm: case VFMADDSUB231PDYr: case VFMADDSUB231PDZ128m: case VFMADDSUB231PDZ128mb: case VFMADDSUB231PDZ128mbk: case VFMADDSUB231PDZ128mbkz: case VFMADDSUB231PDZ128mk: case VFMADDSUB231PDZ128mkz: case VFMADDSUB231PDZ128r: case VFMADDSUB231PDZ128rk: case VFMADDSUB231PDZ128rkz: case VFMADDSUB231PDZ256m: case VFMADDSUB231PDZ256mb: case VFMADDSUB231PDZ256mbk: case VFMADDSUB231PDZ256mbkz: case VFMADDSUB231PDZ256mk: case VFMADDSUB231PDZ256mkz: case VFMADDSUB231PDZ256r: case VFMADDSUB231PDZ256rk: case VFMADDSUB231PDZ256rkz: case VFMADDSUB231PDZm: case VFMADDSUB231PDZmb: case VFMADDSUB231PDZmbk: case VFMADDSUB231PDZmbkz: case VFMADDSUB231PDZmk: case VFMADDSUB231PDZmkz: case VFMADDSUB231PDZr: case VFMADDSUB231PDZrb: case VFMADDSUB231PDZrbk: case VFMADDSUB231PDZrbkz: case VFMADDSUB231PDZrk: case VFMADDSUB231PDZrkz: case VFMADDSUB231PDm: case VFMADDSUB231PDr: return true; } return false; } bool isVCVTPH2PSX(unsigned Opcode) { switch (Opcode) { case VCVTPH2PSXZ128rm: case VCVTPH2PSXZ128rmb: case VCVTPH2PSXZ128rmbk: case VCVTPH2PSXZ128rmbkz: case VCVTPH2PSXZ128rmk: case VCVTPH2PSXZ128rmkz: case VCVTPH2PSXZ128rr: case VCVTPH2PSXZ128rrk: case VCVTPH2PSXZ128rrkz: case VCVTPH2PSXZ256rm: case VCVTPH2PSXZ256rmb: case VCVTPH2PSXZ256rmbk: case VCVTPH2PSXZ256rmbkz: case VCVTPH2PSXZ256rmk: case VCVTPH2PSXZ256rmkz: case VCVTPH2PSXZ256rr: case VCVTPH2PSXZ256rrk: case VCVTPH2PSXZ256rrkz: case VCVTPH2PSXZrm: case VCVTPH2PSXZrmb: case VCVTPH2PSXZrmbk: case VCVTPH2PSXZrmbkz: case VCVTPH2PSXZrmk: case VCVTPH2PSXZrmkz: case VCVTPH2PSXZrr: case VCVTPH2PSXZrrb: case VCVTPH2PSXZrrbk: case VCVTPH2PSXZrrbkz: case VCVTPH2PSXZrrk: case VCVTPH2PSXZrrkz: return true; } return false; } bool isVFMADDSUB231PH(unsigned Opcode) { switch (Opcode) { case VFMADDSUB231PHZ128m: case VFMADDSUB231PHZ128mb: case VFMADDSUB231PHZ128mbk: case VFMADDSUB231PHZ128mbkz: case VFMADDSUB231PHZ128mk: case VFMADDSUB231PHZ128mkz: case VFMADDSUB231PHZ128r: case VFMADDSUB231PHZ128rk: case VFMADDSUB231PHZ128rkz: case VFMADDSUB231PHZ256m: case VFMADDSUB231PHZ256mb: case VFMADDSUB231PHZ256mbk: case VFMADDSUB231PHZ256mbkz: case VFMADDSUB231PHZ256mk: case VFMADDSUB231PHZ256mkz: case VFMADDSUB231PHZ256r: case VFMADDSUB231PHZ256rk: case VFMADDSUB231PHZ256rkz: case VFMADDSUB231PHZm: case VFMADDSUB231PHZmb: case VFMADDSUB231PHZmbk: case VFMADDSUB231PHZmbkz: case VFMADDSUB231PHZmk: case VFMADDSUB231PHZmkz: case VFMADDSUB231PHZr: case VFMADDSUB231PHZrb: case VFMADDSUB231PHZrbk: case VFMADDSUB231PHZrbkz: case VFMADDSUB231PHZrk: case VFMADDSUB231PHZrkz: return true; } return false; } bool isBLENDVPD(unsigned Opcode) { switch (Opcode) { case BLENDVPDrm0: case BLENDVPDrr0: return true; } return false; } bool isPSWAPD(unsigned Opcode) { switch (Opcode) { case PSWAPDrm: case PSWAPDrr: return true; } return false; } bool isVMSAVE(unsigned Opcode) { switch (Opcode) { case VMSAVE32: case VMSAVE64: return true; } return false; } bool isVFMADDSUB231PS(unsigned Opcode) { switch (Opcode) { case VFMADDSUB231PSYm: case VFMADDSUB231PSYr: case VFMADDSUB231PSZ128m: case VFMADDSUB231PSZ128mb: case VFMADDSUB231PSZ128mbk: case VFMADDSUB231PSZ128mbkz: case VFMADDSUB231PSZ128mk: case VFMADDSUB231PSZ128mkz: case VFMADDSUB231PSZ128r: case VFMADDSUB231PSZ128rk: case VFMADDSUB231PSZ128rkz: case VFMADDSUB231PSZ256m: case VFMADDSUB231PSZ256mb: case VFMADDSUB231PSZ256mbk: case VFMADDSUB231PSZ256mbkz: case VFMADDSUB231PSZ256mk: case VFMADDSUB231PSZ256mkz: case VFMADDSUB231PSZ256r: case VFMADDSUB231PSZ256rk: case VFMADDSUB231PSZ256rkz: case VFMADDSUB231PSZm: case VFMADDSUB231PSZmb: case VFMADDSUB231PSZmbk: case VFMADDSUB231PSZmbkz: case VFMADDSUB231PSZmk: case VFMADDSUB231PSZmkz: case VFMADDSUB231PSZr: case VFMADDSUB231PSZrb: case VFMADDSUB231PSZrbk: case VFMADDSUB231PSZrbkz: case VFMADDSUB231PSZrk: case VFMADDSUB231PSZrkz: case VFMADDSUB231PSm: case VFMADDSUB231PSr: return true; } return false; } bool isTDPBUUD(unsigned Opcode) { return Opcode == TDPBUUD; } bool isVBLENDMPD(unsigned Opcode) { switch (Opcode) { case VBLENDMPDZ128rm: case VBLENDMPDZ128rmb: case VBLENDMPDZ128rmbk: case VBLENDMPDZ128rmbkz: case VBLENDMPDZ128rmk: case VBLENDMPDZ128rmkz: case VBLENDMPDZ128rr: case VBLENDMPDZ128rrk: case VBLENDMPDZ128rrkz: case VBLENDMPDZ256rm: case VBLENDMPDZ256rmb: case VBLENDMPDZ256rmbk: case VBLENDMPDZ256rmbkz: case VBLENDMPDZ256rmk: case VBLENDMPDZ256rmkz: case VBLENDMPDZ256rr: case VBLENDMPDZ256rrk: case VBLENDMPDZ256rrkz: case VBLENDMPDZrm: case VBLENDMPDZrmb: case VBLENDMPDZrmbk: case VBLENDMPDZrmbkz: case VBLENDMPDZrmk: case VBLENDMPDZrmkz: case VBLENDMPDZrr: case VBLENDMPDZrrk: case VBLENDMPDZrrkz: return true; } return false; } bool isPFACC(unsigned Opcode) { switch (Opcode) { case PFACCrm: case PFACCrr: return true; } return false; } bool isBLENDVPS(unsigned Opcode) { switch (Opcode) { case BLENDVPSrm0: case BLENDVPSrr0: return true; } return false; } bool isVPERM2I128(unsigned Opcode) { switch (Opcode) { case VPERM2I128rm: case VPERM2I128rr: return true; } return false; } bool isVPCMPGTB(unsigned Opcode) { switch (Opcode) { case VPCMPGTBYrm: case VPCMPGTBYrr: case VPCMPGTBZ128rm: case VPCMPGTBZ128rmk: case VPCMPGTBZ128rr: case VPCMPGTBZ128rrk: case VPCMPGTBZ256rm: case VPCMPGTBZ256rmk: case VPCMPGTBZ256rr: case VPCMPGTBZ256rrk: case VPCMPGTBZrm: case VPCMPGTBZrmk: case VPCMPGTBZrr: case VPCMPGTBZrrk: case VPCMPGTBrm: case VPCMPGTBrr: return true; } return false; } bool isLLWPCB(unsigned Opcode) { switch (Opcode) { case LLWPCB: case LLWPCB64: return true; } return false; } bool isVPCMPGTD(unsigned Opcode) { switch (Opcode) { case VPCMPGTDYrm: case VPCMPGTDYrr: case VPCMPGTDZ128rm: case VPCMPGTDZ128rmb: case VPCMPGTDZ128rmbk: case VPCMPGTDZ128rmk: case VPCMPGTDZ128rr: case VPCMPGTDZ128rrk: case VPCMPGTDZ256rm: case VPCMPGTDZ256rmb: case VPCMPGTDZ256rmbk: case VPCMPGTDZ256rmk: case VPCMPGTDZ256rr: case VPCMPGTDZ256rrk: case VPCMPGTDZrm: case VPCMPGTDZrmb: case VPCMPGTDZrmbk: case VPCMPGTDZrmk: case VPCMPGTDZrr: case VPCMPGTDZrrk: case VPCMPGTDrm: case VPCMPGTDrr: return true; } return false; } bool isVFMSUBADD213PD(unsigned Opcode) { switch (Opcode) { case VFMSUBADD213PDYm: case VFMSUBADD213PDYr: case VFMSUBADD213PDZ128m: case VFMSUBADD213PDZ128mb: case VFMSUBADD213PDZ128mbk: case VFMSUBADD213PDZ128mbkz: case VFMSUBADD213PDZ128mk: case VFMSUBADD213PDZ128mkz: case VFMSUBADD213PDZ128r: case VFMSUBADD213PDZ128rk: case VFMSUBADD213PDZ128rkz: case VFMSUBADD213PDZ256m: case VFMSUBADD213PDZ256mb: case VFMSUBADD213PDZ256mbk: case VFMSUBADD213PDZ256mbkz: case VFMSUBADD213PDZ256mk: case VFMSUBADD213PDZ256mkz: case VFMSUBADD213PDZ256r: case VFMSUBADD213PDZ256rk: case VFMSUBADD213PDZ256rkz: case VFMSUBADD213PDZm: case VFMSUBADD213PDZmb: case VFMSUBADD213PDZmbk: case VFMSUBADD213PDZmbkz: case VFMSUBADD213PDZmk: case VFMSUBADD213PDZmkz: case VFMSUBADD213PDZr: case VFMSUBADD213PDZrb: case VFMSUBADD213PDZrbk: case VFMSUBADD213PDZrbkz: case VFMSUBADD213PDZrk: case VFMSUBADD213PDZrkz: case VFMSUBADD213PDm: case VFMSUBADD213PDr: return true; } return false; } bool isVFMSUBADD213PH(unsigned Opcode) { switch (Opcode) { case VFMSUBADD213PHZ128m: case VFMSUBADD213PHZ128mb: case VFMSUBADD213PHZ128mbk: case VFMSUBADD213PHZ128mbkz: case VFMSUBADD213PHZ128mk: case VFMSUBADD213PHZ128mkz: case VFMSUBADD213PHZ128r: case VFMSUBADD213PHZ128rk: case VFMSUBADD213PHZ128rkz: case VFMSUBADD213PHZ256m: case VFMSUBADD213PHZ256mb: case VFMSUBADD213PHZ256mbk: case VFMSUBADD213PHZ256mbkz: case VFMSUBADD213PHZ256mk: case VFMSUBADD213PHZ256mkz: case VFMSUBADD213PHZ256r: case VFMSUBADD213PHZ256rk: case VFMSUBADD213PHZ256rkz: case VFMSUBADD213PHZm: case VFMSUBADD213PHZmb: case VFMSUBADD213PHZmbk: case VFMSUBADD213PHZmbkz: case VFMSUBADD213PHZmk: case VFMSUBADD213PHZmkz: case VFMSUBADD213PHZr: case VFMSUBADD213PHZrb: case VFMSUBADD213PHZrbk: case VFMSUBADD213PHZrbkz: case VFMSUBADD213PHZrk: case VFMSUBADD213PHZrkz: return true; } return false; } bool isVBLENDMPS(unsigned Opcode) { switch (Opcode) { case VBLENDMPSZ128rm: case VBLENDMPSZ128rmb: case VBLENDMPSZ128rmbk: case VBLENDMPSZ128rmbkz: case VBLENDMPSZ128rmk: case VBLENDMPSZ128rmkz: case VBLENDMPSZ128rr: case VBLENDMPSZ128rrk: case VBLENDMPSZ128rrkz: case VBLENDMPSZ256rm: case VBLENDMPSZ256rmb: case VBLENDMPSZ256rmbk: case VBLENDMPSZ256rmbkz: case VBLENDMPSZ256rmk: case VBLENDMPSZ256rmkz: case VBLENDMPSZ256rr: case VBLENDMPSZ256rrk: case VBLENDMPSZ256rrkz: case VBLENDMPSZrm: case VBLENDMPSZrmb: case VBLENDMPSZrmbk: case VBLENDMPSZrmbkz: case VBLENDMPSZrmk: case VBLENDMPSZrmkz: case VBLENDMPSZrr: case VBLENDMPSZrrk: case VBLENDMPSZrrkz: return true; } return false; } bool isVCMPSD(unsigned Opcode) { switch (Opcode) { case VCMPSDZrm_Int: case VCMPSDZrm_Intk: case VCMPSDZrr_Int: case VCMPSDZrr_Intk: case VCMPSDZrrb_Int: case VCMPSDZrrb_Intk: case VCMPSDrm_Int: case VCMPSDrr_Int: return true; } return false; } bool isVCMPSH(unsigned Opcode) { switch (Opcode) { case VCMPSHZrm_Int: case VCMPSHZrm_Intk: case VCMPSHZrr_Int: case VCMPSHZrr_Intk: case VCMPSHZrrb_Int: case VCMPSHZrrb_Intk: return true; } return false; } bool isVPCMPGTQ(unsigned Opcode) { switch (Opcode) { case VPCMPGTQYrm: case VPCMPGTQYrr: case VPCMPGTQZ128rm: case VPCMPGTQZ128rmb: case VPCMPGTQZ128rmbk: case VPCMPGTQZ128rmk: case VPCMPGTQZ128rr: case VPCMPGTQZ128rrk: case VPCMPGTQZ256rm: case VPCMPGTQZ256rmb: case VPCMPGTQZ256rmbk: case VPCMPGTQZ256rmk: case VPCMPGTQZ256rr: case VPCMPGTQZ256rrk: case VPCMPGTQZrm: case VPCMPGTQZrmb: case VPCMPGTQZrmbk: case VPCMPGTQZrmk: case VPCMPGTQZrr: case VPCMPGTQZrrk: case VPCMPGTQrm: case VPCMPGTQrr: return true; } return false; } bool isANDNPD(unsigned Opcode) { switch (Opcode) { case ANDNPDrm: case ANDNPDrr: return true; } return false; } bool isENDBR64(unsigned Opcode) { return Opcode == ENDBR64; } bool isVFMSUBADD213PS(unsigned Opcode) { switch (Opcode) { case VFMSUBADD213PSYm: case VFMSUBADD213PSYr: case VFMSUBADD213PSZ128m: case VFMSUBADD213PSZ128mb: case VFMSUBADD213PSZ128mbk: case VFMSUBADD213PSZ128mbkz: case VFMSUBADD213PSZ128mk: case VFMSUBADD213PSZ128mkz: case VFMSUBADD213PSZ128r: case VFMSUBADD213PSZ128rk: case VFMSUBADD213PSZ128rkz: case VFMSUBADD213PSZ256m: case VFMSUBADD213PSZ256mb: case VFMSUBADD213PSZ256mbk: case VFMSUBADD213PSZ256mbkz: case VFMSUBADD213PSZ256mk: case VFMSUBADD213PSZ256mkz: case VFMSUBADD213PSZ256r: case VFMSUBADD213PSZ256rk: case VFMSUBADD213PSZ256rkz: case VFMSUBADD213PSZm: case VFMSUBADD213PSZmb: case VFMSUBADD213PSZmbk: case VFMSUBADD213PSZmbkz: case VFMSUBADD213PSZmk: case VFMSUBADD213PSZmkz: case VFMSUBADD213PSZr: case VFMSUBADD213PSZrb: case VFMSUBADD213PSZrbk: case VFMSUBADD213PSZrbkz: case VFMSUBADD213PSZrk: case VFMSUBADD213PSZrkz: case VFMSUBADD213PSm: case VFMSUBADD213PSr: return true; } return false; } bool isVPCMPGTW(unsigned Opcode) { switch (Opcode) { case VPCMPGTWYrm: case VPCMPGTWYrr: case VPCMPGTWZ128rm: case VPCMPGTWZ128rmk: case VPCMPGTWZ128rr: case VPCMPGTWZ128rrk: case VPCMPGTWZ256rm: case VPCMPGTWZ256rmk: case VPCMPGTWZ256rr: case VPCMPGTWZ256rrk: case VPCMPGTWZrm: case VPCMPGTWZrmk: case VPCMPGTWZrr: case VPCMPGTWZrrk: case VPCMPGTWrm: case VPCMPGTWrr: return true; } return false; } bool isVCMPSS(unsigned Opcode) { switch (Opcode) { case VCMPSSZrm_Int: case VCMPSSZrm_Intk: case VCMPSSZrr_Int: case VCMPSSZrr_Intk: case VCMPSSZrrb_Int: case VCMPSSZrrb_Intk: case VCMPSSrm_Int: case VCMPSSrr_Int: return true; } return false; } bool isPFADD(unsigned Opcode) { switch (Opcode) { case PFADDrm: case PFADDrr: return true; } return false; } bool isVMOVLHPS(unsigned Opcode) { switch (Opcode) { case VMOVLHPSZrr: case VMOVLHPSrr: return true; } return false; } bool isVPMINSD(unsigned Opcode) { switch (Opcode) { case VPMINSDYrm: case VPMINSDYrr: case VPMINSDZ128rm: case VPMINSDZ128rmb: case VPMINSDZ128rmbk: case VPMINSDZ128rmbkz: case VPMINSDZ128rmk: case VPMINSDZ128rmkz: case VPMINSDZ128rr: case VPMINSDZ128rrk: case VPMINSDZ128rrkz: case VPMINSDZ256rm: case VPMINSDZ256rmb: case VPMINSDZ256rmbk: case VPMINSDZ256rmbkz: case VPMINSDZ256rmk: case VPMINSDZ256rmkz: case VPMINSDZ256rr: case VPMINSDZ256rrk: case VPMINSDZ256rrkz: case VPMINSDZrm: case VPMINSDZrmb: case VPMINSDZrmbk: case VPMINSDZrmbkz: case VPMINSDZrmk: case VPMINSDZrmkz: case VPMINSDZrr: case VPMINSDZrrk: case VPMINSDZrrkz: case VPMINSDrm: case VPMINSDrr: return true; } return false; } bool isVPMINSB(unsigned Opcode) { switch (Opcode) { case VPMINSBYrm: case VPMINSBYrr: case VPMINSBZ128rm: case VPMINSBZ128rmk: case VPMINSBZ128rmkz: case VPMINSBZ128rr: case VPMINSBZ128rrk: case VPMINSBZ128rrkz: case VPMINSBZ256rm: case VPMINSBZ256rmk: case VPMINSBZ256rmkz: case VPMINSBZ256rr: case VPMINSBZ256rrk: case VPMINSBZ256rrkz: case VPMINSBZrm: case VPMINSBZrmk: case VPMINSBZrmkz: case VPMINSBZrr: case VPMINSBZrrk: case VPMINSBZrrkz: case VPMINSBrm: case VPMINSBrr: return true; } return false; } bool isANDNPS(unsigned Opcode) { switch (Opcode) { case ANDNPSrm: case ANDNPSrr: return true; } return false; } bool isPHADDSW(unsigned Opcode) { switch (Opcode) { case MMX_PHADDSWrm: case MMX_PHADDSWrr: case PHADDSWrm: case PHADDSWrr: return true; } return false; } bool isVPSLLVD(unsigned Opcode) { switch (Opcode) { case VPSLLVDYrm: case VPSLLVDYrr: case VPSLLVDZ128rm: case VPSLLVDZ128rmb: case VPSLLVDZ128rmbk: case VPSLLVDZ128rmbkz: case VPSLLVDZ128rmk: case VPSLLVDZ128rmkz: case VPSLLVDZ128rr: case VPSLLVDZ128rrk: case VPSLLVDZ128rrkz: case VPSLLVDZ256rm: case VPSLLVDZ256rmb: case VPSLLVDZ256rmbk: case VPSLLVDZ256rmbkz: case VPSLLVDZ256rmk: case VPSLLVDZ256rmkz: case VPSLLVDZ256rr: case VPSLLVDZ256rrk: case VPSLLVDZ256rrkz: case VPSLLVDZrm: case VPSLLVDZrmb: case VPSLLVDZrmbk: case VPSLLVDZrmbkz: case VPSLLVDZrmk: case VPSLLVDZrmkz: case VPSLLVDZrr: case VPSLLVDZrrk: case VPSLLVDZrrkz: case VPSLLVDrm: case VPSLLVDrr: return true; } return false; } bool isVDIVPD(unsigned Opcode) { switch (Opcode) { case VDIVPDYrm: case VDIVPDYrr: case VDIVPDZ128rm: case VDIVPDZ128rmb: case VDIVPDZ128rmbk: case VDIVPDZ128rmbkz: case VDIVPDZ128rmk: case VDIVPDZ128rmkz: case VDIVPDZ128rr: case VDIVPDZ128rrk: case VDIVPDZ128rrkz: case VDIVPDZ256rm: case VDIVPDZ256rmb: case VDIVPDZ256rmbk: case VDIVPDZ256rmbkz: case VDIVPDZ256rmk: case VDIVPDZ256rmkz: case VDIVPDZ256rr: case VDIVPDZ256rrk: case VDIVPDZ256rrkz: case VDIVPDZrm: case VDIVPDZrmb: case VDIVPDZrmbk: case VDIVPDZrmbkz: case VDIVPDZrmk: case VDIVPDZrmkz: case VDIVPDZrr: case VDIVPDZrrb: case VDIVPDZrrbk: case VDIVPDZrrbkz: case VDIVPDZrrk: case VDIVPDZrrkz: case VDIVPDrm: case VDIVPDrr: return true; } return false; } bool isVPMINSQ(unsigned Opcode) { switch (Opcode) { case VPMINSQZ128rm: case VPMINSQZ128rmb: case VPMINSQZ128rmbk: case VPMINSQZ128rmbkz: case VPMINSQZ128rmk: case VPMINSQZ128rmkz: case VPMINSQZ128rr: case VPMINSQZ128rrk: case VPMINSQZ128rrkz: case VPMINSQZ256rm: case VPMINSQZ256rmb: case VPMINSQZ256rmbk: case VPMINSQZ256rmbkz: case VPMINSQZ256rmk: case VPMINSQZ256rmkz: case VPMINSQZ256rr: case VPMINSQZ256rrk: case VPMINSQZ256rrkz: case VPMINSQZrm: case VPMINSQZrmb: case VPMINSQZrmbk: case VPMINSQZrmbkz: case VPMINSQZrmk: case VPMINSQZrmkz: case VPMINSQZrr: case VPMINSQZrrk: case VPMINSQZrrkz: return true; } return false; } bool isVDIVPH(unsigned Opcode) { switch (Opcode) { case VDIVPHZ128rm: case VDIVPHZ128rmb: case VDIVPHZ128rmbk: case VDIVPHZ128rmbkz: case VDIVPHZ128rmk: case VDIVPHZ128rmkz: case VDIVPHZ128rr: case VDIVPHZ128rrk: case VDIVPHZ128rrkz: case VDIVPHZ256rm: case VDIVPHZ256rmb: case VDIVPHZ256rmbk: case VDIVPHZ256rmbkz: case VDIVPHZ256rmk: case VDIVPHZ256rmkz: case VDIVPHZ256rr: case VDIVPHZ256rrk: case VDIVPHZ256rrkz: case VDIVPHZrm: case VDIVPHZrmb: case VDIVPHZrmbk: case VDIVPHZrmbkz: case VDIVPHZrmk: case VDIVPHZrmkz: case VDIVPHZrr: case VDIVPHZrrb: case VDIVPHZrrbk: case VDIVPHZrrbkz: case VDIVPHZrrk: case VDIVPHZrrkz: return true; } return false; } bool isVPMINSW(unsigned Opcode) { switch (Opcode) { case VPMINSWYrm: case VPMINSWYrr: case VPMINSWZ128rm: case VPMINSWZ128rmk: case VPMINSWZ128rmkz: case VPMINSWZ128rr: case VPMINSWZ128rrk: case VPMINSWZ128rrkz: case VPMINSWZ256rm: case VPMINSWZ256rmk: case VPMINSWZ256rmkz: case VPMINSWZ256rr: case VPMINSWZ256rrk: case VPMINSWZ256rrkz: case VPMINSWZrm: case VPMINSWZrmk: case VPMINSWZrmkz: case VPMINSWZrr: case VPMINSWZrrk: case VPMINSWZrrkz: case VPMINSWrm: case VPMINSWrr: return true; } return false; } bool isVFNMSUBPD(unsigned Opcode) { switch (Opcode) { case VFNMSUBPD4Ymr: case VFNMSUBPD4Yrm: case VFNMSUBPD4Yrr: case VFNMSUBPD4Yrr_REV: case VFNMSUBPD4mr: case VFNMSUBPD4rm: case VFNMSUBPD4rr: case VFNMSUBPD4rr_REV: return true; } return false; } bool isLWPVAL(unsigned Opcode) { switch (Opcode) { case LWPVAL32rmi: case LWPVAL32rri: case LWPVAL64rmi: case LWPVAL64rri: return true; } return false; } bool isAESDEC128KL(unsigned Opcode) { return Opcode == AESDEC128KL; } bool isFIADD(unsigned Opcode) { switch (Opcode) { case ADD_FI16m: case ADD_FI32m: return true; } return false; } bool isVPAND(unsigned Opcode) { switch (Opcode) { case VPANDYrm: case VPANDYrr: case VPANDrm: case VPANDrr: return true; } return false; } bool isMOVSLDUP(unsigned Opcode) { switch (Opcode) { case MOVSLDUPrm: case MOVSLDUPrr: return true; } return false; } bool isVPSLLVQ(unsigned Opcode) { switch (Opcode) { case VPSLLVQYrm: case VPSLLVQYrr: case VPSLLVQZ128rm: case VPSLLVQZ128rmb: case VPSLLVQZ128rmbk: case VPSLLVQZ128rmbkz: case VPSLLVQZ128rmk: case VPSLLVQZ128rmkz: case VPSLLVQZ128rr: case VPSLLVQZ128rrk: case VPSLLVQZ128rrkz: case VPSLLVQZ256rm: case VPSLLVQZ256rmb: case VPSLLVQZ256rmbk: case VPSLLVQZ256rmbkz: case VPSLLVQZ256rmk: case VPSLLVQZ256rmkz: case VPSLLVQZ256rr: case VPSLLVQZ256rrk: case VPSLLVQZ256rrkz: case VPSLLVQZrm: case VPSLLVQZrmb: case VPSLLVQZrmbk: case VPSLLVQZrmbkz: case VPSLLVQZrmk: case VPSLLVQZrmkz: case VPSLLVQZrr: case VPSLLVQZrrk: case VPSLLVQZrrkz: case VPSLLVQrm: case VPSLLVQrr: return true; } return false; } bool isVDIVPS(unsigned Opcode) { switch (Opcode) { case VDIVPSYrm: case VDIVPSYrr: case VDIVPSZ128rm: case VDIVPSZ128rmb: case VDIVPSZ128rmbk: case VDIVPSZ128rmbkz: case VDIVPSZ128rmk: case VDIVPSZ128rmkz: case VDIVPSZ128rr: case VDIVPSZ128rrk: case VDIVPSZ128rrkz: case VDIVPSZ256rm: case VDIVPSZ256rmb: case VDIVPSZ256rmbk: case VDIVPSZ256rmbkz: case VDIVPSZ256rmk: case VDIVPSZ256rmkz: case VDIVPSZ256rr: case VDIVPSZ256rrk: case VDIVPSZ256rrkz: case VDIVPSZrm: case VDIVPSZrmb: case VDIVPSZrmbk: case VDIVPSZrmbkz: case VDIVPSZrmk: case VDIVPSZrmkz: case VDIVPSZrr: case VDIVPSZrrb: case VDIVPSZrrbk: case VDIVPSZrrbkz: case VDIVPSZrrk: case VDIVPSZrrkz: case VDIVPSrm: case VDIVPSrr: return true; } return false; } bool isCWD(unsigned Opcode) { return Opcode == CWD; } bool isVPSLLVW(unsigned Opcode) { switch (Opcode) { case VPSLLVWZ128rm: case VPSLLVWZ128rmk: case VPSLLVWZ128rmkz: case VPSLLVWZ128rr: case VPSLLVWZ128rrk: case VPSLLVWZ128rrkz: case VPSLLVWZ256rm: case VPSLLVWZ256rmk: case VPSLLVWZ256rmkz: case VPSLLVWZ256rr: case VPSLLVWZ256rrk: case VPSLLVWZ256rrkz: case VPSLLVWZrm: case VPSLLVWZrmk: case VPSLLVWZrmkz: case VPSLLVWZrr: case VPSLLVWZrrk: case VPSLLVWZrrkz: return true; } return false; } bool isCWDE(unsigned Opcode) { return Opcode == CWDE; } bool isVFNMSUBPS(unsigned Opcode) { switch (Opcode) { case VFNMSUBPS4Ymr: case VFNMSUBPS4Yrm: case VFNMSUBPS4Yrr: case VFNMSUBPS4Yrr_REV: case VFNMSUBPS4mr: case VFNMSUBPS4rm: case VFNMSUBPS4rr: case VFNMSUBPS4rr_REV: return true; } return false; } bool isVFMSUBADD231PD(unsigned Opcode) { switch (Opcode) { case VFMSUBADD231PDYm: case VFMSUBADD231PDYr: case VFMSUBADD231PDZ128m: case VFMSUBADD231PDZ128mb: case VFMSUBADD231PDZ128mbk: case VFMSUBADD231PDZ128mbkz: case VFMSUBADD231PDZ128mk: case VFMSUBADD231PDZ128mkz: case VFMSUBADD231PDZ128r: case VFMSUBADD231PDZ128rk: case VFMSUBADD231PDZ128rkz: case VFMSUBADD231PDZ256m: case VFMSUBADD231PDZ256mb: case VFMSUBADD231PDZ256mbk: case VFMSUBADD231PDZ256mbkz: case VFMSUBADD231PDZ256mk: case VFMSUBADD231PDZ256mkz: case VFMSUBADD231PDZ256r: case VFMSUBADD231PDZ256rk: case VFMSUBADD231PDZ256rkz: case VFMSUBADD231PDZm: case VFMSUBADD231PDZmb: case VFMSUBADD231PDZmbk: case VFMSUBADD231PDZmbkz: case VFMSUBADD231PDZmk: case VFMSUBADD231PDZmkz: case VFMSUBADD231PDZr: case VFMSUBADD231PDZrb: case VFMSUBADD231PDZrbk: case VFMSUBADD231PDZrbkz: case VFMSUBADD231PDZrk: case VFMSUBADD231PDZrkz: case VFMSUBADD231PDm: case VFMSUBADD231PDr: return true; } return false; } bool isVPDPBUSD(unsigned Opcode) { switch (Opcode) { case VPDPBUSDYrm: case VPDPBUSDYrr: case VPDPBUSDZ128m: case VPDPBUSDZ128mb: case VPDPBUSDZ128mbk: case VPDPBUSDZ128mbkz: case VPDPBUSDZ128mk: case VPDPBUSDZ128mkz: case VPDPBUSDZ128r: case VPDPBUSDZ128rk: case VPDPBUSDZ128rkz: case VPDPBUSDZ256m: case VPDPBUSDZ256mb: case VPDPBUSDZ256mbk: case VPDPBUSDZ256mbkz: case VPDPBUSDZ256mk: case VPDPBUSDZ256mkz: case VPDPBUSDZ256r: case VPDPBUSDZ256rk: case VPDPBUSDZ256rkz: case VPDPBUSDZm: case VPDPBUSDZmb: case VPDPBUSDZmbk: case VPDPBUSDZmbkz: case VPDPBUSDZmk: case VPDPBUSDZmkz: case VPDPBUSDZr: case VPDPBUSDZrk: case VPDPBUSDZrkz: case VPDPBUSDrm: case VPDPBUSDrr: return true; } return false; } bool isVFMSUBADD231PH(unsigned Opcode) { switch (Opcode) { case VFMSUBADD231PHZ128m: case VFMSUBADD231PHZ128mb: case VFMSUBADD231PHZ128mbk: case VFMSUBADD231PHZ128mbkz: case VFMSUBADD231PHZ128mk: case VFMSUBADD231PHZ128mkz: case VFMSUBADD231PHZ128r: case VFMSUBADD231PHZ128rk: case VFMSUBADD231PHZ128rkz: case VFMSUBADD231PHZ256m: case VFMSUBADD231PHZ256mb: case VFMSUBADD231PHZ256mbk: case VFMSUBADD231PHZ256mbkz: case VFMSUBADD231PHZ256mk: case VFMSUBADD231PHZ256mkz: case VFMSUBADD231PHZ256r: case VFMSUBADD231PHZ256rk: case VFMSUBADD231PHZ256rkz: case VFMSUBADD231PHZm: case VFMSUBADD231PHZmb: case VFMSUBADD231PHZmbk: case VFMSUBADD231PHZmbkz: case VFMSUBADD231PHZmk: case VFMSUBADD231PHZmkz: case VFMSUBADD231PHZr: case VFMSUBADD231PHZrb: case VFMSUBADD231PHZrbk: case VFMSUBADD231PHZrbkz: case VFMSUBADD231PHZrk: case VFMSUBADD231PHZrkz: return true; } return false; } bool isPFNACC(unsigned Opcode) { switch (Opcode) { case PFNACCrm: case PFNACCrr: return true; } return false; } bool isPFRSQRT(unsigned Opcode) { switch (Opcode) { case PFRSQRTrm: case PFRSQRTrr: return true; } return false; } bool isVPMACSDD(unsigned Opcode) { switch (Opcode) { case VPMACSDDrm: case VPMACSDDrr: return true; } return false; } bool isVFMSUBADD231PS(unsigned Opcode) { switch (Opcode) { case VFMSUBADD231PSYm: case VFMSUBADD231PSYr: case VFMSUBADD231PSZ128m: case VFMSUBADD231PSZ128mb: case VFMSUBADD231PSZ128mbk: case VFMSUBADD231PSZ128mbkz: case VFMSUBADD231PSZ128mk: case VFMSUBADD231PSZ128mkz: case VFMSUBADD231PSZ128r: case VFMSUBADD231PSZ128rk: case VFMSUBADD231PSZ128rkz: case VFMSUBADD231PSZ256m: case VFMSUBADD231PSZ256mb: case VFMSUBADD231PSZ256mbk: case VFMSUBADD231PSZ256mbkz: case VFMSUBADD231PSZ256mk: case VFMSUBADD231PSZ256mkz: case VFMSUBADD231PSZ256r: case VFMSUBADD231PSZ256rk: case VFMSUBADD231PSZ256rkz: case VFMSUBADD231PSZm: case VFMSUBADD231PSZmb: case VFMSUBADD231PSZmbk: case VFMSUBADD231PSZmbkz: case VFMSUBADD231PSZmk: case VFMSUBADD231PSZmkz: case VFMSUBADD231PSZr: case VFMSUBADD231PSZrb: case VFMSUBADD231PSZrbk: case VFMSUBADD231PSZrbkz: case VFMSUBADD231PSZrk: case VFMSUBADD231PSZrkz: case VFMSUBADD231PSm: case VFMSUBADD231PSr: return true; } return false; } bool isFRSTOR(unsigned Opcode) { return Opcode == FRSTORm; } bool isVPMINUB(unsigned Opcode) { switch (Opcode) { case VPMINUBYrm: case VPMINUBYrr: case VPMINUBZ128rm: case VPMINUBZ128rmk: case VPMINUBZ128rmkz: case VPMINUBZ128rr: case VPMINUBZ128rrk: case VPMINUBZ128rrkz: case VPMINUBZ256rm: case VPMINUBZ256rmk: case VPMINUBZ256rmkz: case VPMINUBZ256rr: case VPMINUBZ256rrk: case VPMINUBZ256rrkz: case VPMINUBZrm: case VPMINUBZrmk: case VPMINUBZrmkz: case VPMINUBZrr: case VPMINUBZrrk: case VPMINUBZrrkz: case VPMINUBrm: case VPMINUBrr: return true; } return false; } bool isVPMINUD(unsigned Opcode) { switch (Opcode) { case VPMINUDYrm: case VPMINUDYrr: case VPMINUDZ128rm: case VPMINUDZ128rmb: case VPMINUDZ128rmbk: case VPMINUDZ128rmbkz: case VPMINUDZ128rmk: case VPMINUDZ128rmkz: case VPMINUDZ128rr: case VPMINUDZ128rrk: case VPMINUDZ128rrkz: case VPMINUDZ256rm: case VPMINUDZ256rmb: case VPMINUDZ256rmbk: case VPMINUDZ256rmbkz: case VPMINUDZ256rmk: case VPMINUDZ256rmkz: case VPMINUDZ256rr: case VPMINUDZ256rrk: case VPMINUDZ256rrkz: case VPMINUDZrm: case VPMINUDZrmb: case VPMINUDZrmbk: case VPMINUDZrmbkz: case VPMINUDZrmk: case VPMINUDZrmkz: case VPMINUDZrr: case VPMINUDZrrk: case VPMINUDZrrkz: case VPMINUDrm: case VPMINUDrr: return true; } return false; } bool isKUNPCKBW(unsigned Opcode) { return Opcode == KUNPCKBWrr; } bool isDPPD(unsigned Opcode) { switch (Opcode) { case DPPDrmi: case DPPDrri: return true; } return false; } bool isVAESIMC(unsigned Opcode) { switch (Opcode) { case VAESIMCrm: case VAESIMCrr: return true; } return false; } bool isPTEST(unsigned Opcode) { switch (Opcode) { case PTESTrm: case PTESTrr: return true; } return false; } bool isVPMINUQ(unsigned Opcode) { switch (Opcode) { case VPMINUQZ128rm: case VPMINUQZ128rmb: case VPMINUQZ128rmbk: case VPMINUQZ128rmbkz: case VPMINUQZ128rmk: case VPMINUQZ128rmkz: case VPMINUQZ128rr: case VPMINUQZ128rrk: case VPMINUQZ128rrkz: case VPMINUQZ256rm: case VPMINUQZ256rmb: case VPMINUQZ256rmbk: case VPMINUQZ256rmbkz: case VPMINUQZ256rmk: case VPMINUQZ256rmkz: case VPMINUQZ256rr: case VPMINUQZ256rrk: case VPMINUQZ256rrkz: case VPMINUQZrm: case VPMINUQZrmb: case VPMINUQZrmbk: case VPMINUQZrmbkz: case VPMINUQZrmk: case VPMINUQZrmkz: case VPMINUQZrr: case VPMINUQZrrk: case VPMINUQZrrkz: return true; } return false; } bool isUCOMISD(unsigned Opcode) { switch (Opcode) { case UCOMISDrm: case UCOMISDrr: return true; } return false; } bool isVPMINUW(unsigned Opcode) { switch (Opcode) { case VPMINUWYrm: case VPMINUWYrr: case VPMINUWZ128rm: case VPMINUWZ128rmk: case VPMINUWZ128rmkz: case VPMINUWZ128rr: case VPMINUWZ128rrk: case VPMINUWZ128rrkz: case VPMINUWZ256rm: case VPMINUWZ256rmk: case VPMINUWZ256rmkz: case VPMINUWZ256rr: case VPMINUWZ256rrk: case VPMINUWZ256rrkz: case VPMINUWZrm: case VPMINUWZrmk: case VPMINUWZrmkz: case VPMINUWZrr: case VPMINUWZrrk: case VPMINUWZrrkz: case VPMINUWrm: case VPMINUWrr: return true; } return false; } bool isDPPS(unsigned Opcode) { switch (Opcode) { case DPPSrmi: case DPPSrri: return true; } return false; } bool isFLDLG2(unsigned Opcode) { return Opcode == FLDLG2; } bool isVPMOVD2M(unsigned Opcode) { switch (Opcode) { case VPMOVD2MZ128rr: case VPMOVD2MZ256rr: case VPMOVD2MZrr: return true; } return false; } bool isVMOVAPD(unsigned Opcode) { switch (Opcode) { case VMOVAPDYmr: case VMOVAPDYrm: case VMOVAPDYrr: case VMOVAPDYrr_REV: case VMOVAPDZ128mr: case VMOVAPDZ128mrk: case VMOVAPDZ128rm: case VMOVAPDZ128rmk: case VMOVAPDZ128rmkz: case VMOVAPDZ128rr: case VMOVAPDZ128rr_REV: case VMOVAPDZ128rrk: case VMOVAPDZ128rrk_REV: case VMOVAPDZ128rrkz: case VMOVAPDZ128rrkz_REV: case VMOVAPDZ256mr: case VMOVAPDZ256mrk: case VMOVAPDZ256rm: case VMOVAPDZ256rmk: case VMOVAPDZ256rmkz: case VMOVAPDZ256rr: case VMOVAPDZ256rr_REV: case VMOVAPDZ256rrk: case VMOVAPDZ256rrk_REV: case VMOVAPDZ256rrkz: case VMOVAPDZ256rrkz_REV: case VMOVAPDZmr: case VMOVAPDZmrk: case VMOVAPDZrm: case VMOVAPDZrmk: case VMOVAPDZrmkz: case VMOVAPDZrr: case VMOVAPDZrr_REV: case VMOVAPDZrrk: case VMOVAPDZrrk_REV: case VMOVAPDZrrkz: case VMOVAPDZrrkz_REV: case VMOVAPDmr: case VMOVAPDrm: case VMOVAPDrr: case VMOVAPDrr_REV: return true; } return false; } bool isVPSRLD(unsigned Opcode) { switch (Opcode) { case VPSRLDYri: case VPSRLDYrm: case VPSRLDYrr: case VPSRLDZ128mbi: case VPSRLDZ128mbik: case VPSRLDZ128mbikz: case VPSRLDZ128mi: case VPSRLDZ128mik: case VPSRLDZ128mikz: case VPSRLDZ128ri: case VPSRLDZ128rik: case VPSRLDZ128rikz: case VPSRLDZ128rm: case VPSRLDZ128rmk: case VPSRLDZ128rmkz: case VPSRLDZ128rr: case VPSRLDZ128rrk: case VPSRLDZ128rrkz: case VPSRLDZ256mbi: case VPSRLDZ256mbik: case VPSRLDZ256mbikz: case VPSRLDZ256mi: case VPSRLDZ256mik: case VPSRLDZ256mikz: case VPSRLDZ256ri: case VPSRLDZ256rik: case VPSRLDZ256rikz: case VPSRLDZ256rm: case VPSRLDZ256rmk: case VPSRLDZ256rmkz: case VPSRLDZ256rr: case VPSRLDZ256rrk: case VPSRLDZ256rrkz: case VPSRLDZmbi: case VPSRLDZmbik: case VPSRLDZmbikz: case VPSRLDZmi: case VPSRLDZmik: case VPSRLDZmikz: case VPSRLDZri: case VPSRLDZrik: case VPSRLDZrikz: case VPSRLDZrm: case VPSRLDZrmk: case VPSRLDZrmkz: case VPSRLDZrr: case VPSRLDZrrk: case VPSRLDZrrkz: case VPSRLDri: case VPSRLDrm: case VPSRLDrr: return true; } return false; } bool isTLBSYNC(unsigned Opcode) { return Opcode == TLBSYNC; } bool isXLATB(unsigned Opcode) { return Opcode == XLAT; } bool isUCOMISS(unsigned Opcode) { switch (Opcode) { case UCOMISSrm: case UCOMISSrr: return true; } return false; } bool isVPSRLQ(unsigned Opcode) { switch (Opcode) { case VPSRLQYri: case VPSRLQYrm: case VPSRLQYrr: case VPSRLQZ128mbi: case VPSRLQZ128mbik: case VPSRLQZ128mbikz: case VPSRLQZ128mi: case VPSRLQZ128mik: case VPSRLQZ128mikz: case VPSRLQZ128ri: case VPSRLQZ128rik: case VPSRLQZ128rikz: case VPSRLQZ128rm: case VPSRLQZ128rmk: case VPSRLQZ128rmkz: case VPSRLQZ128rr: case VPSRLQZ128rrk: case VPSRLQZ128rrkz: case VPSRLQZ256mbi: case VPSRLQZ256mbik: case VPSRLQZ256mbikz: case VPSRLQZ256mi: case VPSRLQZ256mik: case VPSRLQZ256mikz: case VPSRLQZ256ri: case VPSRLQZ256rik: case VPSRLQZ256rikz: case VPSRLQZ256rm: case VPSRLQZ256rmk: case VPSRLQZ256rmkz: case VPSRLQZ256rr: case VPSRLQZ256rrk: case VPSRLQZ256rrkz: case VPSRLQZmbi: case VPSRLQZmbik: case VPSRLQZmbikz: case VPSRLQZmi: case VPSRLQZmik: case VPSRLQZmikz: case VPSRLQZri: case VPSRLQZrik: case VPSRLQZrikz: case VPSRLQZrm: case VPSRLQZrmk: case VPSRLQZrmkz: case VPSRLQZrr: case VPSRLQZrrk: case VPSRLQZrrkz: case VPSRLQri: case VPSRLQrm: case VPSRLQrr: return true; } return false; } bool isPDEP(unsigned Opcode) { switch (Opcode) { case PDEP32rm: case PDEP32rr: case PDEP64rm: case PDEP64rr: return true; } return false; } bool isVPDPBUUD(unsigned Opcode) { switch (Opcode) { case VPDPBUUDYrm: case VPDPBUUDYrr: case VPDPBUUDrm: case VPDPBUUDrr: return true; } return false; } bool isVEXTRACTI32X4(unsigned Opcode) { switch (Opcode) { case VEXTRACTI32x4Z256mr: case VEXTRACTI32x4Z256mrk: case VEXTRACTI32x4Z256rr: case VEXTRACTI32x4Z256rrk: case VEXTRACTI32x4Z256rrkz: case VEXTRACTI32x4Zmr: case VEXTRACTI32x4Zmrk: case VEXTRACTI32x4Zrr: case VEXTRACTI32x4Zrrk: case VEXTRACTI32x4Zrrkz: return true; } return false; } bool isPFCMPEQ(unsigned Opcode) { switch (Opcode) { case PFCMPEQrm: case PFCMPEQrr: return true; } return false; } bool isBLSIC(unsigned Opcode) { switch (Opcode) { case BLSIC32rm: case BLSIC32rr: case BLSIC64rm: case BLSIC64rr: return true; } return false; } bool isVPSRLW(unsigned Opcode) { switch (Opcode) { case VPSRLWYri: case VPSRLWYrm: case VPSRLWYrr: case VPSRLWZ128mi: case VPSRLWZ128mik: case VPSRLWZ128mikz: case VPSRLWZ128ri: case VPSRLWZ128rik: case VPSRLWZ128rikz: case VPSRLWZ128rm: case VPSRLWZ128rmk: case VPSRLWZ128rmkz: case VPSRLWZ128rr: case VPSRLWZ128rrk: case VPSRLWZ128rrkz: case VPSRLWZ256mi: case VPSRLWZ256mik: case VPSRLWZ256mikz: case VPSRLWZ256ri: case VPSRLWZ256rik: case VPSRLWZ256rikz: case VPSRLWZ256rm: case VPSRLWZ256rmk: case VPSRLWZ256rmkz: case VPSRLWZ256rr: case VPSRLWZ256rrk: case VPSRLWZ256rrkz: case VPSRLWZmi: case VPSRLWZmik: case VPSRLWZmikz: case VPSRLWZri: case VPSRLWZrik: case VPSRLWZrikz: case VPSRLWZrm: case VPSRLWZrmk: case VPSRLWZrmkz: case VPSRLWZrr: case VPSRLWZrrk: case VPSRLWZrrkz: case VPSRLWri: case VPSRLWrm: case VPSRLWrr: return true; } return false; } bool isVEXTRACTI32X8(unsigned Opcode) { switch (Opcode) { case VEXTRACTI32x8Zmr: case VEXTRACTI32x8Zmrk: case VEXTRACTI32x8Zrr: case VEXTRACTI32x8Zrrk: case VEXTRACTI32x8Zrrkz: return true; } return false; } bool isVDIVSD(unsigned Opcode) { switch (Opcode) { case VDIVSDZrm_Int: case VDIVSDZrm_Intk: case VDIVSDZrm_Intkz: case VDIVSDZrr_Int: case VDIVSDZrr_Intk: case VDIVSDZrr_Intkz: case VDIVSDZrrb_Int: case VDIVSDZrrb_Intk: case VDIVSDZrrb_Intkz: case VDIVSDrm_Int: case VDIVSDrr_Int: return true; } return false; } bool isVFCMADDCPH(unsigned Opcode) { switch (Opcode) { case VFCMADDCPHZ128m: case VFCMADDCPHZ128mb: case VFCMADDCPHZ128mbk: case VFCMADDCPHZ128mbkz: case VFCMADDCPHZ128mk: case VFCMADDCPHZ128mkz: case VFCMADDCPHZ128r: case VFCMADDCPHZ128rk: case VFCMADDCPHZ128rkz: case VFCMADDCPHZ256m: case VFCMADDCPHZ256mb: case VFCMADDCPHZ256mbk: case VFCMADDCPHZ256mbkz: case VFCMADDCPHZ256mk: case VFCMADDCPHZ256mkz: case VFCMADDCPHZ256r: case VFCMADDCPHZ256rk: case VFCMADDCPHZ256rkz: case VFCMADDCPHZm: case VFCMADDCPHZmb: case VFCMADDCPHZmbk: case VFCMADDCPHZmbkz: case VFCMADDCPHZmk: case VFCMADDCPHZmkz: case VFCMADDCPHZr: case VFCMADDCPHZrb: case VFCMADDCPHZrbk: case VFCMADDCPHZrbkz: case VFCMADDCPHZrk: case VFCMADDCPHZrkz: return true; } return false; } bool isVMOVAPS(unsigned Opcode) { switch (Opcode) { case VMOVAPSYmr: case VMOVAPSYrm: case VMOVAPSYrr: case VMOVAPSYrr_REV: case VMOVAPSZ128mr: case VMOVAPSZ128mrk: case VMOVAPSZ128rm: case VMOVAPSZ128rmk: case VMOVAPSZ128rmkz: case VMOVAPSZ128rr: case VMOVAPSZ128rr_REV: case VMOVAPSZ128rrk: case VMOVAPSZ128rrk_REV: case VMOVAPSZ128rrkz: case VMOVAPSZ128rrkz_REV: case VMOVAPSZ256mr: case VMOVAPSZ256mrk: case VMOVAPSZ256rm: case VMOVAPSZ256rmk: case VMOVAPSZ256rmkz: case VMOVAPSZ256rr: case VMOVAPSZ256rr_REV: case VMOVAPSZ256rrk: case VMOVAPSZ256rrk_REV: case VMOVAPSZ256rrkz: case VMOVAPSZ256rrkz_REV: case VMOVAPSZmr: case VMOVAPSZmrk: case VMOVAPSZrm: case VMOVAPSZrmk: case VMOVAPSZrmkz: case VMOVAPSZrr: case VMOVAPSZrr_REV: case VMOVAPSZrrk: case VMOVAPSZrrk_REV: case VMOVAPSZrrkz: case VMOVAPSZrrkz_REV: case VMOVAPSmr: case VMOVAPSrm: case VMOVAPSrr: case VMOVAPSrr_REV: return true; } return false; } bool isFNOP(unsigned Opcode) { return Opcode == FNOP; } bool isVDIVSH(unsigned Opcode) { switch (Opcode) { case VDIVSHZrm_Int: case VDIVSHZrm_Intk: case VDIVSHZrm_Intkz: case VDIVSHZrr_Int: case VDIVSHZrr_Intk: case VDIVSHZrr_Intkz: case VDIVSHZrrb_Int: case VDIVSHZrrb_Intk: case VDIVSHZrrb_Intkz: return true; } return false; } bool isBT(unsigned Opcode) { switch (Opcode) { case BT16mi8: case BT16mr: case BT16ri8: case BT16rr: case BT32mi8: case BT32mr: case BT32ri8: case BT32rr: case BT64mi8: case BT64mr: case BT64ri8: case BT64rr: return true; } return false; } bool isVFNMSUBSD(unsigned Opcode) { switch (Opcode) { case VFNMSUBSD4mr: case VFNMSUBSD4rm: case VFNMSUBSD4rr: case VFNMSUBSD4rr_REV: return true; } return false; } bool isVPHMINPOSUW(unsigned Opcode) { switch (Opcode) { case VPHMINPOSUWrm: case VPHMINPOSUWrr: return true; } return false; } bool isVDIVSS(unsigned Opcode) { switch (Opcode) { case VDIVSSZrm_Int: case VDIVSSZrm_Intk: case VDIVSSZrm_Intkz: case VDIVSSZrr_Int: case VDIVSSZrr_Intk: case VDIVSSZrr_Intkz: case VDIVSSZrrb_Int: case VDIVSSZrrb_Intk: case VDIVSSZrrb_Intkz: case VDIVSSrm_Int: case VDIVSSrr_Int: return true; } return false; } bool isVCVTTSH2SI(unsigned Opcode) { switch (Opcode) { case VCVTTSH2SI64Zrm_Int: case VCVTTSH2SI64Zrr_Int: case VCVTTSH2SI64Zrrb_Int: case VCVTTSH2SIZrm_Int: case VCVTTSH2SIZrr_Int: case VCVTTSH2SIZrrb_Int: return true; } return false; } bool isKUNPCKDQ(unsigned Opcode) { return Opcode == KUNPCKDQrr; } bool isMULPD(unsigned Opcode) { switch (Opcode) { case MULPDrm: case MULPDrr: return true; } return false; } bool isBEXTR(unsigned Opcode) { switch (Opcode) { case BEXTR32rm: case BEXTR32rr: case BEXTR64rm: case BEXTR64rr: case BEXTRI32mi: case BEXTRI32ri: case BEXTRI64mi: case BEXTRI64ri: return true; } return false; } bool isVFNMSUBSS(unsigned Opcode) { switch (Opcode) { case VFNMSUBSS4mr: case VFNMSUBSS4rm: case VFNMSUBSS4rr: case VFNMSUBSS4rr_REV: return true; } return false; } bool isMPSADBW(unsigned Opcode) { switch (Opcode) { case MPSADBWrmi: case MPSADBWrri: return true; } return false; } bool isMULPS(unsigned Opcode) { switch (Opcode) { case MULPSrm: case MULPSrr: return true; } return false; } bool isSHA256MSG1(unsigned Opcode) { switch (Opcode) { case SHA256MSG1rm: case SHA256MSG1rr: return true; } return false; } bool isSHA256MSG2(unsigned Opcode) { switch (Opcode) { case SHA256MSG2rm: case SHA256MSG2rr: return true; } return false; } bool isPOPF(unsigned Opcode) { return Opcode == POPF16; } bool isVERR(unsigned Opcode) { switch (Opcode) { case VERRm: case VERRr: return true; } return false; } bool isPFCMPGE(unsigned Opcode) { switch (Opcode) { case PFCMPGErm: case PFCMPGErr: return true; } return false; } bool isVCVTPS2UDQ(unsigned Opcode) { switch (Opcode) { case VCVTPS2UDQZ128rm: case VCVTPS2UDQZ128rmb: case VCVTPS2UDQZ128rmbk: case VCVTPS2UDQZ128rmbkz: case VCVTPS2UDQZ128rmk: case VCVTPS2UDQZ128rmkz: case VCVTPS2UDQZ128rr: case VCVTPS2UDQZ128rrk: case VCVTPS2UDQZ128rrkz: case VCVTPS2UDQZ256rm: case VCVTPS2UDQZ256rmb: case VCVTPS2UDQZ256rmbk: case VCVTPS2UDQZ256rmbkz: case VCVTPS2UDQZ256rmk: case VCVTPS2UDQZ256rmkz: case VCVTPS2UDQZ256rr: case VCVTPS2UDQZ256rrk: case VCVTPS2UDQZ256rrkz: case VCVTPS2UDQZrm: case VCVTPS2UDQZrmb: case VCVTPS2UDQZrmbk: case VCVTPS2UDQZrmbkz: case VCVTPS2UDQZrmk: case VCVTPS2UDQZrmkz: case VCVTPS2UDQZrr: case VCVTPS2UDQZrrb: case VCVTPS2UDQZrrbk: case VCVTPS2UDQZrrbkz: case VCVTPS2UDQZrrk: case VCVTPS2UDQZrrkz: return true; } return false; } bool isVERW(unsigned Opcode) { switch (Opcode) { case VERWm: case VERWr: return true; } return false; } bool isVFMSUBADDPD(unsigned Opcode) { switch (Opcode) { case VFMSUBADDPD4Ymr: case VFMSUBADDPD4Yrm: case VFMSUBADDPD4Yrr: case VFMSUBADDPD4Yrr_REV: case VFMSUBADDPD4mr: case VFMSUBADDPD4rm: case VFMSUBADDPD4rr: case VFMSUBADDPD4rr_REV: return true; } return false; } bool isPFCMPGT(unsigned Opcode) { switch (Opcode) { case PFCMPGTrm: case PFCMPGTrr: return true; } return false; } bool isVEXTRACTI128(unsigned Opcode) { switch (Opcode) { case VEXTRACTI128mr: case VEXTRACTI128rr: return true; } return false; } bool isVGF2P8AFFINEQB(unsigned Opcode) { switch (Opcode) { case VGF2P8AFFINEQBYrmi: case VGF2P8AFFINEQBYrri: case VGF2P8AFFINEQBZ128rmbi: case VGF2P8AFFINEQBZ128rmbik: case VGF2P8AFFINEQBZ128rmbikz: case VGF2P8AFFINEQBZ128rmi: case VGF2P8AFFINEQBZ128rmik: case VGF2P8AFFINEQBZ128rmikz: case VGF2P8AFFINEQBZ128rri: case VGF2P8AFFINEQBZ128rrik: case VGF2P8AFFINEQBZ128rrikz: case VGF2P8AFFINEQBZ256rmbi: case VGF2P8AFFINEQBZ256rmbik: case VGF2P8AFFINEQBZ256rmbikz: case VGF2P8AFFINEQBZ256rmi: case VGF2P8AFFINEQBZ256rmik: case VGF2P8AFFINEQBZ256rmikz: case VGF2P8AFFINEQBZ256rri: case VGF2P8AFFINEQBZ256rrik: case VGF2P8AFFINEQBZ256rrikz: case VGF2P8AFFINEQBZrmbi: case VGF2P8AFFINEQBZrmbik: case VGF2P8AFFINEQBZrmbikz: case VGF2P8AFFINEQBZrmi: case VGF2P8AFFINEQBZrmik: case VGF2P8AFFINEQBZrmikz: case VGF2P8AFFINEQBZrri: case VGF2P8AFFINEQBZrrik: case VGF2P8AFFINEQBZrrikz: case VGF2P8AFFINEQBrmi: case VGF2P8AFFINEQBrri: return true; } return false; } bool isPSLLD(unsigned Opcode) { switch (Opcode) { case MMX_PSLLDri: case MMX_PSLLDrm: case MMX_PSLLDrr: case PSLLDri: case PSLLDrm: case PSLLDrr: return true; } return false; } bool isFSUBP(unsigned Opcode) { return Opcode == SUB_FPrST0; } bool isFSUBR(unsigned Opcode) { switch (Opcode) { case SUBR_F32m: case SUBR_F64m: case SUBR_FST0r: case SUBR_FrST0: return true; } return false; } bool isVBROADCASTF64X2(unsigned Opcode) { switch (Opcode) { case VBROADCASTF64X2Z128rm: case VBROADCASTF64X2Z128rmk: case VBROADCASTF64X2Z128rmkz: case VBROADCASTF64X2rm: case VBROADCASTF64X2rmk: case VBROADCASTF64X2rmkz: return true; } return false; } bool isFCHS(unsigned Opcode) { return Opcode == CHS_F; } bool isCMPXCHG8B(unsigned Opcode) { return Opcode == CMPXCHG8B; } bool isVBROADCASTF64X4(unsigned Opcode) { switch (Opcode) { case VBROADCASTF64X4rm: case VBROADCASTF64X4rmk: case VBROADCASTF64X4rmkz: return true; } return false; } bool isVINSERTI32X4(unsigned Opcode) { switch (Opcode) { case VINSERTI32x4Z256rm: case VINSERTI32x4Z256rmk: case VINSERTI32x4Z256rmkz: case VINSERTI32x4Z256rr: case VINSERTI32x4Z256rrk: case VINSERTI32x4Z256rrkz: case VINSERTI32x4Zrm: case VINSERTI32x4Zrmk: case VINSERTI32x4Zrmkz: case VINSERTI32x4Zrr: case VINSERTI32x4Zrrk: case VINSERTI32x4Zrrkz: return true; } return false; } bool isVFMSUBADDPS(unsigned Opcode) { switch (Opcode) { case VFMSUBADDPS4Ymr: case VFMSUBADDPS4Yrm: case VFMSUBADDPS4Yrr: case VFMSUBADDPS4Yrr_REV: case VFMSUBADDPS4mr: case VFMSUBADDPS4rm: case VFMSUBADDPS4rr: case VFMSUBADDPS4rr_REV: return true; } return false; } bool isVBROADCASTF128(unsigned Opcode) { return Opcode == VBROADCASTF128; } bool isVPERMIL2PD(unsigned Opcode) { switch (Opcode) { case VPERMIL2PDYmr: case VPERMIL2PDYrm: case VPERMIL2PDYrr: case VPERMIL2PDYrr_REV: case VPERMIL2PDmr: case VPERMIL2PDrm: case VPERMIL2PDrr: case VPERMIL2PDrr_REV: return true; } return false; } bool isPSLLQ(unsigned Opcode) { switch (Opcode) { case MMX_PSLLQri: case MMX_PSLLQrm: case MMX_PSLLQrr: case PSLLQri: case PSLLQrm: case PSLLQrr: return true; } return false; } bool isVINSERTI32X8(unsigned Opcode) { switch (Opcode) { case VINSERTI32x8Zrm: case VINSERTI32x8Zrmk: case VINSERTI32x8Zrmkz: case VINSERTI32x8Zrr: case VINSERTI32x8Zrrk: case VINSERTI32x8Zrrkz: return true; } return false; } bool isLLDT(unsigned Opcode) { switch (Opcode) { case LLDT16m: case LLDT16r: return true; } return false; } bool isMOVMSKPD(unsigned Opcode) { return Opcode == MOVMSKPDrr; } bool isPSLLW(unsigned Opcode) { switch (Opcode) { case MMX_PSLLWri: case MMX_PSLLWrm: case MMX_PSLLWrr: case PSLLWri: case PSLLWrm: case PSLLWrr: return true; } return false; } bool isVFCMADDCSH(unsigned Opcode) { switch (Opcode) { case VFCMADDCSHZm: case VFCMADDCSHZmk: case VFCMADDCSHZmkz: case VFCMADDCSHZr: case VFCMADDCSHZrb: case VFCMADDCSHZrbk: case VFCMADDCSHZrbkz: case VFCMADDCSHZrk: case VFCMADDCSHZrkz: return true; } return false; } bool isVPERMIL2PS(unsigned Opcode) { switch (Opcode) { case VPERMIL2PSYmr: case VPERMIL2PSYrm: case VPERMIL2PSYrr: case VPERMIL2PSYrr_REV: case VPERMIL2PSmr: case VPERMIL2PSrm: case VPERMIL2PSrr: case VPERMIL2PSrr_REV: return true; } return false; } bool isPF2ID(unsigned Opcode) { switch (Opcode) { case PF2IDrm: case PF2IDrr: return true; } return false; } bool isVPUNPCKHQDQ(unsigned Opcode) { switch (Opcode) { case VPUNPCKHQDQYrm: case VPUNPCKHQDQYrr: case VPUNPCKHQDQZ128rm: case VPUNPCKHQDQZ128rmb: case VPUNPCKHQDQZ128rmbk: case VPUNPCKHQDQZ128rmbkz: case VPUNPCKHQDQZ128rmk: case VPUNPCKHQDQZ128rmkz: case VPUNPCKHQDQZ128rr: case VPUNPCKHQDQZ128rrk: case VPUNPCKHQDQZ128rrkz: case VPUNPCKHQDQZ256rm: case VPUNPCKHQDQZ256rmb: case VPUNPCKHQDQZ256rmbk: case VPUNPCKHQDQZ256rmbkz: case VPUNPCKHQDQZ256rmk: case VPUNPCKHQDQZ256rmkz: case VPUNPCKHQDQZ256rr: case VPUNPCKHQDQZ256rrk: case VPUNPCKHQDQZ256rrkz: case VPUNPCKHQDQZrm: case VPUNPCKHQDQZrmb: case VPUNPCKHQDQZrmbk: case VPUNPCKHQDQZrmbkz: case VPUNPCKHQDQZrmk: case VPUNPCKHQDQZrmkz: case VPUNPCKHQDQZrr: case VPUNPCKHQDQZrrk: case VPUNPCKHQDQZrrkz: case VPUNPCKHQDQrm: case VPUNPCKHQDQrr: return true; } return false; } bool isMOVMSKPS(unsigned Opcode) { return Opcode == MOVMSKPSrr; } bool isMULSD(unsigned Opcode) { switch (Opcode) { case MULSDrm_Int: case MULSDrr_Int: return true; } return false; } bool isPF2IW(unsigned Opcode) { switch (Opcode) { case PF2IWrm: case PF2IWrr: return true; } return false; } bool isVBLENDPD(unsigned Opcode) { switch (Opcode) { case VBLENDPDYrmi: case VBLENDPDYrri: case VBLENDPDrmi: case VBLENDPDrri: return true; } return false; } bool isCLAC(unsigned Opcode) { return Opcode == CLAC; } bool isMULSS(unsigned Opcode) { switch (Opcode) { case MULSSrm_Int: case MULSSrr_Int: return true; } return false; } bool isORPD(unsigned Opcode) { switch (Opcode) { case ORPDrm: case ORPDrr: return true; } return false; } bool isCDQE(unsigned Opcode) { return Opcode == CDQE; } bool isVBLENDPS(unsigned Opcode) { switch (Opcode) { case VBLENDPSYrmi: case VBLENDPSYrri: case VBLENDPSrmi: case VBLENDPSrri: return true; } return false; } bool isTILESTORED(unsigned Opcode) { return Opcode == TILESTORED; } bool isORPS(unsigned Opcode) { switch (Opcode) { case ORPSrm: case ORPSrr: return true; } return false; } bool isVPINSRB(unsigned Opcode) { switch (Opcode) { case VPINSRBZrm: case VPINSRBZrr: case VPINSRBrm: case VPINSRBrr: return true; } return false; } bool isVPINSRD(unsigned Opcode) { switch (Opcode) { case VPINSRDZrm: case VPINSRDZrr: case VPINSRDrm: case VPINSRDrr: return true; } return false; } bool isBZHI(unsigned Opcode) { switch (Opcode) { case BZHI32rm: case BZHI32rr: case BZHI64rm: case BZHI64rr: return true; } return false; } bool isPUNPCKHBW(unsigned Opcode) { switch (Opcode) { case MMX_PUNPCKHBWrm: case MMX_PUNPCKHBWrr: case PUNPCKHBWrm: case PUNPCKHBWrr: return true; } return false; } bool isVCVTPD2UDQ(unsigned Opcode) { switch (Opcode) { case VCVTPD2UDQZ128rm: case VCVTPD2UDQZ128rmb: case VCVTPD2UDQZ128rmbk: case VCVTPD2UDQZ128rmbkz: case VCVTPD2UDQZ128rmk: case VCVTPD2UDQZ128rmkz: case VCVTPD2UDQZ128rr: case VCVTPD2UDQZ128rrk: case VCVTPD2UDQZ128rrkz: case VCVTPD2UDQZ256rm: case VCVTPD2UDQZ256rmb: case VCVTPD2UDQZ256rmbk: case VCVTPD2UDQZ256rmbkz: case VCVTPD2UDQZ256rmk: case VCVTPD2UDQZ256rmkz: case VCVTPD2UDQZ256rr: case VCVTPD2UDQZ256rrk: case VCVTPD2UDQZ256rrkz: case VCVTPD2UDQZrm: case VCVTPD2UDQZrmb: case VCVTPD2UDQZrmbk: case VCVTPD2UDQZrmbkz: case VCVTPD2UDQZrmk: case VCVTPD2UDQZrmkz: case VCVTPD2UDQZrr: case VCVTPD2UDQZrrb: case VCVTPD2UDQZrrbk: case VCVTPD2UDQZrrbkz: case VCVTPD2UDQZrrk: case VCVTPD2UDQZrrkz: return true; } return false; } bool isVPINSRQ(unsigned Opcode) { switch (Opcode) { case VPINSRQZrm: case VPINSRQZrr: case VPINSRQrm: case VPINSRQrr: return true; } return false; } bool isVPINSRW(unsigned Opcode) { switch (Opcode) { case VPINSRWZrm: case VPINSRWZrr: case VPINSRWrm: case VPINSRWrr: return true; } return false; } bool isVPMACSSDQH(unsigned Opcode) { switch (Opcode) { case VPMACSSDQHrm: case VPMACSSDQHrr: return true; } return false; } bool isGETSEC(unsigned Opcode) { return Opcode == GETSEC; } bool isCVTSS2SD(unsigned Opcode) { switch (Opcode) { case CVTSS2SDrm_Int: case CVTSS2SDrr_Int: return true; } return false; } bool isVPMACSSDQL(unsigned Opcode) { switch (Opcode) { case VPMACSSDQLrm: case VPMACSSDQLrr: return true; } return false; } bool isANDN(unsigned Opcode) { switch (Opcode) { case ANDN32rm: case ANDN32rr: case ANDN64rm: case ANDN64rr: return true; } return false; } bool isCVTSS2SI(unsigned Opcode) { switch (Opcode) { case CVTSS2SI64rm_Int: case CVTSS2SI64rr_Int: case CVTSS2SIrm_Int: case CVTSS2SIrr_Int: return true; } return false; } bool isAESDEC(unsigned Opcode) { switch (Opcode) { case AESDECrm: case AESDECrr: return true; } return false; } bool isMOVSB(unsigned Opcode) { return Opcode == MOVSB; } bool isMOVSD(unsigned Opcode) { switch (Opcode) { case MOVSDmr: case MOVSDrm: case MOVSDrr: case MOVSDrr_REV: case MOVSL: return true; } return false; } bool isVFNMSUB213PD(unsigned Opcode) { switch (Opcode) { case VFNMSUB213PDYm: case VFNMSUB213PDYr: case VFNMSUB213PDZ128m: case VFNMSUB213PDZ128mb: case VFNMSUB213PDZ128mbk: case VFNMSUB213PDZ128mbkz: case VFNMSUB213PDZ128mk: case VFNMSUB213PDZ128mkz: case VFNMSUB213PDZ128r: case VFNMSUB213PDZ128rk: case VFNMSUB213PDZ128rkz: case VFNMSUB213PDZ256m: case VFNMSUB213PDZ256mb: case VFNMSUB213PDZ256mbk: case VFNMSUB213PDZ256mbkz: case VFNMSUB213PDZ256mk: case VFNMSUB213PDZ256mkz: case VFNMSUB213PDZ256r: case VFNMSUB213PDZ256rk: case VFNMSUB213PDZ256rkz: case VFNMSUB213PDZm: case VFNMSUB213PDZmb: case VFNMSUB213PDZmbk: case VFNMSUB213PDZmbkz: case VFNMSUB213PDZmk: case VFNMSUB213PDZmkz: case VFNMSUB213PDZr: case VFNMSUB213PDZrb: case VFNMSUB213PDZrbk: case VFNMSUB213PDZrbkz: case VFNMSUB213PDZrk: case VFNMSUB213PDZrkz: case VFNMSUB213PDm: case VFNMSUB213PDr: return true; } return false; } bool isVPMOVW2M(unsigned Opcode) { switch (Opcode) { case VPMOVW2MZ128rr: case VPMOVW2MZ256rr: case VPMOVW2MZrr: return true; } return false; } bool isVFNMSUB213PH(unsigned Opcode) { switch (Opcode) { case VFNMSUB213PHZ128m: case VFNMSUB213PHZ128mb: case VFNMSUB213PHZ128mbk: case VFNMSUB213PHZ128mbkz: case VFNMSUB213PHZ128mk: case VFNMSUB213PHZ128mkz: case VFNMSUB213PHZ128r: case VFNMSUB213PHZ128rk: case VFNMSUB213PHZ128rkz: case VFNMSUB213PHZ256m: case VFNMSUB213PHZ256mb: case VFNMSUB213PHZ256mbk: case VFNMSUB213PHZ256mbkz: case VFNMSUB213PHZ256mk: case VFNMSUB213PHZ256mkz: case VFNMSUB213PHZ256r: case VFNMSUB213PHZ256rk: case VFNMSUB213PHZ256rkz: case VFNMSUB213PHZm: case VFNMSUB213PHZmb: case VFNMSUB213PHZmbk: case VFNMSUB213PHZmbkz: case VFNMSUB213PHZmk: case VFNMSUB213PHZmkz: case VFNMSUB213PHZr: case VFNMSUB213PHZrb: case VFNMSUB213PHZrbk: case VFNMSUB213PHZrbkz: case VFNMSUB213PHZrk: case VFNMSUB213PHZrkz: return true; } return false; } bool isVPACKSSWB(unsigned Opcode) { switch (Opcode) { case VPACKSSWBYrm: case VPACKSSWBYrr: case VPACKSSWBZ128rm: case VPACKSSWBZ128rmk: case VPACKSSWBZ128rmkz: case VPACKSSWBZ128rr: case VPACKSSWBZ128rrk: case VPACKSSWBZ128rrkz: case VPACKSSWBZ256rm: case VPACKSSWBZ256rmk: case VPACKSSWBZ256rmkz: case VPACKSSWBZ256rr: case VPACKSSWBZ256rrk: case VPACKSSWBZ256rrkz: case VPACKSSWBZrm: case VPACKSSWBZrmk: case VPACKSSWBZrmkz: case VPACKSSWBZrr: case VPACKSSWBZrrk: case VPACKSSWBZrrkz: case VPACKSSWBrm: case VPACKSSWBrr: return true; } return false; } bool isMOVSQ(unsigned Opcode) { return Opcode == MOVSQ; } bool isMOVSS(unsigned Opcode) { switch (Opcode) { case MOVSSmr: case MOVSSrm: case MOVSSrr: case MOVSSrr_REV: return true; } return false; } bool isVPMULHRSW(unsigned Opcode) { switch (Opcode) { case VPMULHRSWYrm: case VPMULHRSWYrr: case VPMULHRSWZ128rm: case VPMULHRSWZ128rmk: case VPMULHRSWZ128rmkz: case VPMULHRSWZ128rr: case VPMULHRSWZ128rrk: case VPMULHRSWZ128rrkz: case VPMULHRSWZ256rm: case VPMULHRSWZ256rmk: case VPMULHRSWZ256rmkz: case VPMULHRSWZ256rr: case VPMULHRSWZ256rrk: case VPMULHRSWZ256rrkz: case VPMULHRSWZrm: case VPMULHRSWZrmk: case VPMULHRSWZrmkz: case VPMULHRSWZrr: case VPMULHRSWZrrk: case VPMULHRSWZrrkz: case VPMULHRSWrm: case VPMULHRSWrr: return true; } return false; } bool isVFNMSUB213PS(unsigned Opcode) { switch (Opcode) { case VFNMSUB213PSYm: case VFNMSUB213PSYr: case VFNMSUB213PSZ128m: case VFNMSUB213PSZ128mb: case VFNMSUB213PSZ128mbk: case VFNMSUB213PSZ128mbkz: case VFNMSUB213PSZ128mk: case VFNMSUB213PSZ128mkz: case VFNMSUB213PSZ128r: case VFNMSUB213PSZ128rk: case VFNMSUB213PSZ128rkz: case VFNMSUB213PSZ256m: case VFNMSUB213PSZ256mb: case VFNMSUB213PSZ256mbk: case VFNMSUB213PSZ256mbkz: case VFNMSUB213PSZ256mk: case VFNMSUB213PSZ256mkz: case VFNMSUB213PSZ256r: case VFNMSUB213PSZ256rk: case VFNMSUB213PSZ256rkz: case VFNMSUB213PSZm: case VFNMSUB213PSZmb: case VFNMSUB213PSZmbk: case VFNMSUB213PSZmbkz: case VFNMSUB213PSZmk: case VFNMSUB213PSZmkz: case VFNMSUB213PSZr: case VFNMSUB213PSZrb: case VFNMSUB213PSZrbk: case VFNMSUB213PSZrbkz: case VFNMSUB213PSZrk: case VFNMSUB213PSZrkz: case VFNMSUB213PSm: case VFNMSUB213PSr: return true; } return false; } bool isCMOVCC(unsigned Opcode) { switch (Opcode) { case CMOV16rm: case CMOV16rr: case CMOV32rm: case CMOV32rr: case CMOV64rm: case CMOV64rr: return true; } return false; } bool isMOVSW(unsigned Opcode) { return Opcode == MOVSW; } bool isMOVSX(unsigned Opcode) { switch (Opcode) { case MOVSX16rm16: case MOVSX16rm8: case MOVSX16rr16: case MOVSX16rr8: case MOVSX32rm16: case MOVSX32rm8: case MOVSX32rr16: case MOVSX32rr8: case MOVSX64rm16: case MOVSX64rm8: case MOVSX64rr16: case MOVSX64rr8: return true; } return false; } bool isVPCOMUD(unsigned Opcode) { switch (Opcode) { case VPCOMUDmi: case VPCOMUDri: return true; } return false; } bool isVPCOMUB(unsigned Opcode) { switch (Opcode) { case VPCOMUBmi: case VPCOMUBri: return true; } return false; } bool isVPDPBSUDS(unsigned Opcode) { switch (Opcode) { case VPDPBSUDSYrm: case VPDPBSUDSYrr: case VPDPBSUDSrm: case VPDPBSUDSrr: return true; } return false; } bool isFLDLN2(unsigned Opcode) { return Opcode == FLDLN2; } bool isPACKUSDW(unsigned Opcode) { switch (Opcode) { case PACKUSDWrm: case PACKUSDWrr: return true; } return false; } bool isVPCOMUQ(unsigned Opcode) { switch (Opcode) { case VPCOMUQmi: case VPCOMUQri: return true; } return false; } bool isMONTMUL(unsigned Opcode) { return Opcode == MONTMUL; } bool isPUNPCKHDQ(unsigned Opcode) { switch (Opcode) { case MMX_PUNPCKHDQrm: case MMX_PUNPCKHDQrr: case PUNPCKHDQrm: case PUNPCKHDQrr: return true; } return false; } bool isVPCOMUW(unsigned Opcode) { switch (Opcode) { case VPCOMUWmi: case VPCOMUWri: return true; } return false; } bool isPMULDQ(unsigned Opcode) { switch (Opcode) { case PMULDQrm: case PMULDQrr: return true; } return false; } bool isT1MSKC(unsigned Opcode) { switch (Opcode) { case T1MSKC32rm: case T1MSKC32rr: case T1MSKC64rm: case T1MSKC64rr: return true; } return false; } bool isIN(unsigned Opcode) { switch (Opcode) { case IN16ri: case IN16rr: case IN32ri: case IN32rr: case IN8ri: case IN8rr: return true; } return false; } bool isVPHADDBD(unsigned Opcode) { switch (Opcode) { case VPHADDBDrm: case VPHADDBDrr: return true; } return false; } bool isSAR(unsigned Opcode) { switch (Opcode) { case SAR16m1: case SAR16mCL: case SAR16mi: case SAR16r1: case SAR16rCL: case SAR16ri: case SAR32m1: case SAR32mCL: case SAR32mi: case SAR32r1: case SAR32rCL: case SAR32ri: case SAR64m1: case SAR64mCL: case SAR64mi: case SAR64r1: case SAR64rCL: case SAR64ri: case SAR8m1: case SAR8mCL: case SAR8mi: case SAR8r1: case SAR8rCL: case SAR8ri: return true; } return false; } bool isVPHADDBQ(unsigned Opcode) { switch (Opcode) { case VPHADDBQrm: case VPHADDBQrr: return true; } return false; } bool isVFNMSUB231PD(unsigned Opcode) { switch (Opcode) { case VFNMSUB231PDYm: case VFNMSUB231PDYr: case VFNMSUB231PDZ128m: case VFNMSUB231PDZ128mb: case VFNMSUB231PDZ128mbk: case VFNMSUB231PDZ128mbkz: case VFNMSUB231PDZ128mk: case VFNMSUB231PDZ128mkz: case VFNMSUB231PDZ128r: case VFNMSUB231PDZ128rk: case VFNMSUB231PDZ128rkz: case VFNMSUB231PDZ256m: case VFNMSUB231PDZ256mb: case VFNMSUB231PDZ256mbk: case VFNMSUB231PDZ256mbkz: case VFNMSUB231PDZ256mk: case VFNMSUB231PDZ256mkz: case VFNMSUB231PDZ256r: case VFNMSUB231PDZ256rk: case VFNMSUB231PDZ256rkz: case VFNMSUB231PDZm: case VFNMSUB231PDZmb: case VFNMSUB231PDZmbk: case VFNMSUB231PDZmbkz: case VFNMSUB231PDZmk: case VFNMSUB231PDZmkz: case VFNMSUB231PDZr: case VFNMSUB231PDZrb: case VFNMSUB231PDZrbk: case VFNMSUB231PDZrbkz: case VFNMSUB231PDZrk: case VFNMSUB231PDZrkz: case VFNMSUB231PDm: case VFNMSUB231PDr: return true; } return false; } bool isVPSHLDVD(unsigned Opcode) { switch (Opcode) { case VPSHLDVDZ128m: case VPSHLDVDZ128mb: case VPSHLDVDZ128mbk: case VPSHLDVDZ128mbkz: case VPSHLDVDZ128mk: case VPSHLDVDZ128mkz: case VPSHLDVDZ128r: case VPSHLDVDZ128rk: case VPSHLDVDZ128rkz: case VPSHLDVDZ256m: case VPSHLDVDZ256mb: case VPSHLDVDZ256mbk: case VPSHLDVDZ256mbkz: case VPSHLDVDZ256mk: case VPSHLDVDZ256mkz: case VPSHLDVDZ256r: case VPSHLDVDZ256rk: case VPSHLDVDZ256rkz: case VPSHLDVDZm: case VPSHLDVDZmb: case VPSHLDVDZmbk: case VPSHLDVDZmbkz: case VPSHLDVDZmk: case VPSHLDVDZmkz: case VPSHLDVDZr: case VPSHLDVDZrk: case VPSHLDVDZrkz: return true; } return false; } bool isFSCALE(unsigned Opcode) { return Opcode == FSCALE; } bool isVFNMSUB231PH(unsigned Opcode) { switch (Opcode) { case VFNMSUB231PHZ128m: case VFNMSUB231PHZ128mb: case VFNMSUB231PHZ128mbk: case VFNMSUB231PHZ128mbkz: case VFNMSUB231PHZ128mk: case VFNMSUB231PHZ128mkz: case VFNMSUB231PHZ128r: case VFNMSUB231PHZ128rk: case VFNMSUB231PHZ128rkz: case VFNMSUB231PHZ256m: case VFNMSUB231PHZ256mb: case VFNMSUB231PHZ256mbk: case VFNMSUB231PHZ256mbkz: case VFNMSUB231PHZ256mk: case VFNMSUB231PHZ256mkz: case VFNMSUB231PHZ256r: case VFNMSUB231PHZ256rk: case VFNMSUB231PHZ256rkz: case VFNMSUB231PHZm: case VFNMSUB231PHZmb: case VFNMSUB231PHZmbk: case VFNMSUB231PHZmbkz: case VFNMSUB231PHZmk: case VFNMSUB231PHZmkz: case VFNMSUB231PHZr: case VFNMSUB231PHZrb: case VFNMSUB231PHZrbk: case VFNMSUB231PHZrbkz: case VFNMSUB231PHZrk: case VFNMSUB231PHZrkz: return true; } return false; } bool isVPHADDBW(unsigned Opcode) { switch (Opcode) { case VPHADDBWrm: case VPHADDBWrr: return true; } return false; } bool isSBB(unsigned Opcode) { switch (Opcode) { case SBB16i16: case SBB16mi: case SBB16mi8: case SBB16mr: case SBB16ri: case SBB16ri8: case SBB16rm: case SBB16rr: case SBB16rr_REV: case SBB32i32: case SBB32mi: case SBB32mi8: case SBB32mr: case SBB32ri: case SBB32ri8: case SBB32rm: case SBB32rr: case SBB32rr_REV: case SBB64i32: case SBB64mi32: case SBB64mi8: case SBB64mr: case SBB64ri32: case SBB64ri8: case SBB64rm: case SBB64rr: case SBB64rr_REV: case SBB8i8: case SBB8mi: case SBB8mi8: case SBB8mr: case SBB8ri: case SBB8ri8: case SBB8rm: case SBB8rr: case SBB8rr_REV: return true; } return false; } bool isVPSHLDVQ(unsigned Opcode) { switch (Opcode) { case VPSHLDVQZ128m: case VPSHLDVQZ128mb: case VPSHLDVQZ128mbk: case VPSHLDVQZ128mbkz: case VPSHLDVQZ128mk: case VPSHLDVQZ128mkz: case VPSHLDVQZ128r: case VPSHLDVQZ128rk: case VPSHLDVQZ128rkz: case VPSHLDVQZ256m: case VPSHLDVQZ256mb: case VPSHLDVQZ256mbk: case VPSHLDVQZ256mbkz: case VPSHLDVQZ256mk: case VPSHLDVQZ256mkz: case VPSHLDVQZ256r: case VPSHLDVQZ256rk: case VPSHLDVQZ256rkz: case VPSHLDVQZm: case VPSHLDVQZmb: case VPSHLDVQZmbk: case VPSHLDVQZmbkz: case VPSHLDVQZmk: case VPSHLDVQZmkz: case VPSHLDVQZr: case VPSHLDVQZrk: case VPSHLDVQZrkz: return true; } return false; } bool isVFNMSUB231PS(unsigned Opcode) { switch (Opcode) { case VFNMSUB231PSYm: case VFNMSUB231PSYr: case VFNMSUB231PSZ128m: case VFNMSUB231PSZ128mb: case VFNMSUB231PSZ128mbk: case VFNMSUB231PSZ128mbkz: case VFNMSUB231PSZ128mk: case VFNMSUB231PSZ128mkz: case VFNMSUB231PSZ128r: case VFNMSUB231PSZ128rk: case VFNMSUB231PSZ128rkz: case VFNMSUB231PSZ256m: case VFNMSUB231PSZ256mb: case VFNMSUB231PSZ256mbk: case VFNMSUB231PSZ256mbkz: case VFNMSUB231PSZ256mk: case VFNMSUB231PSZ256mkz: case VFNMSUB231PSZ256r: case VFNMSUB231PSZ256rk: case VFNMSUB231PSZ256rkz: case VFNMSUB231PSZm: case VFNMSUB231PSZmb: case VFNMSUB231PSZmbk: case VFNMSUB231PSZmbkz: case VFNMSUB231PSZmk: case VFNMSUB231PSZmkz: case VFNMSUB231PSZr: case VFNMSUB231PSZrb: case VFNMSUB231PSZrbk: case VFNMSUB231PSZrbkz: case VFNMSUB231PSZrk: case VFNMSUB231PSZrkz: case VFNMSUB231PSm: case VFNMSUB231PSr: return true; } return false; } bool isVPDPBUSDS(unsigned Opcode) { switch (Opcode) { case VPDPBUSDSYrm: case VPDPBUSDSYrr: case VPDPBUSDSZ128m: case VPDPBUSDSZ128mb: case VPDPBUSDSZ128mbk: case VPDPBUSDSZ128mbkz: case VPDPBUSDSZ128mk: case VPDPBUSDSZ128mkz: case VPDPBUSDSZ128r: case VPDPBUSDSZ128rk: case VPDPBUSDSZ128rkz: case VPDPBUSDSZ256m: case VPDPBUSDSZ256mb: case VPDPBUSDSZ256mbk: case VPDPBUSDSZ256mbkz: case VPDPBUSDSZ256mk: case VPDPBUSDSZ256mkz: case VPDPBUSDSZ256r: case VPDPBUSDSZ256rk: case VPDPBUSDSZ256rkz: case VPDPBUSDSZm: case VPDPBUSDSZmb: case VPDPBUSDSZmbk: case VPDPBUSDSZmbkz: case VPDPBUSDSZmk: case VPDPBUSDSZmkz: case VPDPBUSDSZr: case VPDPBUSDSZrk: case VPDPBUSDSZrkz: case VPDPBUSDSrm: case VPDPBUSDSrr: return true; } return false; } bool isFCOMPI(unsigned Opcode) { return Opcode == COM_FIPr; } bool isRSQRTPS(unsigned Opcode) { switch (Opcode) { case RSQRTPSm: case RSQRTPSr: return true; } return false; } bool isVSHUFPD(unsigned Opcode) { switch (Opcode) { case VSHUFPDYrmi: case VSHUFPDYrri: case VSHUFPDZ128rmbi: case VSHUFPDZ128rmbik: case VSHUFPDZ128rmbikz: case VSHUFPDZ128rmi: case VSHUFPDZ128rmik: case VSHUFPDZ128rmikz: case VSHUFPDZ128rri: case VSHUFPDZ128rrik: case VSHUFPDZ128rrikz: case VSHUFPDZ256rmbi: case VSHUFPDZ256rmbik: case VSHUFPDZ256rmbikz: case VSHUFPDZ256rmi: case VSHUFPDZ256rmik: case VSHUFPDZ256rmikz: case VSHUFPDZ256rri: case VSHUFPDZ256rrik: case VSHUFPDZ256rrikz: case VSHUFPDZrmbi: case VSHUFPDZrmbik: case VSHUFPDZrmbikz: case VSHUFPDZrmi: case VSHUFPDZrmik: case VSHUFPDZrmikz: case VSHUFPDZrri: case VSHUFPDZrrik: case VSHUFPDZrrikz: case VSHUFPDrmi: case VSHUFPDrri: return true; } return false; } bool isVPSHLDVW(unsigned Opcode) { switch (Opcode) { case VPSHLDVWZ128m: case VPSHLDVWZ128mk: case VPSHLDVWZ128mkz: case VPSHLDVWZ128r: case VPSHLDVWZ128rk: case VPSHLDVWZ128rkz: case VPSHLDVWZ256m: case VPSHLDVWZ256mk: case VPSHLDVWZ256mkz: case VPSHLDVWZ256r: case VPSHLDVWZ256rk: case VPSHLDVWZ256rkz: case VPSHLDVWZm: case VPSHLDVWZmk: case VPSHLDVWZmkz: case VPSHLDVWZr: case VPSHLDVWZrk: case VPSHLDVWZrkz: return true; } return false; } bool isVPADDSB(unsigned Opcode) { switch (Opcode) { case VPADDSBYrm: case VPADDSBYrr: case VPADDSBZ128rm: case VPADDSBZ128rmk: case VPADDSBZ128rmkz: case VPADDSBZ128rr: case VPADDSBZ128rrk: case VPADDSBZ128rrkz: case VPADDSBZ256rm: case VPADDSBZ256rmk: case VPADDSBZ256rmkz: case VPADDSBZ256rr: case VPADDSBZ256rrk: case VPADDSBZ256rrkz: case VPADDSBZrm: case VPADDSBZrmk: case VPADDSBZrmkz: case VPADDSBZrr: case VPADDSBZrrk: case VPADDSBZrrkz: case VPADDSBrm: case VPADDSBrr: return true; } return false; } bool isFCOMPP(unsigned Opcode) { return Opcode == FCOMPP; } bool isDAA(unsigned Opcode) { return Opcode == DAA; } bool isVFNMSUB213SD(unsigned Opcode) { switch (Opcode) { case VFNMSUB213SDZm_Int: case VFNMSUB213SDZm_Intk: case VFNMSUB213SDZm_Intkz: case VFNMSUB213SDZr_Int: case VFNMSUB213SDZr_Intk: case VFNMSUB213SDZr_Intkz: case VFNMSUB213SDZrb_Int: case VFNMSUB213SDZrb_Intk: case VFNMSUB213SDZrb_Intkz: case VFNMSUB213SDm_Int: case VFNMSUB213SDr_Int: return true; } return false; } bool isVSHUFPS(unsigned Opcode) { switch (Opcode) { case VSHUFPSYrmi: case VSHUFPSYrri: case VSHUFPSZ128rmbi: case VSHUFPSZ128rmbik: case VSHUFPSZ128rmbikz: case VSHUFPSZ128rmi: case VSHUFPSZ128rmik: case VSHUFPSZ128rmikz: case VSHUFPSZ128rri: case VSHUFPSZ128rrik: case VSHUFPSZ128rrikz: case VSHUFPSZ256rmbi: case VSHUFPSZ256rmbik: case VSHUFPSZ256rmbikz: case VSHUFPSZ256rmi: case VSHUFPSZ256rmik: case VSHUFPSZ256rmikz: case VSHUFPSZ256rri: case VSHUFPSZ256rrik: case VSHUFPSZ256rrikz: case VSHUFPSZrmbi: case VSHUFPSZrmbik: case VSHUFPSZrmbikz: case VSHUFPSZrmi: case VSHUFPSZrmik: case VSHUFPSZrmikz: case VSHUFPSZrri: case VSHUFPSZrrik: case VSHUFPSZrrikz: case VSHUFPSrmi: case VSHUFPSrri: return true; } return false; } bool isINVLPGA(unsigned Opcode) { switch (Opcode) { case INVLPGA32: case INVLPGA64: return true; } return false; } bool isINVLPGB(unsigned Opcode) { switch (Opcode) { case INVLPGB32: case INVLPGB64: return true; } return false; } bool isVFNMSUB213SH(unsigned Opcode) { switch (Opcode) { case VFNMSUB213SHZm_Int: case VFNMSUB213SHZm_Intk: case VFNMSUB213SHZm_Intkz: case VFNMSUB213SHZr_Int: case VFNMSUB213SHZr_Intk: case VFNMSUB213SHZr_Intkz: case VFNMSUB213SHZrb_Int: case VFNMSUB213SHZrb_Intk: case VFNMSUB213SHZrb_Intkz: return true; } return false; } bool isDAS(unsigned Opcode) { return Opcode == DAS; } bool isVPADDSW(unsigned Opcode) { switch (Opcode) { case VPADDSWYrm: case VPADDSWYrr: case VPADDSWZ128rm: case VPADDSWZ128rmk: case VPADDSWZ128rmkz: case VPADDSWZ128rr: case VPADDSWZ128rrk: case VPADDSWZ128rrkz: case VPADDSWZ256rm: case VPADDSWZ256rmk: case VPADDSWZ256rmkz: case VPADDSWZ256rr: case VPADDSWZ256rrk: case VPADDSWZ256rrkz: case VPADDSWZrm: case VPADDSWZrmk: case VPADDSWZrmkz: case VPADDSWZrr: case VPADDSWZrrk: case VPADDSWZrrkz: case VPADDSWrm: case VPADDSWrr: return true; } return false; } bool isVFNMSUB213SS(unsigned Opcode) { switch (Opcode) { case VFNMSUB213SSZm_Int: case VFNMSUB213SSZm_Intk: case VFNMSUB213SSZm_Intkz: case VFNMSUB213SSZr_Int: case VFNMSUB213SSZr_Intk: case VFNMSUB213SSZr_Intkz: case VFNMSUB213SSZrb_Int: case VFNMSUB213SSZrb_Intk: case VFNMSUB213SSZrb_Intkz: case VFNMSUB213SSm_Int: case VFNMSUB213SSr_Int: return true; } return false; } bool isFCOM(unsigned Opcode) { switch (Opcode) { case COM_FST0r: case FCOM32m: case FCOM64m: return true; } return false; } bool isKXORB(unsigned Opcode) { return Opcode == KXORBrr; } bool isKXORD(unsigned Opcode) { return Opcode == KXORDrr; } bool isFCOS(unsigned Opcode) { return Opcode == FCOS; } bool isVPHADDDQ(unsigned Opcode) { switch (Opcode) { case VPHADDDQrm: case VPHADDDQrr: return true; } return false; } bool isCLDEMOTE(unsigned Opcode) { return Opcode == CLDEMOTE; } bool isKXORQ(unsigned Opcode) { return Opcode == KXORQrr; } bool isKXORW(unsigned Opcode) { return Opcode == KXORWrr; } bool isVDPBF16PS(unsigned Opcode) { switch (Opcode) { case VDPBF16PSZ128m: case VDPBF16PSZ128mb: case VDPBF16PSZ128mbk: case VDPBF16PSZ128mbkz: case VDPBF16PSZ128mk: case VDPBF16PSZ128mkz: case VDPBF16PSZ128r: case VDPBF16PSZ128rk: case VDPBF16PSZ128rkz: case VDPBF16PSZ256m: case VDPBF16PSZ256mb: case VDPBF16PSZ256mbk: case VDPBF16PSZ256mbkz: case VDPBF16PSZ256mk: case VDPBF16PSZ256mkz: case VDPBF16PSZ256r: case VDPBF16PSZ256rk: case VDPBF16PSZ256rkz: case VDPBF16PSZm: case VDPBF16PSZmb: case VDPBF16PSZmbk: case VDPBF16PSZmbkz: case VDPBF16PSZmk: case VDPBF16PSZmkz: case VDPBF16PSZr: case VDPBF16PSZrk: case VDPBF16PSZrkz: return true; } return false; } bool isCLGI(unsigned Opcode) { return Opcode == CLGI; } bool isVMREAD(unsigned Opcode) { switch (Opcode) { case VMREAD32mr: case VMREAD32rr: case VMREAD64mr: case VMREAD64rr: return true; } return false; } bool isANDPD(unsigned Opcode) { switch (Opcode) { case ANDPDrm: case ANDPDrr: return true; } return false; } bool isVFMSUBPD(unsigned Opcode) { switch (Opcode) { case VFMSUBPD4Ymr: case VFMSUBPD4Yrm: case VFMSUBPD4Yrr: case VFMSUBPD4Yrr_REV: case VFMSUBPD4mr: case VFMSUBPD4rm: case VFMSUBPD4rr: case VFMSUBPD4rr_REV: return true; } return false; } bool isVFNMADD213PD(unsigned Opcode) { switch (Opcode) { case VFNMADD213PDYm: case VFNMADD213PDYr: case VFNMADD213PDZ128m: case VFNMADD213PDZ128mb: case VFNMADD213PDZ128mbk: case VFNMADD213PDZ128mbkz: case VFNMADD213PDZ128mk: case VFNMADD213PDZ128mkz: case VFNMADD213PDZ128r: case VFNMADD213PDZ128rk: case VFNMADD213PDZ128rkz: case VFNMADD213PDZ256m: case VFNMADD213PDZ256mb: case VFNMADD213PDZ256mbk: case VFNMADD213PDZ256mbkz: case VFNMADD213PDZ256mk: case VFNMADD213PDZ256mkz: case VFNMADD213PDZ256r: case VFNMADD213PDZ256rk: case VFNMADD213PDZ256rkz: case VFNMADD213PDZm: case VFNMADD213PDZmb: case VFNMADD213PDZmbk: case VFNMADD213PDZmbkz: case VFNMADD213PDZmk: case VFNMADD213PDZmkz: case VFNMADD213PDZr: case VFNMADD213PDZrb: case VFNMADD213PDZrbk: case VFNMADD213PDZrbkz: case VFNMADD213PDZrk: case VFNMADD213PDZrkz: case VFNMADD213PDm: case VFNMADD213PDr: return true; } return false; } bool isVFNMADD213PH(unsigned Opcode) { switch (Opcode) { case VFNMADD213PHZ128m: case VFNMADD213PHZ128mb: case VFNMADD213PHZ128mbk: case VFNMADD213PHZ128mbkz: case VFNMADD213PHZ128mk: case VFNMADD213PHZ128mkz: case VFNMADD213PHZ128r: case VFNMADD213PHZ128rk: case VFNMADD213PHZ128rkz: case VFNMADD213PHZ256m: case VFNMADD213PHZ256mb: case VFNMADD213PHZ256mbk: case VFNMADD213PHZ256mbkz: case VFNMADD213PHZ256mk: case VFNMADD213PHZ256mkz: case VFNMADD213PHZ256r: case VFNMADD213PHZ256rk: case VFNMADD213PHZ256rkz: case VFNMADD213PHZm: case VFNMADD213PHZmb: case VFNMADD213PHZmbk: case VFNMADD213PHZmbkz: case VFNMADD213PHZmk: case VFNMADD213PHZmkz: case VFNMADD213PHZr: case VFNMADD213PHZrb: case VFNMADD213PHZrbk: case VFNMADD213PHZrbkz: case VFNMADD213PHZrk: case VFNMADD213PHZrkz: return true; } return false; } bool isVFNMSUB231SD(unsigned Opcode) { switch (Opcode) { case VFNMSUB231SDZm_Int: case VFNMSUB231SDZm_Intk: case VFNMSUB231SDZm_Intkz: case VFNMSUB231SDZr_Int: case VFNMSUB231SDZr_Intk: case VFNMSUB231SDZr_Intkz: case VFNMSUB231SDZrb_Int: case VFNMSUB231SDZrb_Intk: case VFNMSUB231SDZrb_Intkz: case VFNMSUB231SDm_Int: case VFNMSUB231SDr_Int: return true; } return false; } bool isFSQRT(unsigned Opcode) { return Opcode == SQRT_F; } bool isVFNMSUB231SH(unsigned Opcode) { switch (Opcode) { case VFNMSUB231SHZm_Int: case VFNMSUB231SHZm_Intk: case VFNMSUB231SHZm_Intkz: case VFNMSUB231SHZr_Int: case VFNMSUB231SHZr_Intk: case VFNMSUB231SHZr_Intkz: case VFNMSUB231SHZrb_Int: case VFNMSUB231SHZrb_Intk: case VFNMSUB231SHZrb_Intkz: return true; } return false; } bool isPCLMULQDQ(unsigned Opcode) { switch (Opcode) { case PCLMULQDQrm: case PCLMULQDQrr: return true; } return false; } bool isVRCP14PD(unsigned Opcode) { switch (Opcode) { case VRCP14PDZ128m: case VRCP14PDZ128mb: case VRCP14PDZ128mbk: case VRCP14PDZ128mbkz: case VRCP14PDZ128mk: case VRCP14PDZ128mkz: case VRCP14PDZ128r: case VRCP14PDZ128rk: case VRCP14PDZ128rkz: case VRCP14PDZ256m: case VRCP14PDZ256mb: case VRCP14PDZ256mbk: case VRCP14PDZ256mbkz: case VRCP14PDZ256mk: case VRCP14PDZ256mkz: case VRCP14PDZ256r: case VRCP14PDZ256rk: case VRCP14PDZ256rkz: case VRCP14PDZm: case VRCP14PDZmb: case VRCP14PDZmbk: case VRCP14PDZmbkz: case VRCP14PDZmk: case VRCP14PDZmkz: case VRCP14PDZr: case VRCP14PDZrk: case VRCP14PDZrkz: return true; } return false; } bool isANDPS(unsigned Opcode) { switch (Opcode) { case ANDPSrm: case ANDPSrr: return true; } return false; } bool isVFMSUBPS(unsigned Opcode) { switch (Opcode) { case VFMSUBPS4Ymr: case VFMSUBPS4Yrm: case VFMSUBPS4Yrr: case VFMSUBPS4Yrr_REV: case VFMSUBPS4mr: case VFMSUBPS4rm: case VFMSUBPS4rr: case VFMSUBPS4rr_REV: return true; } return false; } bool isVFNMADD213PS(unsigned Opcode) { switch (Opcode) { case VFNMADD213PSYm: case VFNMADD213PSYr: case VFNMADD213PSZ128m: case VFNMADD213PSZ128mb: case VFNMADD213PSZ128mbk: case VFNMADD213PSZ128mbkz: case VFNMADD213PSZ128mk: case VFNMADD213PSZ128mkz: case VFNMADD213PSZ128r: case VFNMADD213PSZ128rk: case VFNMADD213PSZ128rkz: case VFNMADD213PSZ256m: case VFNMADD213PSZ256mb: case VFNMADD213PSZ256mbk: case VFNMADD213PSZ256mbkz: case VFNMADD213PSZ256mk: case VFNMADD213PSZ256mkz: case VFNMADD213PSZ256r: case VFNMADD213PSZ256rk: case VFNMADD213PSZ256rkz: case VFNMADD213PSZm: case VFNMADD213PSZmb: case VFNMADD213PSZmbk: case VFNMADD213PSZmbkz: case VFNMADD213PSZmk: case VFNMADD213PSZmkz: case VFNMADD213PSZr: case VFNMADD213PSZrb: case VFNMADD213PSZrbk: case VFNMADD213PSZrbkz: case VFNMADD213PSZrk: case VFNMADD213PSZrkz: case VFNMADD213PSm: case VFNMADD213PSr: return true; } return false; } bool isPMULHW(unsigned Opcode) { switch (Opcode) { case MMX_PMULHWrm: case MMX_PMULHWrr: case PMULHWrm: case PMULHWrr: return true; } return false; } bool isVFNMSUB231SS(unsigned Opcode) { switch (Opcode) { case VFNMSUB231SSZm_Int: case VFNMSUB231SSZm_Intk: case VFNMSUB231SSZm_Intkz: case VFNMSUB231SSZr_Int: case VFNMSUB231SSZr_Intk: case VFNMSUB231SSZr_Intkz: case VFNMSUB231SSZrb_Int: case VFNMSUB231SSZrb_Intk: case VFNMSUB231SSZrb_Intkz: case VFNMSUB231SSm_Int: case VFNMSUB231SSr_Int: return true; } return false; } bool isAESDECWIDE256KL(unsigned Opcode) { return Opcode == AESDECWIDE256KL; } bool isRSQRTSS(unsigned Opcode) { switch (Opcode) { case RSQRTSSm_Int: case RSQRTSSr_Int: return true; } return false; } bool isVRCP14PS(unsigned Opcode) { switch (Opcode) { case VRCP14PSZ128m: case VRCP14PSZ128mb: case VRCP14PSZ128mbk: case VRCP14PSZ128mbkz: case VRCP14PSZ128mk: case VRCP14PSZ128mkz: case VRCP14PSZ128r: case VRCP14PSZ128rk: case VRCP14PSZ128rkz: case VRCP14PSZ256m: case VRCP14PSZ256mb: case VRCP14PSZ256mbk: case VRCP14PSZ256mbkz: case VRCP14PSZ256mk: case VRCP14PSZ256mkz: case VRCP14PSZ256r: case VRCP14PSZ256rk: case VRCP14PSZ256rkz: case VRCP14PSZm: case VRCP14PSZmb: case VRCP14PSZmbk: case VRCP14PSZmbkz: case VRCP14PSZmk: case VRCP14PSZmkz: case VRCP14PSZr: case VRCP14PSZrk: case VRCP14PSZrkz: return true; } return false; } bool isVZEROUPPER(unsigned Opcode) { return Opcode == VZEROUPPER; } bool isVPAVGB(unsigned Opcode) { switch (Opcode) { case VPAVGBYrm: case VPAVGBYrr: case VPAVGBZ128rm: case VPAVGBZ128rmk: case VPAVGBZ128rmkz: case VPAVGBZ128rr: case VPAVGBZ128rrk: case VPAVGBZ128rrkz: case VPAVGBZ256rm: case VPAVGBZ256rmk: case VPAVGBZ256rmkz: case VPAVGBZ256rr: case VPAVGBZ256rrk: case VPAVGBZ256rrkz: case VPAVGBZrm: case VPAVGBZrmk: case VPAVGBZrmkz: case VPAVGBZrr: case VPAVGBZrrk: case VPAVGBZrrkz: case VPAVGBrm: case VPAVGBrr: return true; } return false; } bool isVPMOVSXBD(unsigned Opcode) { switch (Opcode) { case VPMOVSXBDYrm: case VPMOVSXBDYrr: case VPMOVSXBDZ128rm: case VPMOVSXBDZ128rmk: case VPMOVSXBDZ128rmkz: case VPMOVSXBDZ128rr: case VPMOVSXBDZ128rrk: case VPMOVSXBDZ128rrkz: case VPMOVSXBDZ256rm: case VPMOVSXBDZ256rmk: case VPMOVSXBDZ256rmkz: case VPMOVSXBDZ256rr: case VPMOVSXBDZ256rrk: case VPMOVSXBDZ256rrkz: case VPMOVSXBDZrm: case VPMOVSXBDZrmk: case VPMOVSXBDZrmkz: case VPMOVSXBDZrr: case VPMOVSXBDZrrk: case VPMOVSXBDZrrkz: case VPMOVSXBDrm: case VPMOVSXBDrr: return true; } return false; } bool isRDGSBASE(unsigned Opcode) { switch (Opcode) { case RDGSBASE: case RDGSBASE64: return true; } return false; } bool isFLDCW(unsigned Opcode) { return Opcode == FLDCW16m; } bool isLIDTD(unsigned Opcode) { return Opcode == LIDT32m; } bool isVGATHERPF1DPD(unsigned Opcode) { return Opcode == VGATHERPF1DPDm; } bool isSFENCE(unsigned Opcode) { return Opcode == SFENCE; } bool isVPMOVSXBQ(unsigned Opcode) { switch (Opcode) { case VPMOVSXBQYrm: case VPMOVSXBQYrr: case VPMOVSXBQZ128rm: case VPMOVSXBQZ128rmk: case VPMOVSXBQZ128rmkz: case VPMOVSXBQZ128rr: case VPMOVSXBQZ128rrk: case VPMOVSXBQZ128rrkz: case VPMOVSXBQZ256rm: case VPMOVSXBQZ256rmk: case VPMOVSXBQZ256rmkz: case VPMOVSXBQZ256rr: case VPMOVSXBQZ256rrk: case VPMOVSXBQZ256rrkz: case VPMOVSXBQZrm: case VPMOVSXBQZrmk: case VPMOVSXBQZrmkz: case VPMOVSXBQZrr: case VPMOVSXBQZrrk: case VPMOVSXBQZrrkz: case VPMOVSXBQrm: case VPMOVSXBQrr: return true; } return false; } bool isVPAVGW(unsigned Opcode) { switch (Opcode) { case VPAVGWYrm: case VPAVGWYrr: case VPAVGWZ128rm: case VPAVGWZ128rmk: case VPAVGWZ128rmkz: case VPAVGWZ128rr: case VPAVGWZ128rrk: case VPAVGWZ128rrkz: case VPAVGWZ256rm: case VPAVGWZ256rmk: case VPAVGWZ256rmkz: case VPAVGWZ256rr: case VPAVGWZ256rrk: case VPAVGWZ256rrkz: case VPAVGWZrm: case VPAVGWZrmk: case VPAVGWZrmkz: case VPAVGWZrr: case VPAVGWZrrk: case VPAVGWZrrkz: case VPAVGWrm: case VPAVGWrr: return true; } return false; } bool isVPMOVSXBW(unsigned Opcode) { switch (Opcode) { case VPMOVSXBWYrm: case VPMOVSXBWYrr: case VPMOVSXBWZ128rm: case VPMOVSXBWZ128rmk: case VPMOVSXBWZ128rmkz: case VPMOVSXBWZ128rr: case VPMOVSXBWZ128rrk: case VPMOVSXBWZ128rrkz: case VPMOVSXBWZ256rm: case VPMOVSXBWZ256rmk: case VPMOVSXBWZ256rmkz: case VPMOVSXBWZ256rr: case VPMOVSXBWZ256rrk: case VPMOVSXBWZ256rrkz: case VPMOVSXBWZrm: case VPMOVSXBWZrmk: case VPMOVSXBWZrmkz: case VPMOVSXBWZrr: case VPMOVSXBWZrrk: case VPMOVSXBWZrrkz: case VPMOVSXBWrm: case VPMOVSXBWrr: return true; } return false; } bool isFCMOVB(unsigned Opcode) { return Opcode == CMOVB_F; } bool isVMASKMOVDQU(unsigned Opcode) { return Opcode == VMASKMOVDQU64; } bool isVGATHERPF1DPS(unsigned Opcode) { return Opcode == VGATHERPF1DPSm; } bool isFCMOVE(unsigned Opcode) { return Opcode == CMOVE_F; } bool isVMLOAD(unsigned Opcode) { switch (Opcode) { case VMLOAD32: case VMLOAD64: return true; } return false; } bool isLIDTW(unsigned Opcode) { return Opcode == LIDT16m; } bool isVFNMADD231PD(unsigned Opcode) { switch (Opcode) { case VFNMADD231PDYm: case VFNMADD231PDYr: case VFNMADD231PDZ128m: case VFNMADD231PDZ128mb: case VFNMADD231PDZ128mbk: case VFNMADD231PDZ128mbkz: case VFNMADD231PDZ128mk: case VFNMADD231PDZ128mkz: case VFNMADD231PDZ128r: case VFNMADD231PDZ128rk: case VFNMADD231PDZ128rkz: case VFNMADD231PDZ256m: case VFNMADD231PDZ256mb: case VFNMADD231PDZ256mbk: case VFNMADD231PDZ256mbkz: case VFNMADD231PDZ256mk: case VFNMADD231PDZ256mkz: case VFNMADD231PDZ256r: case VFNMADD231PDZ256rk: case VFNMADD231PDZ256rkz: case VFNMADD231PDZm: case VFNMADD231PDZmb: case VFNMADD231PDZmbk: case VFNMADD231PDZmbkz: case VFNMADD231PDZmk: case VFNMADD231PDZmkz: case VFNMADD231PDZr: case VFNMADD231PDZrb: case VFNMADD231PDZrbk: case VFNMADD231PDZrbkz: case VFNMADD231PDZrk: case VFNMADD231PDZrkz: case VFNMADD231PDm: case VFNMADD231PDr: return true; } return false; } bool isDEC(unsigned Opcode) { switch (Opcode) { case DEC16m: case DEC16r: case DEC16r_alt: case DEC32m: case DEC32r: case DEC32r_alt: case DEC64m: case DEC64r: case DEC8m: case DEC8r: return true; } return false; } bool isVFNMADD231PH(unsigned Opcode) { switch (Opcode) { case VFNMADD231PHZ128m: case VFNMADD231PHZ128mb: case VFNMADD231PHZ128mbk: case VFNMADD231PHZ128mbkz: case VFNMADD231PHZ128mk: case VFNMADD231PHZ128mkz: case VFNMADD231PHZ128r: case VFNMADD231PHZ128rk: case VFNMADD231PHZ128rkz: case VFNMADD231PHZ256m: case VFNMADD231PHZ256mb: case VFNMADD231PHZ256mbk: case VFNMADD231PHZ256mbkz: case VFNMADD231PHZ256mk: case VFNMADD231PHZ256mkz: case VFNMADD231PHZ256r: case VFNMADD231PHZ256rk: case VFNMADD231PHZ256rkz: case VFNMADD231PHZm: case VFNMADD231PHZmb: case VFNMADD231PHZmbk: case VFNMADD231PHZmbkz: case VFNMADD231PHZmk: case VFNMADD231PHZmkz: case VFNMADD231PHZr: case VFNMADD231PHZrb: case VFNMADD231PHZrbk: case VFNMADD231PHZrbkz: case VFNMADD231PHZrk: case VFNMADD231PHZrkz: return true; } return false; } bool isFCMOVU(unsigned Opcode) { return Opcode == CMOVP_F; } bool isRSTORSSP(unsigned Opcode) { return Opcode == RSTORSSP; } bool isVMAXPD(unsigned Opcode) { switch (Opcode) { case VMAXPDYrm: case VMAXPDYrr: case VMAXPDZ128rm: case VMAXPDZ128rmb: case VMAXPDZ128rmbk: case VMAXPDZ128rmbkz: case VMAXPDZ128rmk: case VMAXPDZ128rmkz: case VMAXPDZ128rr: case VMAXPDZ128rrk: case VMAXPDZ128rrkz: case VMAXPDZ256rm: case VMAXPDZ256rmb: case VMAXPDZ256rmbk: case VMAXPDZ256rmbkz: case VMAXPDZ256rmk: case VMAXPDZ256rmkz: case VMAXPDZ256rr: case VMAXPDZ256rrk: case VMAXPDZ256rrkz: case VMAXPDZrm: case VMAXPDZrmb: case VMAXPDZrmbk: case VMAXPDZrmbkz: case VMAXPDZrmk: case VMAXPDZrmkz: case VMAXPDZrr: case VMAXPDZrrb: case VMAXPDZrrbk: case VMAXPDZrrbkz: case VMAXPDZrrk: case VMAXPDZrrkz: case VMAXPDrm: case VMAXPDrr: return true; } return false; } bool isVMAXPH(unsigned Opcode) { switch (Opcode) { case VMAXPHZ128rm: case VMAXPHZ128rmb: case VMAXPHZ128rmbk: case VMAXPHZ128rmbkz: case VMAXPHZ128rmk: case VMAXPHZ128rmkz: case VMAXPHZ128rr: case VMAXPHZ128rrk: case VMAXPHZ128rrkz: case VMAXPHZ256rm: case VMAXPHZ256rmb: case VMAXPHZ256rmbk: case VMAXPHZ256rmbkz: case VMAXPHZ256rmk: case VMAXPHZ256rmkz: case VMAXPHZ256rr: case VMAXPHZ256rrk: case VMAXPHZ256rrkz: case VMAXPHZrm: case VMAXPHZrmb: case VMAXPHZrmbk: case VMAXPHZrmbkz: case VMAXPHZrmk: case VMAXPHZrmkz: case VMAXPHZrr: case VMAXPHZrrb: case VMAXPHZrrbk: case VMAXPHZrrbkz: case VMAXPHZrrk: case VMAXPHZrrkz: return true; } return false; } bool isPUNPCKLBW(unsigned Opcode) { switch (Opcode) { case MMX_PUNPCKLBWrm: case MMX_PUNPCKLBWrr: case PUNPCKLBWrm: case PUNPCKLBWrr: return true; } return false; } bool isIMUL(unsigned Opcode) { switch (Opcode) { case IMUL16m: case IMUL16r: case IMUL16rm: case IMUL16rmi: case IMUL16rmi8: case IMUL16rr: case IMUL16rri: case IMUL16rri8: case IMUL32m: case IMUL32r: case IMUL32rm: case IMUL32rmi: case IMUL32rmi8: case IMUL32rr: case IMUL32rri: case IMUL32rri8: case IMUL64m: case IMUL64r: case IMUL64rm: case IMUL64rmi32: case IMUL64rmi8: case IMUL64rr: case IMUL64rri32: case IMUL64rri8: case IMUL8m: case IMUL8r: return true; } return false; } bool isTILELOADDT1(unsigned Opcode) { return Opcode == TILELOADDT1; } bool isVFNMADD231PS(unsigned Opcode) { switch (Opcode) { case VFNMADD231PSYm: case VFNMADD231PSYr: case VFNMADD231PSZ128m: case VFNMADD231PSZ128mb: case VFNMADD231PSZ128mbk: case VFNMADD231PSZ128mbkz: case VFNMADD231PSZ128mk: case VFNMADD231PSZ128mkz: case VFNMADD231PSZ128r: case VFNMADD231PSZ128rk: case VFNMADD231PSZ128rkz: case VFNMADD231PSZ256m: case VFNMADD231PSZ256mb: case VFNMADD231PSZ256mbk: case VFNMADD231PSZ256mbkz: case VFNMADD231PSZ256mk: case VFNMADD231PSZ256mkz: case VFNMADD231PSZ256r: case VFNMADD231PSZ256rk: case VFNMADD231PSZ256rkz: case VFNMADD231PSZm: case VFNMADD231PSZmb: case VFNMADD231PSZmbk: case VFNMADD231PSZmbkz: case VFNMADD231PSZmk: case VFNMADD231PSZmkz: case VFNMADD231PSZr: case VFNMADD231PSZrb: case VFNMADD231PSZrbk: case VFNMADD231PSZrbkz: case VFNMADD231PSZrk: case VFNMADD231PSZrkz: case VFNMADD231PSm: case VFNMADD231PSr: return true; } return false; } bool isVMAXPS(unsigned Opcode) { switch (Opcode) { case VMAXPSYrm: case VMAXPSYrr: case VMAXPSZ128rm: case VMAXPSZ128rmb: case VMAXPSZ128rmbk: case VMAXPSZ128rmbkz: case VMAXPSZ128rmk: case VMAXPSZ128rmkz: case VMAXPSZ128rr: case VMAXPSZ128rrk: case VMAXPSZ128rrkz: case VMAXPSZ256rm: case VMAXPSZ256rmb: case VMAXPSZ256rmbk: case VMAXPSZ256rmbkz: case VMAXPSZ256rmk: case VMAXPSZ256rmkz: case VMAXPSZ256rr: case VMAXPSZ256rrk: case VMAXPSZ256rrkz: case VMAXPSZrm: case VMAXPSZrmb: case VMAXPSZrmbk: case VMAXPSZrmbkz: case VMAXPSZrmk: case VMAXPSZrmkz: case VMAXPSZrr: case VMAXPSZrrb: case VMAXPSZrrbk: case VMAXPSZrrbkz: case VMAXPSZrrk: case VMAXPSZrrkz: case VMAXPSrm: case VMAXPSrr: return true; } return false; } bool isVPXOR(unsigned Opcode) { switch (Opcode) { case VPXORYrm: case VPXORYrr: case VPXORrm: case VPXORrr: return true; } return false; } bool isOR(unsigned Opcode) { switch (Opcode) { case OR16i16: case OR16mi: case OR16mi8: case OR16mr: case OR16ri: case OR16ri8: case OR16rm: case OR16rr: case OR16rr_REV: case OR32i32: case OR32mi: case OR32mi8: case OR32mr: case OR32ri: case OR32ri8: case OR32rm: case OR32rr: case OR32rr_REV: case OR64i32: case OR64mi32: case OR64mi8: case OR64mr: case OR64ri32: case OR64ri8: case OR64rm: case OR64rr: case OR64rr_REV: case OR8i8: case OR8mi: case OR8mi8: case OR8mr: case OR8ri: case OR8ri8: case OR8rm: case OR8rr: case OR8rr_REV: return true; } return false; } bool isMOVZX(unsigned Opcode) { switch (Opcode) { case MOVZX16rm16: case MOVZX16rm8: case MOVZX16rr16: case MOVZX16rr8: case MOVZX32rm16: case MOVZX32rm8: case MOVZX32rr16: case MOVZX32rr8: case MOVZX64rm16: case MOVZX64rm8: case MOVZX64rr16: case MOVZX64rr8: return true; } return false; } bool isXSAVES64(unsigned Opcode) { return Opcode == XSAVES64; } bool isVPUNPCKHBW(unsigned Opcode) { switch (Opcode) { case VPUNPCKHBWYrm: case VPUNPCKHBWYrr: case VPUNPCKHBWZ128rm: case VPUNPCKHBWZ128rmk: case VPUNPCKHBWZ128rmkz: case VPUNPCKHBWZ128rr: case VPUNPCKHBWZ128rrk: case VPUNPCKHBWZ128rrkz: case VPUNPCKHBWZ256rm: case VPUNPCKHBWZ256rmk: case VPUNPCKHBWZ256rmkz: case VPUNPCKHBWZ256rr: case VPUNPCKHBWZ256rrk: case VPUNPCKHBWZ256rrkz: case VPUNPCKHBWZrm: case VPUNPCKHBWZrmk: case VPUNPCKHBWZrmkz: case VPUNPCKHBWZrr: case VPUNPCKHBWZrrk: case VPUNPCKHBWZrrkz: case VPUNPCKHBWrm: case VPUNPCKHBWrr: return true; } return false; } bool isSYSRET(unsigned Opcode) { return Opcode == SYSRET; } bool isVFMSUBSD(unsigned Opcode) { switch (Opcode) { case VFMSUBSD4mr: case VFMSUBSD4rm: case VFMSUBSD4rr: case VFMSUBSD4rr_REV: return true; } return false; } bool isVFNMADD213SD(unsigned Opcode) { switch (Opcode) { case VFNMADD213SDZm_Int: case VFNMADD213SDZm_Intk: case VFNMADD213SDZm_Intkz: case VFNMADD213SDZr_Int: case VFNMADD213SDZr_Intk: case VFNMADD213SDZr_Intkz: case VFNMADD213SDZrb_Int: case VFNMADD213SDZrb_Intk: case VFNMADD213SDZrb_Intkz: case VFNMADD213SDm_Int: case VFNMADD213SDr_Int: return true; } return false; } bool isVFNMADD213SH(unsigned Opcode) { switch (Opcode) { case VFNMADD213SHZm_Int: case VFNMADD213SHZm_Intk: case VFNMADD213SHZm_Intkz: case VFNMADD213SHZr_Int: case VFNMADD213SHZr_Intk: case VFNMADD213SHZr_Intkz: case VFNMADD213SHZrb_Int: case VFNMADD213SHZrb_Intk: case VFNMADD213SHZrb_Intkz: return true; } return false; } bool isSGDT(unsigned Opcode) { return Opcode == SGDT64m; } bool isVRCP14SD(unsigned Opcode) { switch (Opcode) { case VRCP14SDZrm: case VRCP14SDZrmk: case VRCP14SDZrmkz: case VRCP14SDZrr: case VRCP14SDZrrk: case VRCP14SDZrrkz: return true; } return false; } bool isVPMOVSXDQ(unsigned Opcode) { switch (Opcode) { case VPMOVSXDQYrm: case VPMOVSXDQYrr: case VPMOVSXDQZ128rm: case VPMOVSXDQZ128rmk: case VPMOVSXDQZ128rmkz: case VPMOVSXDQZ128rr: case VPMOVSXDQZ128rrk: case VPMOVSXDQZ128rrkz: case VPMOVSXDQZ256rm: case VPMOVSXDQZ256rmk: case VPMOVSXDQZ256rmkz: case VPMOVSXDQZ256rr: case VPMOVSXDQZ256rrk: case VPMOVSXDQZ256rrkz: case VPMOVSXDQZrm: case VPMOVSXDQZrmk: case VPMOVSXDQZrmkz: case VPMOVSXDQZrr: case VPMOVSXDQZrrk: case VPMOVSXDQZrrkz: case VPMOVSXDQrm: case VPMOVSXDQrr: return true; } return false; } bool isSYSEXIT(unsigned Opcode) { return Opcode == SYSEXIT; } bool isPMOVZXBD(unsigned Opcode) { switch (Opcode) { case PMOVZXBDrm: case PMOVZXBDrr: return true; } return false; } bool isVFNMADD213SS(unsigned Opcode) { switch (Opcode) { case VFNMADD213SSZm_Int: case VFNMADD213SSZm_Intk: case VFNMADD213SSZm_Intkz: case VFNMADD213SSZr_Int: case VFNMADD213SSZr_Intk: case VFNMADD213SSZr_Intkz: case VFNMADD213SSZrb_Int: case VFNMADD213SSZrb_Intk: case VFNMADD213SSZrb_Intkz: case VFNMADD213SSm_Int: case VFNMADD213SSr_Int: return true; } return false; } bool isVPMADCSSWD(unsigned Opcode) { switch (Opcode) { case VPMADCSSWDrm: case VPMADCSSWDrr: return true; } return false; } bool isVPMULUDQ(unsigned Opcode) { switch (Opcode) { case VPMULUDQYrm: case VPMULUDQYrr: case VPMULUDQZ128rm: case VPMULUDQZ128rmb: case VPMULUDQZ128rmbk: case VPMULUDQZ128rmbkz: case VPMULUDQZ128rmk: case VPMULUDQZ128rmkz: case VPMULUDQZ128rr: case VPMULUDQZ128rrk: case VPMULUDQZ128rrkz: case VPMULUDQZ256rm: case VPMULUDQZ256rmb: case VPMULUDQZ256rmbk: case VPMULUDQZ256rmbkz: case VPMULUDQZ256rmk: case VPMULUDQZ256rmkz: case VPMULUDQZ256rr: case VPMULUDQZ256rrk: case VPMULUDQZ256rrkz: case VPMULUDQZrm: case VPMULUDQZrmb: case VPMULUDQZrmbk: case VPMULUDQZrmbkz: case VPMULUDQZrmk: case VPMULUDQZrmkz: case VPMULUDQZrr: case VPMULUDQZrrk: case VPMULUDQZrrkz: case VPMULUDQrm: case VPMULUDQrr: return true; } return false; } bool isVFMSUBSS(unsigned Opcode) { switch (Opcode) { case VFMSUBSS4mr: case VFMSUBSS4rm: case VFMSUBSS4rr: case VFMSUBSS4rr_REV: return true; } return false; } bool isVPXORD(unsigned Opcode) { switch (Opcode) { case VPXORDZ128rm: case VPXORDZ128rmb: case VPXORDZ128rmbk: case VPXORDZ128rmbkz: case VPXORDZ128rmk: case VPXORDZ128rmkz: case VPXORDZ128rr: case VPXORDZ128rrk: case VPXORDZ128rrkz: case VPXORDZ256rm: case VPXORDZ256rmb: case VPXORDZ256rmbk: case VPXORDZ256rmbkz: case VPXORDZ256rmk: case VPXORDZ256rmkz: case VPXORDZ256rr: case VPXORDZ256rrk: case VPXORDZ256rrkz: case VPXORDZrm: case VPXORDZrmb: case VPXORDZrmbk: case VPXORDZrmbkz: case VPXORDZrmk: case VPXORDZrmkz: case VPXORDZrr: case VPXORDZrrk: case VPXORDZrrkz: return true; } return false; } bool isXSAVEOPT64(unsigned Opcode) { return Opcode == XSAVEOPT64; } bool isXSHA1(unsigned Opcode) { return Opcode == XSHA1; } bool isVRCP14SS(unsigned Opcode) { switch (Opcode) { case VRCP14SSZrm: case VRCP14SSZrmk: case VRCP14SSZrmkz: case VRCP14SSZrr: case VRCP14SSZrrk: case VRCP14SSZrrkz: return true; } return false; } bool isPMOVZXBQ(unsigned Opcode) { switch (Opcode) { case PMOVZXBQrm: case PMOVZXBQrr: return true; } return false; } bool isSHL(unsigned Opcode) { switch (Opcode) { case SHL16m1: case SHL16mCL: case SHL16mi: case SHL16r1: case SHL16rCL: case SHL16ri: case SHL32m1: case SHL32mCL: case SHL32mi: case SHL32r1: case SHL32rCL: case SHL32ri: case SHL64m1: case SHL64mCL: case SHL64mi: case SHL64r1: case SHL64rCL: case SHL64ri: case SHL8m1: case SHL8mCL: case SHL8mi: case SHL8r1: case SHL8rCL: case SHL8ri: return true; } return false; } bool isPMOVZXBW(unsigned Opcode) { switch (Opcode) { case PMOVZXBWrm: case PMOVZXBWrr: return true; } return false; } bool isPMULLD(unsigned Opcode) { switch (Opcode) { case PMULLDrm: case PMULLDrr: return true; } return false; } bool isVCVTPS2UQQ(unsigned Opcode) { switch (Opcode) { case VCVTPS2UQQZ128rm: case VCVTPS2UQQZ128rmb: case VCVTPS2UQQZ128rmbk: case VCVTPS2UQQZ128rmbkz: case VCVTPS2UQQZ128rmk: case VCVTPS2UQQZ128rmkz: case VCVTPS2UQQZ128rr: case VCVTPS2UQQZ128rrk: case VCVTPS2UQQZ128rrkz: case VCVTPS2UQQZ256rm: case VCVTPS2UQQZ256rmb: case VCVTPS2UQQZ256rmbk: case VCVTPS2UQQZ256rmbkz: case VCVTPS2UQQZ256rmk: case VCVTPS2UQQZ256rmkz: case VCVTPS2UQQZ256rr: case VCVTPS2UQQZ256rrk: case VCVTPS2UQQZ256rrkz: case VCVTPS2UQQZrm: case VCVTPS2UQQZrmb: case VCVTPS2UQQZrmbk: case VCVTPS2UQQZrmbkz: case VCVTPS2UQQZrmk: case VCVTPS2UQQZrmkz: case VCVTPS2UQQZrr: case VCVTPS2UQQZrrb: case VCVTPS2UQQZrrbk: case VCVTPS2UQQZrrbkz: case VCVTPS2UQQZrrk: case VCVTPS2UQQZrrkz: return true; } return false; } bool isVPBLENDD(unsigned Opcode) { switch (Opcode) { case VPBLENDDYrmi: case VPBLENDDYrri: case VPBLENDDrmi: case VPBLENDDrri: return true; } return false; } bool isVPXORQ(unsigned Opcode) { switch (Opcode) { case VPXORQZ128rm: case VPXORQZ128rmb: case VPXORQZ128rmbk: case VPXORQZ128rmbkz: case VPXORQZ128rmk: case VPXORQZ128rmkz: case VPXORQZ128rr: case VPXORQZ128rrk: case VPXORQZ128rrkz: case VPXORQZ256rm: case VPXORQZ256rmb: case VPXORQZ256rmbk: case VPXORQZ256rmbkz: case VPXORQZ256rmk: case VPXORQZ256rmkz: case VPXORQZ256rr: case VPXORQZ256rrk: case VPXORQZ256rrkz: case VPXORQZrm: case VPXORQZrmb: case VPXORQZrmbk: case VPXORQZrmbkz: case VPXORQZrmk: case VPXORQZrmkz: case VPXORQZrr: case VPXORQZrrk: case VPXORQZrrkz: return true; } return false; } bool isPUNPCKLDQ(unsigned Opcode) { switch (Opcode) { case MMX_PUNPCKLDQrm: case MMX_PUNPCKLDQrr: case PUNPCKLDQrm: case PUNPCKLDQrr: return true; } return false; } bool isSHR(unsigned Opcode) { switch (Opcode) { case SHR16m1: case SHR16mCL: case SHR16mi: case SHR16r1: case SHR16rCL: case SHR16ri: case SHR32m1: case SHR32mCL: case SHR32mi: case SHR32r1: case SHR32rCL: case SHR32ri: case SHR64m1: case SHR64mCL: case SHR64mi: case SHR64r1: case SHR64rCL: case SHR64ri: case SHR8m1: case SHR8mCL: case SHR8mi: case SHR8r1: case SHR8rCL: case SHR8ri: return true; } return false; } bool isVPUNPCKLQDQ(unsigned Opcode) { switch (Opcode) { case VPUNPCKLQDQYrm: case VPUNPCKLQDQYrr: case VPUNPCKLQDQZ128rm: case VPUNPCKLQDQZ128rmb: case VPUNPCKLQDQZ128rmbk: case VPUNPCKLQDQZ128rmbkz: case VPUNPCKLQDQZ128rmk: case VPUNPCKLQDQZ128rmkz: case VPUNPCKLQDQZ128rr: case VPUNPCKLQDQZ128rrk: case VPUNPCKLQDQZ128rrkz: case VPUNPCKLQDQZ256rm: case VPUNPCKLQDQZ256rmb: case VPUNPCKLQDQZ256rmbk: case VPUNPCKLQDQZ256rmbkz: case VPUNPCKLQDQZ256rmk: case VPUNPCKLQDQZ256rmkz: case VPUNPCKLQDQZ256rr: case VPUNPCKLQDQZ256rrk: case VPUNPCKLQDQZ256rrkz: case VPUNPCKLQDQZrm: case VPUNPCKLQDQZrmb: case VPUNPCKLQDQZrmbk: case VPUNPCKLQDQZrmbkz: case VPUNPCKLQDQZrmk: case VPUNPCKLQDQZrmkz: case VPUNPCKLQDQZrr: case VPUNPCKLQDQZrrk: case VPUNPCKLQDQZrrkz: case VPUNPCKLQDQrm: case VPUNPCKLQDQrr: return true; } return false; } bool isVCVTPD2DQ(unsigned Opcode) { switch (Opcode) { case VCVTPD2DQYrm: case VCVTPD2DQYrr: case VCVTPD2DQZ128rm: case VCVTPD2DQZ128rmb: case VCVTPD2DQZ128rmbk: case VCVTPD2DQZ128rmbkz: case VCVTPD2DQZ128rmk: case VCVTPD2DQZ128rmkz: case VCVTPD2DQZ128rr: case VCVTPD2DQZ128rrk: case VCVTPD2DQZ128rrkz: case VCVTPD2DQZ256rm: case VCVTPD2DQZ256rmb: case VCVTPD2DQZ256rmbk: case VCVTPD2DQZ256rmbkz: case VCVTPD2DQZ256rmk: case VCVTPD2DQZ256rmkz: case VCVTPD2DQZ256rr: case VCVTPD2DQZ256rrk: case VCVTPD2DQZ256rrkz: case VCVTPD2DQZrm: case VCVTPD2DQZrmb: case VCVTPD2DQZrmbk: case VCVTPD2DQZrmbkz: case VCVTPD2DQZrmk: case VCVTPD2DQZrmkz: case VCVTPD2DQZrr: case VCVTPD2DQZrrb: case VCVTPD2DQZrrbk: case VCVTPD2DQZrrbkz: case VCVTPD2DQZrrk: case VCVTPD2DQZrrkz: case VCVTPD2DQrm: case VCVTPD2DQrr: return true; } return false; } bool isPMULLW(unsigned Opcode) { switch (Opcode) { case MMX_PMULLWrm: case MMX_PMULLWrr: case PMULLWrm: case PMULLWrr: return true; } return false; } bool isVPBLENDW(unsigned Opcode) { switch (Opcode) { case VPBLENDWYrmi: case VPBLENDWYrri: case VPBLENDWrmi: case VPBLENDWrri: return true; } return false; } bool isAESENCLAST(unsigned Opcode) { switch (Opcode) { case AESENCLASTrm: case AESENCLASTrr: return true; } return false; } bool isVPUNPCKHDQ(unsigned Opcode) { switch (Opcode) { case VPUNPCKHDQYrm: case VPUNPCKHDQYrr: case VPUNPCKHDQZ128rm: case VPUNPCKHDQZ128rmb: case VPUNPCKHDQZ128rmbk: case VPUNPCKHDQZ128rmbkz: case VPUNPCKHDQZ128rmk: case VPUNPCKHDQZ128rmkz: case VPUNPCKHDQZ128rr: case VPUNPCKHDQZ128rrk: case VPUNPCKHDQZ128rrkz: case VPUNPCKHDQZ256rm: case VPUNPCKHDQZ256rmb: case VPUNPCKHDQZ256rmbk: case VPUNPCKHDQZ256rmbkz: case VPUNPCKHDQZ256rmk: case VPUNPCKHDQZ256rmkz: case VPUNPCKHDQZ256rr: case VPUNPCKHDQZ256rrk: case VPUNPCKHDQZ256rrkz: case VPUNPCKHDQZrm: case VPUNPCKHDQZrmb: case VPUNPCKHDQZrmbk: case VPUNPCKHDQZrmbkz: case VPUNPCKHDQZrmk: case VPUNPCKHDQZrmkz: case VPUNPCKHDQZrr: case VPUNPCKHDQZrrk: case VPUNPCKHDQZrrkz: case VPUNPCKHDQrm: case VPUNPCKHDQrr: return true; } return false; } bool isVFNMADD231SD(unsigned Opcode) { switch (Opcode) { case VFNMADD231SDZm_Int: case VFNMADD231SDZm_Intk: case VFNMADD231SDZm_Intkz: case VFNMADD231SDZr_Int: case VFNMADD231SDZr_Intk: case VFNMADD231SDZr_Intkz: case VFNMADD231SDZrb_Int: case VFNMADD231SDZrb_Intk: case VFNMADD231SDZrb_Intkz: case VFNMADD231SDm_Int: case VFNMADD231SDr_Int: return true; } return false; } bool isVFNMADD231SH(unsigned Opcode) { switch (Opcode) { case VFNMADD231SHZm_Int: case VFNMADD231SHZm_Intk: case VFNMADD231SHZm_Intkz: case VFNMADD231SHZr_Int: case VFNMADD231SHZr_Intk: case VFNMADD231SHZr_Intkz: case VFNMADD231SHZrb_Int: case VFNMADD231SHZrb_Intk: case VFNMADD231SHZrb_Intkz: return true; } return false; } bool isVPMOVSDB(unsigned Opcode) { switch (Opcode) { case VPMOVSDBZ128mr: case VPMOVSDBZ128mrk: case VPMOVSDBZ128rr: case VPMOVSDBZ128rrk: case VPMOVSDBZ128rrkz: case VPMOVSDBZ256mr: case VPMOVSDBZ256mrk: case VPMOVSDBZ256rr: case VPMOVSDBZ256rrk: case VPMOVSDBZ256rrkz: case VPMOVSDBZmr: case VPMOVSDBZmrk: case VPMOVSDBZrr: case VPMOVSDBZrrk: case VPMOVSDBZrrkz: return true; } return false; } bool isVMAXSD(unsigned Opcode) { switch (Opcode) { case VMAXSDZrm_Int: case VMAXSDZrm_Intk: case VMAXSDZrm_Intkz: case VMAXSDZrr_Int: case VMAXSDZrr_Intk: case VMAXSDZrr_Intkz: case VMAXSDZrrb_Int: case VMAXSDZrrb_Intk: case VMAXSDZrrb_Intkz: case VMAXSDrm_Int: case VMAXSDrr_Int: return true; } return false; } bool isVMAXSH(unsigned Opcode) { switch (Opcode) { case VMAXSHZrm_Int: case VMAXSHZrm_Intk: case VMAXSHZrm_Intkz: case VMAXSHZrr_Int: case VMAXSHZrr_Intk: case VMAXSHZrr_Intkz: case VMAXSHZrrb_Int: case VMAXSHZrrb_Intk: case VMAXSHZrrb_Intkz: return true; } return false; } bool isLAHF(unsigned Opcode) { return Opcode == LAHF; } bool isCVTTPD2DQ(unsigned Opcode) { switch (Opcode) { case CVTTPD2DQrm: case CVTTPD2DQrr: return true; } return false; } bool isUNPCKHPD(unsigned Opcode) { switch (Opcode) { case UNPCKHPDrm: case UNPCKHPDrr: return true; } return false; } bool isVFNMADD231SS(unsigned Opcode) { switch (Opcode) { case VFNMADD231SSZm_Int: case VFNMADD231SSZm_Intk: case VFNMADD231SSZm_Intkz: case VFNMADD231SSZr_Int: case VFNMADD231SSZr_Intk: case VFNMADD231SSZr_Intkz: case VFNMADD231SSZrb_Int: case VFNMADD231SSZrb_Intk: case VFNMADD231SSZrb_Intkz: case VFNMADD231SSm_Int: case VFNMADD231SSr_Int: return true; } return false; } bool isVMAXSS(unsigned Opcode) { switch (Opcode) { case VMAXSSZrm_Int: case VMAXSSZrm_Intk: case VMAXSSZrm_Intkz: case VMAXSSZrr_Int: case VMAXSSZrr_Intk: case VMAXSSZrr_Intkz: case VMAXSSZrrb_Int: case VMAXSSZrrb_Intk: case VMAXSSZrrb_Intkz: case VMAXSSrm_Int: case VMAXSSrr_Int: return true; } return false; } bool isVPMACSSDD(unsigned Opcode) { switch (Opcode) { case VPMACSSDDrm: case VPMACSSDDrr: return true; } return false; } bool isVPMOVSDW(unsigned Opcode) { switch (Opcode) { case VPMOVSDWZ128mr: case VPMOVSDWZ128mrk: case VPMOVSDWZ128rr: case VPMOVSDWZ128rrk: case VPMOVSDWZ128rrkz: case VPMOVSDWZ256mr: case VPMOVSDWZ256mrk: case VPMOVSDWZ256rr: case VPMOVSDWZ256rrk: case VPMOVSDWZ256rrkz: case VPMOVSDWZmr: case VPMOVSDWZmrk: case VPMOVSDWZrr: case VPMOVSDWZrrk: case VPMOVSDWZrrkz: return true; } return false; } bool isPMOVZXDQ(unsigned Opcode) { switch (Opcode) { case PMOVZXDQrm: case PMOVZXDQrr: return true; } return false; } bool isUNPCKHPS(unsigned Opcode) { switch (Opcode) { case UNPCKHPSrm: case UNPCKHPSrr: return true; } return false; } bool isFCOMI(unsigned Opcode) { return Opcode == COM_FIr; } bool isCLFLUSH(unsigned Opcode) { return Opcode == CLFLUSH; } bool isTILELOADD(unsigned Opcode) { return Opcode == TILELOADD; } bool isFCOMP(unsigned Opcode) { switch (Opcode) { case COMP_FST0r: case FCOMP32m: case FCOMP64m: return true; } return false; } bool isDIV(unsigned Opcode) { switch (Opcode) { case DIV16m: case DIV16r: case DIV32m: case DIV32r: case DIV64m: case DIV64r: case DIV8m: case DIV8r: return true; } return false; } bool isVPMACSWD(unsigned Opcode) { switch (Opcode) { case VPMACSWDrm: case VPMACSWDrr: return true; } return false; } bool isFPREM1(unsigned Opcode) { return Opcode == FPREM1; } bool isVSCATTERQPD(unsigned Opcode) { switch (Opcode) { case VSCATTERQPDZ128mr: case VSCATTERQPDZ256mr: case VSCATTERQPDZmr: return true; } return false; } bool isFYL2X(unsigned Opcode) { return Opcode == FYL2X; } bool isVPMACSWW(unsigned Opcode) { switch (Opcode) { case VPMACSWWrm: case VPMACSWWrr: return true; } return false; } bool isPFMAX(unsigned Opcode) { switch (Opcode) { case PFMAXrm: case PFMAXrr: return true; } return false; } bool isVPSHUFB(unsigned Opcode) { switch (Opcode) { case VPSHUFBYrm: case VPSHUFBYrr: case VPSHUFBZ128rm: case VPSHUFBZ128rmk: case VPSHUFBZ128rmkz: case VPSHUFBZ128rr: case VPSHUFBZ128rrk: case VPSHUFBZ128rrkz: case VPSHUFBZ256rm: case VPSHUFBZ256rmk: case VPSHUFBZ256rmkz: case VPSHUFBZ256rr: case VPSHUFBZ256rrk: case VPSHUFBZ256rrkz: case VPSHUFBZrm: case VPSHUFBZrmk: case VPSHUFBZrmkz: case VPSHUFBZrr: case VPSHUFBZrrk: case VPSHUFBZrrkz: case VPSHUFBrm: case VPSHUFBrr: return true; } return false; } bool isVCVTPD2UQQ(unsigned Opcode) { switch (Opcode) { case VCVTPD2UQQZ128rm: case VCVTPD2UQQZ128rmb: case VCVTPD2UQQZ128rmbk: case VCVTPD2UQQZ128rmbkz: case VCVTPD2UQQZ128rmk: case VCVTPD2UQQZ128rmkz: case VCVTPD2UQQZ128rr: case VCVTPD2UQQZ128rrk: case VCVTPD2UQQZ128rrkz: case VCVTPD2UQQZ256rm: case VCVTPD2UQQZ256rmb: case VCVTPD2UQQZ256rmbk: case VCVTPD2UQQZ256rmbkz: case VCVTPD2UQQZ256rmk: case VCVTPD2UQQZ256rmkz: case VCVTPD2UQQZ256rr: case VCVTPD2UQQZ256rrk: case VCVTPD2UQQZ256rrkz: case VCVTPD2UQQZrm: case VCVTPD2UQQZrmb: case VCVTPD2UQQZrmbk: case VCVTPD2UQQZrmbkz: case VCVTPD2UQQZrmk: case VCVTPD2UQQZrmkz: case VCVTPD2UQQZrr: case VCVTPD2UQQZrrb: case VCVTPD2UQQZrrbk: case VCVTPD2UQQZrrbkz: case VCVTPD2UQQZrrk: case VCVTPD2UQQZrrkz: return true; } return false; } bool isVPSHUFD(unsigned Opcode) { switch (Opcode) { case VPSHUFDYmi: case VPSHUFDYri: case VPSHUFDZ128mbi: case VPSHUFDZ128mbik: case VPSHUFDZ128mbikz: case VPSHUFDZ128mi: case VPSHUFDZ128mik: case VPSHUFDZ128mikz: case VPSHUFDZ128ri: case VPSHUFDZ128rik: case VPSHUFDZ128rikz: case VPSHUFDZ256mbi: case VPSHUFDZ256mbik: case VPSHUFDZ256mbikz: case VPSHUFDZ256mi: case VPSHUFDZ256mik: case VPSHUFDZ256mikz: case VPSHUFDZ256ri: case VPSHUFDZ256rik: case VPSHUFDZ256rikz: case VPSHUFDZmbi: case VPSHUFDZmbik: case VPSHUFDZmbikz: case VPSHUFDZmi: case VPSHUFDZmik: case VPSHUFDZmikz: case VPSHUFDZri: case VPSHUFDZrik: case VPSHUFDZrikz: case VPSHUFDmi: case VPSHUFDri: return true; } return false; } bool isVSCATTERQPS(unsigned Opcode) { switch (Opcode) { case VSCATTERQPSZ128mr: case VSCATTERQPSZ256mr: case VSCATTERQPSZmr: return true; } return false; } bool isGF2P8AFFINEINVQB(unsigned Opcode) { switch (Opcode) { case GF2P8AFFINEINVQBrmi: case GF2P8AFFINEINVQBrri: return true; } return false; } bool isFEMMS(unsigned Opcode) { return Opcode == FEMMS; } bool isKUNPCKWD(unsigned Opcode) { return Opcode == KUNPCKWDrr; } bool isVPCLMULQDQ(unsigned Opcode) { switch (Opcode) { case VPCLMULQDQYrm: case VPCLMULQDQYrr: case VPCLMULQDQZ128rm: case VPCLMULQDQZ128rr: case VPCLMULQDQZ256rm: case VPCLMULQDQZ256rr: case VPCLMULQDQZrm: case VPCLMULQDQZrr: case VPCLMULQDQrm: case VPCLMULQDQrr: return true; } return false; } bool isKORB(unsigned Opcode) { return Opcode == KORBrr; } bool isVINSERTPS(unsigned Opcode) { switch (Opcode) { case VINSERTPSZrm: case VINSERTPSZrr: case VINSERTPSrm: case VINSERTPSrr: return true; } return false; } bool isKORD(unsigned Opcode) { return Opcode == KORDrr; } bool isVMFUNC(unsigned Opcode) { return Opcode == VMFUNC; } bool isCPUID(unsigned Opcode) { return Opcode == CPUID; } bool isVSCATTERPF0QPD(unsigned Opcode) { return Opcode == VSCATTERPF0QPDm; } bool isOUT(unsigned Opcode) { switch (Opcode) { case OUT16ir: case OUT16rr: case OUT32ir: case OUT32rr: case OUT8ir: case OUT8rr: return true; } return false; } bool isKORQ(unsigned Opcode) { return Opcode == KORQrr; } bool isKORW(unsigned Opcode) { return Opcode == KORWrr; } bool isVSCATTERPF0QPS(unsigned Opcode) { return Opcode == VSCATTERPF0QPSm; } bool isPHSUBSW(unsigned Opcode) { switch (Opcode) { case MMX_PHSUBSWrm: case MMX_PHSUBSWrr: case PHSUBSWrm: case PHSUBSWrr: return true; } return false; } bool isPFSUBR(unsigned Opcode) { switch (Opcode) { case PFSUBRrm: case PFSUBRrr: return true; } return false; } bool isVCVTPH2UDQ(unsigned Opcode) { switch (Opcode) { case VCVTPH2UDQZ128rm: case VCVTPH2UDQZ128rmb: case VCVTPH2UDQZ128rmbk: case VCVTPH2UDQZ128rmbkz: case VCVTPH2UDQZ128rmk: case VCVTPH2UDQZ128rmkz: case VCVTPH2UDQZ128rr: case VCVTPH2UDQZ128rrk: case VCVTPH2UDQZ128rrkz: case VCVTPH2UDQZ256rm: case VCVTPH2UDQZ256rmb: case VCVTPH2UDQZ256rmbk: case VCVTPH2UDQZ256rmbkz: case VCVTPH2UDQZ256rmk: case VCVTPH2UDQZ256rmkz: case VCVTPH2UDQZ256rr: case VCVTPH2UDQZ256rrk: case VCVTPH2UDQZ256rrkz: case VCVTPH2UDQZrm: case VCVTPH2UDQZrmb: case VCVTPH2UDQZrmbk: case VCVTPH2UDQZrmbkz: case VCVTPH2UDQZrmk: case VCVTPH2UDQZrmkz: case VCVTPH2UDQZrr: case VCVTPH2UDQZrrb: case VCVTPH2UDQZrrbk: case VCVTPH2UDQZrrbkz: case VCVTPH2UDQZrrk: case VCVTPH2UDQZrrkz: return true; } return false; } bool isVBROADCASTF32X2(unsigned Opcode) { switch (Opcode) { case VBROADCASTF32X2Z256rm: case VBROADCASTF32X2Z256rmk: case VBROADCASTF32X2Z256rmkz: case VBROADCASTF32X2Z256rr: case VBROADCASTF32X2Z256rrk: case VBROADCASTF32X2Z256rrkz: case VBROADCASTF32X2Zrm: case VBROADCASTF32X2Zrmk: case VBROADCASTF32X2Zrmkz: case VBROADCASTF32X2Zrr: case VBROADCASTF32X2Zrrk: case VBROADCASTF32X2Zrrkz: return true; } return false; } bool isVBROADCASTF32X4(unsigned Opcode) { switch (Opcode) { case VBROADCASTF32X4Z256rm: case VBROADCASTF32X4Z256rmk: case VBROADCASTF32X4Z256rmkz: case VBROADCASTF32X4rm: case VBROADCASTF32X4rmk: case VBROADCASTF32X4rmkz: return true; } return false; } bool isSHA256RNDS2(unsigned Opcode) { switch (Opcode) { case SHA256RNDS2rm: case SHA256RNDS2rr: return true; } return false; } bool isVBROADCASTF32X8(unsigned Opcode) { switch (Opcode) { case VBROADCASTF32X8rm: case VBROADCASTF32X8rmk: case VBROADCASTF32X8rmkz: return true; } return false; } bool isVPERMB(unsigned Opcode) { switch (Opcode) { case VPERMBZ128rm: case VPERMBZ128rmk: case VPERMBZ128rmkz: case VPERMBZ128rr: case VPERMBZ128rrk: case VPERMBZ128rrkz: case VPERMBZ256rm: case VPERMBZ256rmk: case VPERMBZ256rmkz: case VPERMBZ256rr: case VPERMBZ256rrk: case VPERMBZ256rrkz: case VPERMBZrm: case VPERMBZrmk: case VPERMBZrmkz: case VPERMBZrr: case VPERMBZrrk: case VPERMBZrrkz: return true; } return false; } bool isVPUNPCKLBW(unsigned Opcode) { switch (Opcode) { case VPUNPCKLBWYrm: case VPUNPCKLBWYrr: case VPUNPCKLBWZ128rm: case VPUNPCKLBWZ128rmk: case VPUNPCKLBWZ128rmkz: case VPUNPCKLBWZ128rr: case VPUNPCKLBWZ128rrk: case VPUNPCKLBWZ128rrkz: case VPUNPCKLBWZ256rm: case VPUNPCKLBWZ256rmk: case VPUNPCKLBWZ256rmkz: case VPUNPCKLBWZ256rr: case VPUNPCKLBWZ256rrk: case VPUNPCKLBWZ256rrkz: case VPUNPCKLBWZrm: case VPUNPCKLBWZrmk: case VPUNPCKLBWZrmkz: case VPUNPCKLBWZrr: case VPUNPCKLBWZrrk: case VPUNPCKLBWZrrkz: case VPUNPCKLBWrm: case VPUNPCKLBWrr: return true; } return false; } bool isVPERMD(unsigned Opcode) { switch (Opcode) { case VPERMDYrm: case VPERMDYrr: case VPERMDZ256rm: case VPERMDZ256rmb: case VPERMDZ256rmbk: case VPERMDZ256rmbkz: case VPERMDZ256rmk: case VPERMDZ256rmkz: case VPERMDZ256rr: case VPERMDZ256rrk: case VPERMDZ256rrkz: case VPERMDZrm: case VPERMDZrmb: case VPERMDZrmbk: case VPERMDZrmbkz: case VPERMDZrmk: case VPERMDZrmkz: case VPERMDZrr: case VPERMDZrrk: case VPERMDZrrkz: return true; } return false; } bool isXCRYPTECB(unsigned Opcode) { return Opcode == XCRYPTECB; } bool isVPERMQ(unsigned Opcode) { switch (Opcode) { case VPERMQYmi: case VPERMQYri: case VPERMQZ256mbi: case VPERMQZ256mbik: case VPERMQZ256mbikz: case VPERMQZ256mi: case VPERMQZ256mik: case VPERMQZ256mikz: case VPERMQZ256ri: case VPERMQZ256rik: case VPERMQZ256rikz: case VPERMQZ256rm: case VPERMQZ256rmb: case VPERMQZ256rmbk: case VPERMQZ256rmbkz: case VPERMQZ256rmk: case VPERMQZ256rmkz: case VPERMQZ256rr: case VPERMQZ256rrk: case VPERMQZ256rrkz: case VPERMQZmbi: case VPERMQZmbik: case VPERMQZmbikz: case VPERMQZmi: case VPERMQZmik: case VPERMQZmikz: case VPERMQZri: case VPERMQZrik: case VPERMQZrikz: case VPERMQZrm: case VPERMQZrmb: case VPERMQZrmbk: case VPERMQZrmbkz: case VPERMQZrmk: case VPERMQZrmkz: case VPERMQZrr: case VPERMQZrrk: case VPERMQZrrkz: return true; } return false; } bool isEXTRACTPS(unsigned Opcode) { switch (Opcode) { case EXTRACTPSmr: case EXTRACTPSrr: return true; } return false; } bool isVPERMW(unsigned Opcode) { switch (Opcode) { case VPERMWZ128rm: case VPERMWZ128rmk: case VPERMWZ128rmkz: case VPERMWZ128rr: case VPERMWZ128rrk: case VPERMWZ128rrkz: case VPERMWZ256rm: case VPERMWZ256rmk: case VPERMWZ256rmkz: case VPERMWZ256rr: case VPERMWZ256rrk: case VPERMWZ256rrkz: case VPERMWZrm: case VPERMWZrmk: case VPERMWZrmkz: case VPERMWZrr: case VPERMWZrrk: case VPERMWZrrkz: return true; } return false; } bool isHADDPD(unsigned Opcode) { switch (Opcode) { case HADDPDrm: case HADDPDrr: return true; } return false; } bool isFXSAVE(unsigned Opcode) { return Opcode == FXSAVE; } bool isVRCPPH(unsigned Opcode) { switch (Opcode) { case VRCPPHZ128m: case VRCPPHZ128mb: case VRCPPHZ128mbk: case VRCPPHZ128mbkz: case VRCPPHZ128mk: case VRCPPHZ128mkz: case VRCPPHZ128r: case VRCPPHZ128rk: case VRCPPHZ128rkz: case VRCPPHZ256m: case VRCPPHZ256mb: case VRCPPHZ256mbk: case VRCPPHZ256mbkz: case VRCPPHZ256mk: case VRCPPHZ256mkz: case VRCPPHZ256r: case VRCPPHZ256rk: case VRCPPHZ256rkz: case VRCPPHZm: case VRCPPHZmb: case VRCPPHZmbk: case VRCPPHZmbkz: case VRCPPHZmk: case VRCPPHZmkz: case VRCPPHZr: case VRCPPHZrk: case VRCPPHZrkz: return true; } return false; } bool isHADDPS(unsigned Opcode) { switch (Opcode) { case HADDPSrm: case HADDPSrr: return true; } return false; } bool isVPSADBW(unsigned Opcode) { switch (Opcode) { case VPSADBWYrm: case VPSADBWYrr: case VPSADBWZ128rm: case VPSADBWZ128rr: case VPSADBWZ256rm: case VPSADBWZ256rr: case VPSADBWZrm: case VPSADBWZrr: case VPSADBWrm: case VPSADBWrr: return true; } return false; } bool isRDRAND(unsigned Opcode) { switch (Opcode) { case RDRAND16r: case RDRAND32r: case RDRAND64r: return true; } return false; } bool isVRCPPS(unsigned Opcode) { switch (Opcode) { case VRCPPSYm: case VRCPPSYr: case VRCPPSm: case VRCPPSr: return true; } return false; } bool isVXORPD(unsigned Opcode) { switch (Opcode) { case VXORPDYrm: case VXORPDYrr: case VXORPDZ128rm: case VXORPDZ128rmb: case VXORPDZ128rmbk: case VXORPDZ128rmbkz: case VXORPDZ128rmk: case VXORPDZ128rmkz: case VXORPDZ128rr: case VXORPDZ128rrk: case VXORPDZ128rrkz: case VXORPDZ256rm: case VXORPDZ256rmb: case VXORPDZ256rmbk: case VXORPDZ256rmbkz: case VXORPDZ256rmk: case VXORPDZ256rmkz: case VXORPDZ256rr: case VXORPDZ256rrk: case VXORPDZ256rrkz: case VXORPDZrm: case VXORPDZrmb: case VXORPDZrmbk: case VXORPDZrmbkz: case VXORPDZrmk: case VXORPDZrmkz: case VXORPDZrr: case VXORPDZrrk: case VXORPDZrrkz: case VXORPDrm: case VXORPDrr: return true; } return false; } bool isFFREE(unsigned Opcode) { return Opcode == FFREE; } bool isPCMPEQB(unsigned Opcode) { switch (Opcode) { case MMX_PCMPEQBrm: case MMX_PCMPEQBrr: case PCMPEQBrm: case PCMPEQBrr: return true; } return false; } bool isPCMPEQD(unsigned Opcode) { switch (Opcode) { case MMX_PCMPEQDrm: case MMX_PCMPEQDrr: case PCMPEQDrm: case PCMPEQDrr: return true; } return false; } bool isVPUNPCKLDQ(unsigned Opcode) { switch (Opcode) { case VPUNPCKLDQYrm: case VPUNPCKLDQYrr: case VPUNPCKLDQZ128rm: case VPUNPCKLDQZ128rmb: case VPUNPCKLDQZ128rmbk: case VPUNPCKLDQZ128rmbkz: case VPUNPCKLDQZ128rmk: case VPUNPCKLDQZ128rmkz: case VPUNPCKLDQZ128rr: case VPUNPCKLDQZ128rrk: case VPUNPCKLDQZ128rrkz: case VPUNPCKLDQZ256rm: case VPUNPCKLDQZ256rmb: case VPUNPCKLDQZ256rmbk: case VPUNPCKLDQZ256rmbkz: case VPUNPCKLDQZ256rmk: case VPUNPCKLDQZ256rmkz: case VPUNPCKLDQZ256rr: case VPUNPCKLDQZ256rrk: case VPUNPCKLDQZ256rrkz: case VPUNPCKLDQZrm: case VPUNPCKLDQZrmb: case VPUNPCKLDQZrmbk: case VPUNPCKLDQZrmbkz: case VPUNPCKLDQZrmk: case VPUNPCKLDQZrmkz: case VPUNPCKLDQZrr: case VPUNPCKLDQZrrk: case VPUNPCKLDQZrrkz: case VPUNPCKLDQrm: case VPUNPCKLDQrr: return true; } return false; } bool isVTESTPD(unsigned Opcode) { switch (Opcode) { case VTESTPDYrm: case VTESTPDYrr: case VTESTPDrm: case VTESTPDrr: return true; } return false; } bool isVXORPS(unsigned Opcode) { switch (Opcode) { case VXORPSYrm: case VXORPSYrr: case VXORPSZ128rm: case VXORPSZ128rmb: case VXORPSZ128rmbk: case VXORPSZ128rmbkz: case VXORPSZ128rmk: case VXORPSZ128rmkz: case VXORPSZ128rr: case VXORPSZ128rrk: case VXORPSZ128rrkz: case VXORPSZ256rm: case VXORPSZ256rmb: case VXORPSZ256rmbk: case VXORPSZ256rmbkz: case VXORPSZ256rmk: case VXORPSZ256rmkz: case VXORPSZ256rr: case VXORPSZ256rrk: case VXORPSZ256rrkz: case VXORPSZrm: case VXORPSZrmb: case VXORPSZrmbk: case VXORPSZrmbkz: case VXORPSZrmk: case VXORPSZrmkz: case VXORPSZrr: case VXORPSZrrk: case VXORPSZrrkz: case VXORPSrm: case VXORPSrr: return true; } return false; } bool isTZCNT(unsigned Opcode) { switch (Opcode) { case TZCNT16rm: case TZCNT16rr: case TZCNT32rm: case TZCNT32rr: case TZCNT64rm: case TZCNT64rr: return true; } return false; } bool isCLTS(unsigned Opcode) { return Opcode == CLTS; } bool isPCMPEQQ(unsigned Opcode) { switch (Opcode) { case PCMPEQQrm: case PCMPEQQrr: return true; } return false; } bool isVFPCLASSPD(unsigned Opcode) { switch (Opcode) { case VFPCLASSPDZ128rm: case VFPCLASSPDZ128rmb: case VFPCLASSPDZ128rmbk: case VFPCLASSPDZ128rmk: case VFPCLASSPDZ128rr: case VFPCLASSPDZ128rrk: case VFPCLASSPDZ256rm: case VFPCLASSPDZ256rmb: case VFPCLASSPDZ256rmbk: case VFPCLASSPDZ256rmk: case VFPCLASSPDZ256rr: case VFPCLASSPDZ256rrk: case VFPCLASSPDZrm: case VFPCLASSPDZrmb: case VFPCLASSPDZrmbk: case VFPCLASSPDZrmk: case VFPCLASSPDZrr: case VFPCLASSPDZrrk: return true; } return false; } bool isVFPCLASSPH(unsigned Opcode) { switch (Opcode) { case VFPCLASSPHZ128rm: case VFPCLASSPHZ128rmb: case VFPCLASSPHZ128rmbk: case VFPCLASSPHZ128rmk: case VFPCLASSPHZ128rr: case VFPCLASSPHZ128rrk: case VFPCLASSPHZ256rm: case VFPCLASSPHZ256rmb: case VFPCLASSPHZ256rmbk: case VFPCLASSPHZ256rmk: case VFPCLASSPHZ256rr: case VFPCLASSPHZ256rrk: case VFPCLASSPHZrm: case VFPCLASSPHZrmb: case VFPCLASSPHZrmbk: case VFPCLASSPHZrmk: case VFPCLASSPHZrr: case VFPCLASSPHZrrk: return true; } return false; } bool isVTESTPS(unsigned Opcode) { switch (Opcode) { case VTESTPSYrm: case VTESTPSYrr: case VTESTPSrm: case VTESTPSrr: return true; } return false; } bool isPCMPEQW(unsigned Opcode) { switch (Opcode) { case MMX_PCMPEQWrm: case MMX_PCMPEQWrr: case PCMPEQWrm: case PCMPEQWrr: return true; } return false; } bool isUNPCKLPD(unsigned Opcode) { switch (Opcode) { case UNPCKLPDrm: case UNPCKLPDrr: return true; } return false; } bool isVMOVDQA32(unsigned Opcode) { switch (Opcode) { case VMOVDQA32Z128mr: case VMOVDQA32Z128mrk: case VMOVDQA32Z128rm: case VMOVDQA32Z128rmk: case VMOVDQA32Z128rmkz: case VMOVDQA32Z128rr: case VMOVDQA32Z128rr_REV: case VMOVDQA32Z128rrk: case VMOVDQA32Z128rrk_REV: case VMOVDQA32Z128rrkz: case VMOVDQA32Z128rrkz_REV: case VMOVDQA32Z256mr: case VMOVDQA32Z256mrk: case VMOVDQA32Z256rm: case VMOVDQA32Z256rmk: case VMOVDQA32Z256rmkz: case VMOVDQA32Z256rr: case VMOVDQA32Z256rr_REV: case VMOVDQA32Z256rrk: case VMOVDQA32Z256rrk_REV: case VMOVDQA32Z256rrkz: case VMOVDQA32Z256rrkz_REV: case VMOVDQA32Zmr: case VMOVDQA32Zmrk: case VMOVDQA32Zrm: case VMOVDQA32Zrmk: case VMOVDQA32Zrmkz: case VMOVDQA32Zrr: case VMOVDQA32Zrr_REV: case VMOVDQA32Zrrk: case VMOVDQA32Zrrk_REV: case VMOVDQA32Zrrkz: case VMOVDQA32Zrrkz_REV: return true; } return false; } bool isVFPCLASSPS(unsigned Opcode) { switch (Opcode) { case VFPCLASSPSZ128rm: case VFPCLASSPSZ128rmb: case VFPCLASSPSZ128rmbk: case VFPCLASSPSZ128rmk: case VFPCLASSPSZ128rr: case VFPCLASSPSZ128rrk: case VFPCLASSPSZ256rm: case VFPCLASSPSZ256rmb: case VFPCLASSPSZ256rmbk: case VFPCLASSPSZ256rmk: case VFPCLASSPSZ256rr: case VFPCLASSPSZ256rrk: case VFPCLASSPSZrm: case VFPCLASSPSZrmb: case VFPCLASSPSZrmbk: case VFPCLASSPSZrmk: case VFPCLASSPSZrr: case VFPCLASSPSZrrk: return true; } return false; } bool isVPMOVMSKB(unsigned Opcode) { switch (Opcode) { case VPMOVMSKBYrr: case VPMOVMSKBrr: return true; } return false; } bool isFDECSTP(unsigned Opcode) { return Opcode == FDECSTP; } bool isCLUI(unsigned Opcode) { return Opcode == CLUI; } bool isFLDPI(unsigned Opcode) { return Opcode == FLDPI; } bool isUNPCKLPS(unsigned Opcode) { switch (Opcode) { case UNPCKLPSrm: case UNPCKLPSrr: return true; } return false; } bool isVCVTTPD2DQ(unsigned Opcode) { switch (Opcode) { case VCVTTPD2DQYrm: case VCVTTPD2DQYrr: case VCVTTPD2DQZ128rm: case VCVTTPD2DQZ128rmb: case VCVTTPD2DQZ128rmbk: case VCVTTPD2DQZ128rmbkz: case VCVTTPD2DQZ128rmk: case VCVTTPD2DQZ128rmkz: case VCVTTPD2DQZ128rr: case VCVTTPD2DQZ128rrk: case VCVTTPD2DQZ128rrkz: case VCVTTPD2DQZ256rm: case VCVTTPD2DQZ256rmb: case VCVTTPD2DQZ256rmbk: case VCVTTPD2DQZ256rmbkz: case VCVTTPD2DQZ256rmk: case VCVTTPD2DQZ256rmkz: case VCVTTPD2DQZ256rr: case VCVTTPD2DQZ256rrk: case VCVTTPD2DQZ256rrkz: case VCVTTPD2DQZrm: case VCVTTPD2DQZrmb: case VCVTTPD2DQZrmbk: case VCVTTPD2DQZrmbkz: case VCVTTPD2DQZrmk: case VCVTTPD2DQZrmkz: case VCVTTPD2DQZrr: case VCVTTPD2DQZrrb: case VCVTTPD2DQZrrbk: case VCVTTPD2DQZrrbkz: case VCVTTPD2DQZrrk: case VCVTTPD2DQZrrkz: case VCVTTPD2DQrm: case VCVTTPD2DQrr: return true; } return false; } bool isPAVGUSB(unsigned Opcode) { switch (Opcode) { case PAVGUSBrm: case PAVGUSBrr: return true; } return false; } bool isCALL(unsigned Opcode) { switch (Opcode) { case CALL16m: case CALL16r: case CALL32m: case CALL32r: case CALL64m: case CALL64pcrel32: case CALL64r: case CALLpcrel16: case CALLpcrel32: case FARCALL32m: return true; } return false; } bool isFLDENV(unsigned Opcode) { return Opcode == FLDENVm; } bool isPACKUSWB(unsigned Opcode) { switch (Opcode) { case MMX_PACKUSWBrm: case MMX_PACKUSWBrr: case PACKUSWBrm: case PACKUSWBrr: return true; } return false; } bool isVPHADDSW(unsigned Opcode) { switch (Opcode) { case VPHADDSWYrm: case VPHADDSWYrr: case VPHADDSWrm: case VPHADDSWrr: return true; } return false; } bool isLAR(unsigned Opcode) { switch (Opcode) { case LAR16rm: case LAR16rr: case LAR32rm: case LAR32rr: case LAR64rm: case LAR64rr: return true; } return false; } bool isCLFLUSHOPT(unsigned Opcode) { return Opcode == CLFLUSHOPT; } bool isVMMCALL(unsigned Opcode) { return Opcode == VMMCALL; } bool isARPL(unsigned Opcode) { switch (Opcode) { case ARPL16mr: case ARPL16rr: return true; } return false; } bool isXABORT(unsigned Opcode) { return Opcode == XABORT; } bool isPUNPCKHWD(unsigned Opcode) { switch (Opcode) { case MMX_PUNPCKHWDrm: case MMX_PUNPCKHWDrr: case PUNPCKHWDrm: case PUNPCKHWDrr: return true; } return false; } bool isVRCPSH(unsigned Opcode) { switch (Opcode) { case VRCPSHZrm: case VRCPSHZrmk: case VRCPSHZrmkz: case VRCPSHZrr: case VRCPSHZrrk: case VRCPSHZrrkz: return true; } return false; } bool isLDDQU(unsigned Opcode) { return Opcode == LDDQUrm; } bool isPFMIN(unsigned Opcode) { switch (Opcode) { case PFMINrm: case PFMINrr: return true; } return false; } bool isSYSRETQ(unsigned Opcode) { return Opcode == SYSRET64; } bool isVRCPSS(unsigned Opcode) { switch (Opcode) { case VRCPSSm_Int: case VRCPSSr_Int: return true; } return false; } bool isCLWB(unsigned Opcode) { return Opcode == CLWB; } bool isSTC(unsigned Opcode) { return Opcode == STC; } bool isSTD(unsigned Opcode) { return Opcode == STD; } bool isVMOVDQU8(unsigned Opcode) { switch (Opcode) { case VMOVDQU8Z128mr: case VMOVDQU8Z128mrk: case VMOVDQU8Z128rm: case VMOVDQU8Z128rmk: case VMOVDQU8Z128rmkz: case VMOVDQU8Z128rr: case VMOVDQU8Z128rr_REV: case VMOVDQU8Z128rrk: case VMOVDQU8Z128rrk_REV: case VMOVDQU8Z128rrkz: case VMOVDQU8Z128rrkz_REV: case VMOVDQU8Z256mr: case VMOVDQU8Z256mrk: case VMOVDQU8Z256rm: case VMOVDQU8Z256rmk: case VMOVDQU8Z256rmkz: case VMOVDQU8Z256rr: case VMOVDQU8Z256rr_REV: case VMOVDQU8Z256rrk: case VMOVDQU8Z256rrk_REV: case VMOVDQU8Z256rrkz: case VMOVDQU8Z256rrkz_REV: case VMOVDQU8Zmr: case VMOVDQU8Zmrk: case VMOVDQU8Zrm: case VMOVDQU8Zrmk: case VMOVDQU8Zrmkz: case VMOVDQU8Zrr: case VMOVDQU8Zrr_REV: case VMOVDQU8Zrrk: case VMOVDQU8Zrrk_REV: case VMOVDQU8Zrrkz: case VMOVDQU8Zrrkz_REV: return true; } return false; } bool isSTI(unsigned Opcode) { return Opcode == STI; } bool isSTR(unsigned Opcode) { switch (Opcode) { case STR16r: case STR32r: case STR64r: case STRm: return true; } return false; } bool isVFPCLASSSD(unsigned Opcode) { switch (Opcode) { case VFPCLASSSDZrm: case VFPCLASSSDZrmk: case VFPCLASSSDZrr: case VFPCLASSSDZrrk: return true; } return false; } bool isLDMXCSR(unsigned Opcode) { return Opcode == LDMXCSR; } bool isVFPCLASSSH(unsigned Opcode) { switch (Opcode) { case VFPCLASSSHZrm: case VFPCLASSSHZrmk: case VFPCLASSSHZrr: case VFPCLASSSHZrrk: return true; } return false; } bool isVCVTPD2PH(unsigned Opcode) { switch (Opcode) { case VCVTPD2PHZ128rm: case VCVTPD2PHZ128rmb: case VCVTPD2PHZ128rmbk: case VCVTPD2PHZ128rmbkz: case VCVTPD2PHZ128rmk: case VCVTPD2PHZ128rmkz: case VCVTPD2PHZ128rr: case VCVTPD2PHZ128rrk: case VCVTPD2PHZ128rrkz: case VCVTPD2PHZ256rm: case VCVTPD2PHZ256rmb: case VCVTPD2PHZ256rmbk: case VCVTPD2PHZ256rmbkz: case VCVTPD2PHZ256rmk: case VCVTPD2PHZ256rmkz: case VCVTPD2PHZ256rr: case VCVTPD2PHZ256rrk: case VCVTPD2PHZ256rrkz: case VCVTPD2PHZrm: case VCVTPD2PHZrmb: case VCVTPD2PHZrmbk: case VCVTPD2PHZrmbkz: case VCVTPD2PHZrmk: case VCVTPD2PHZrmkz: case VCVTPD2PHZrr: case VCVTPD2PHZrrb: case VCVTPD2PHZrrbk: case VCVTPD2PHZrrbkz: case VCVTPD2PHZrrk: case VCVTPD2PHZrrkz: return true; } return false; } bool isVCVTPH2DQ(unsigned Opcode) { switch (Opcode) { case VCVTPH2DQZ128rm: case VCVTPH2DQZ128rmb: case VCVTPH2DQZ128rmbk: case VCVTPH2DQZ128rmbkz: case VCVTPH2DQZ128rmk: case VCVTPH2DQZ128rmkz: case VCVTPH2DQZ128rr: case VCVTPH2DQZ128rrk: case VCVTPH2DQZ128rrkz: case VCVTPH2DQZ256rm: case VCVTPH2DQZ256rmb: case VCVTPH2DQZ256rmbk: case VCVTPH2DQZ256rmbkz: case VCVTPH2DQZ256rmk: case VCVTPH2DQZ256rmkz: case VCVTPH2DQZ256rr: case VCVTPH2DQZ256rrk: case VCVTPH2DQZ256rrkz: case VCVTPH2DQZrm: case VCVTPH2DQZrmb: case VCVTPH2DQZrmbk: case VCVTPH2DQZrmbkz: case VCVTPH2DQZrmk: case VCVTPH2DQZrmkz: case VCVTPH2DQZrr: case VCVTPH2DQZrrb: case VCVTPH2DQZrrbk: case VCVTPH2DQZrrbkz: case VCVTPH2DQZrrk: case VCVTPH2DQZrrkz: return true; } return false; } bool isVFPCLASSSS(unsigned Opcode) { switch (Opcode) { case VFPCLASSSSZrm: case VFPCLASSSSZrmk: case VFPCLASSSSZrr: case VFPCLASSSSZrrk: return true; } return false; } bool isVMOVDQA64(unsigned Opcode) { switch (Opcode) { case VMOVDQA64Z128mr: case VMOVDQA64Z128mrk: case VMOVDQA64Z128rm: case VMOVDQA64Z128rmk: case VMOVDQA64Z128rmkz: case VMOVDQA64Z128rr: case VMOVDQA64Z128rr_REV: case VMOVDQA64Z128rrk: case VMOVDQA64Z128rrk_REV: case VMOVDQA64Z128rrkz: case VMOVDQA64Z128rrkz_REV: case VMOVDQA64Z256mr: case VMOVDQA64Z256mrk: case VMOVDQA64Z256rm: case VMOVDQA64Z256rmk: case VMOVDQA64Z256rmkz: case VMOVDQA64Z256rr: case VMOVDQA64Z256rr_REV: case VMOVDQA64Z256rrk: case VMOVDQA64Z256rrk_REV: case VMOVDQA64Z256rrkz: case VMOVDQA64Z256rrkz_REV: case VMOVDQA64Zmr: case VMOVDQA64Zmrk: case VMOVDQA64Zrm: case VMOVDQA64Zrmk: case VMOVDQA64Zrmkz: case VMOVDQA64Zrr: case VMOVDQA64Zrr_REV: case VMOVDQA64Zrrk: case VMOVDQA64Zrrk_REV: case VMOVDQA64Zrrkz: case VMOVDQA64Zrrkz_REV: return true; } return false; } bool isSUB(unsigned Opcode) { switch (Opcode) { case SUB16i16: case SUB16mi: case SUB16mi8: case SUB16mr: case SUB16ri: case SUB16ri8: case SUB16rm: case SUB16rr: case SUB16rr_REV: case SUB32i32: case SUB32mi: case SUB32mi8: case SUB32mr: case SUB32ri: case SUB32ri8: case SUB32rm: case SUB32rr: case SUB32rr_REV: case SUB64i32: case SUB64mi32: case SUB64mi8: case SUB64mr: case SUB64ri32: case SUB64ri8: case SUB64rm: case SUB64rr: case SUB64rr_REV: case SUB8i8: case SUB8mi: case SUB8mi8: case SUB8mr: case SUB8ri: case SUB8ri8: case SUB8rm: case SUB8rr: case SUB8rr_REV: return true; } return false; } bool isVUCOMISD(unsigned Opcode) { switch (Opcode) { case VUCOMISDZrm: case VUCOMISDZrr: case VUCOMISDZrrb: case VUCOMISDrm: case VUCOMISDrr: return true; } return false; } bool isVCVTPD2PS(unsigned Opcode) { switch (Opcode) { case VCVTPD2PSYrm: case VCVTPD2PSYrr: case VCVTPD2PSZ128rm: case VCVTPD2PSZ128rmb: case VCVTPD2PSZ128rmbk: case VCVTPD2PSZ128rmbkz: case VCVTPD2PSZ128rmk: case VCVTPD2PSZ128rmkz: case VCVTPD2PSZ128rr: case VCVTPD2PSZ128rrk: case VCVTPD2PSZ128rrkz: case VCVTPD2PSZ256rm: case VCVTPD2PSZ256rmb: case VCVTPD2PSZ256rmbk: case VCVTPD2PSZ256rmbkz: case VCVTPD2PSZ256rmk: case VCVTPD2PSZ256rmkz: case VCVTPD2PSZ256rr: case VCVTPD2PSZ256rrk: case VCVTPD2PSZ256rrkz: case VCVTPD2PSZrm: case VCVTPD2PSZrmb: case VCVTPD2PSZrmbk: case VCVTPD2PSZrmbkz: case VCVTPD2PSZrmk: case VCVTPD2PSZrmkz: case VCVTPD2PSZrr: case VCVTPD2PSZrrb: case VCVTPD2PSZrrbk: case VCVTPD2PSZrrbkz: case VCVTPD2PSZrrk: case VCVTPD2PSZrrkz: case VCVTPD2PSrm: case VCVTPD2PSrr: return true; } return false; } bool isLEAVE(unsigned Opcode) { switch (Opcode) { case LEAVE: case LEAVE64: return true; } return false; } bool isOUTSB(unsigned Opcode) { return Opcode == OUTSB; } bool isOUTSD(unsigned Opcode) { return Opcode == OUTSL; } bool isVUCOMISH(unsigned Opcode) { switch (Opcode) { case VUCOMISHZrm: case VUCOMISHZrr: case VUCOMISHZrrb: return true; } return false; } bool isEXTRQ(unsigned Opcode) { switch (Opcode) { case EXTRQ: case EXTRQI: return true; } return false; } bool isVUCOMISS(unsigned Opcode) { switch (Opcode) { case VUCOMISSZrm: case VUCOMISSZrr: case VUCOMISSZrrb: case VUCOMISSrm: case VUCOMISSrr: return true; } return false; } bool isCVTTPD2PI(unsigned Opcode) { switch (Opcode) { case MMX_CVTTPD2PIrm: case MMX_CVTTPD2PIrr: return true; } return false; } bool isOUTSW(unsigned Opcode) { return Opcode == OUTSW; } bool isLDS(unsigned Opcode) { switch (Opcode) { case LDS16rm: case LDS32rm: return true; } return false; } bool isPSHUFHW(unsigned Opcode) { switch (Opcode) { case PSHUFHWmi: case PSHUFHWri: return true; } return false; } bool isPHSUBD(unsigned Opcode) { switch (Opcode) { case MMX_PHSUBDrm: case MMX_PHSUBDrr: case PHSUBDrm: case PHSUBDrr: return true; } return false; } bool isHLT(unsigned Opcode) { return Opcode == HLT; } bool isVCVTPD2QQ(unsigned Opcode) { switch (Opcode) { case VCVTPD2QQZ128rm: case VCVTPD2QQZ128rmb: case VCVTPD2QQZ128rmbk: case VCVTPD2QQZ128rmbkz: case VCVTPD2QQZ128rmk: case VCVTPD2QQZ128rmkz: case VCVTPD2QQZ128rr: case VCVTPD2QQZ128rrk: case VCVTPD2QQZ128rrkz: case VCVTPD2QQZ256rm: case VCVTPD2QQZ256rmb: case VCVTPD2QQZ256rmbk: case VCVTPD2QQZ256rmbkz: case VCVTPD2QQZ256rmk: case VCVTPD2QQZ256rmkz: case VCVTPD2QQZ256rr: case VCVTPD2QQZ256rrk: case VCVTPD2QQZ256rrkz: case VCVTPD2QQZrm: case VCVTPD2QQZrmb: case VCVTPD2QQZrmbk: case VCVTPD2QQZrmbkz: case VCVTPD2QQZrmk: case VCVTPD2QQZrmkz: case VCVTPD2QQZrr: case VCVTPD2QQZrrb: case VCVTPD2QQZrrbk: case VCVTPD2QQZrrbkz: case VCVTPD2QQZrrk: case VCVTPD2QQZrrkz: return true; } return false; } bool isLIDT(unsigned Opcode) { return Opcode == LIDT64m; } bool isVPTERNLOGD(unsigned Opcode) { switch (Opcode) { case VPTERNLOGDZ128rmbi: case VPTERNLOGDZ128rmbik: case VPTERNLOGDZ128rmbikz: case VPTERNLOGDZ128rmi: case VPTERNLOGDZ128rmik: case VPTERNLOGDZ128rmikz: case VPTERNLOGDZ128rri: case VPTERNLOGDZ128rrik: case VPTERNLOGDZ128rrikz: case VPTERNLOGDZ256rmbi: case VPTERNLOGDZ256rmbik: case VPTERNLOGDZ256rmbikz: case VPTERNLOGDZ256rmi: case VPTERNLOGDZ256rmik: case VPTERNLOGDZ256rmikz: case VPTERNLOGDZ256rri: case VPTERNLOGDZ256rrik: case VPTERNLOGDZ256rrikz: case VPTERNLOGDZrmbi: case VPTERNLOGDZrmbik: case VPTERNLOGDZrmbikz: case VPTERNLOGDZrmi: case VPTERNLOGDZrmik: case VPTERNLOGDZrmikz: case VPTERNLOGDZrri: case VPTERNLOGDZrrik: case VPTERNLOGDZrrikz: return true; } return false; } bool isLEA(unsigned Opcode) { switch (Opcode) { case LEA16r: case LEA32r: case LEA64_32r: case LEA64r: return true; } return false; } bool isVPHADDWD(unsigned Opcode) { switch (Opcode) { case VPHADDWDrm: case VPHADDWDrr: return true; } return false; } bool isPREFETCHNTA(unsigned Opcode) { return Opcode == PREFETCHNTA; } bool isVPTERNLOGQ(unsigned Opcode) { switch (Opcode) { case VPTERNLOGQZ128rmbi: case VPTERNLOGQZ128rmbik: case VPTERNLOGQZ128rmbikz: case VPTERNLOGQZ128rmi: case VPTERNLOGQZ128rmik: case VPTERNLOGQZ128rmikz: case VPTERNLOGQZ128rri: case VPTERNLOGQZ128rrik: case VPTERNLOGQZ128rrikz: case VPTERNLOGQZ256rmbi: case VPTERNLOGQZ256rmbik: case VPTERNLOGQZ256rmbikz: case VPTERNLOGQZ256rmi: case VPTERNLOGQZ256rmik: case VPTERNLOGQZ256rmikz: case VPTERNLOGQZ256rri: case VPTERNLOGQZ256rrik: case VPTERNLOGQZ256rrikz: case VPTERNLOGQZrmbi: case VPTERNLOGQZrmbik: case VPTERNLOGQZrmbikz: case VPTERNLOGQZrmi: case VPTERNLOGQZrmik: case VPTERNLOGQZrmikz: case VPTERNLOGQZrri: case VPTERNLOGQZrrik: case VPTERNLOGQZrrikz: return true; } return false; } bool isKSHIFTLB(unsigned Opcode) { return Opcode == KSHIFTLBri; } bool isKSHIFTLD(unsigned Opcode) { return Opcode == KSHIFTLDri; } bool isPHSUBW(unsigned Opcode) { switch (Opcode) { case MMX_PHSUBWrm: case MMX_PHSUBWrr: case PHSUBWrm: case PHSUBWrr: return true; } return false; } bool isVPMOVSQB(unsigned Opcode) { switch (Opcode) { case VPMOVSQBZ128mr: case VPMOVSQBZ128mrk: case VPMOVSQBZ128rr: case VPMOVSQBZ128rrk: case VPMOVSQBZ128rrkz: case VPMOVSQBZ256mr: case VPMOVSQBZ256mrk: case VPMOVSQBZ256rr: case VPMOVSQBZ256rrk: case VPMOVSQBZ256rrkz: case VPMOVSQBZmr: case VPMOVSQBZmrk: case VPMOVSQBZrr: case VPMOVSQBZrrk: case VPMOVSQBZrrkz: return true; } return false; } bool isVPHADDWQ(unsigned Opcode) { switch (Opcode) { case VPHADDWQrm: case VPHADDWQrr: return true; } return false; } bool isVCVTTSS2USI(unsigned Opcode) { switch (Opcode) { case VCVTTSS2USI64Zrm_Int: case VCVTTSS2USI64Zrr_Int: case VCVTTSS2USI64Zrrb_Int: case VCVTTSS2USIZrm_Int: case VCVTTSS2USIZrr_Int: case VCVTTSS2USIZrrb_Int: return true; } return false; } bool isVPMOVSQD(unsigned Opcode) { switch (Opcode) { case VPMOVSQDZ128mr: case VPMOVSQDZ128mrk: case VPMOVSQDZ128rr: case VPMOVSQDZ128rrk: case VPMOVSQDZ128rrkz: case VPMOVSQDZ256mr: case VPMOVSQDZ256mrk: case VPMOVSQDZ256rr: case VPMOVSQDZ256rrk: case VPMOVSQDZ256rrkz: case VPMOVSQDZmr: case VPMOVSQDZmrk: case VPMOVSQDZrr: case VPMOVSQDZrrk: case VPMOVSQDZrrkz: return true; } return false; } bool isLES(unsigned Opcode) { switch (Opcode) { case LES16rm: case LES32rm: return true; } return false; } bool isVMPSADBW(unsigned Opcode) { switch (Opcode) { case VMPSADBWYrmi: case VMPSADBWYrri: case VMPSADBWrmi: case VMPSADBWrri: return true; } return false; } bool isKSHIFTLQ(unsigned Opcode) { return Opcode == KSHIFTLQri; } bool isADDSUBPD(unsigned Opcode) { switch (Opcode) { case ADDSUBPDrm: case ADDSUBPDrr: return true; } return false; } bool isKSHIFTLW(unsigned Opcode) { return Opcode == KSHIFTLWri; } bool isXSAVE64(unsigned Opcode) { return Opcode == XSAVE64; } bool isVPMOVSQW(unsigned Opcode) { switch (Opcode) { case VPMOVSQWZ128mr: case VPMOVSQWZ128mrk: case VPMOVSQWZ128rr: case VPMOVSQWZ128rrk: case VPMOVSQWZ128rrkz: case VPMOVSQWZ256mr: case VPMOVSQWZ256mrk: case VPMOVSQWZ256rr: case VPMOVSQWZ256rrk: case VPMOVSQWZ256rrkz: case VPMOVSQWZmr: case VPMOVSQWZmrk: case VPMOVSQWZrr: case VPMOVSQWZrrk: case VPMOVSQWZrrkz: return true; } return false; } bool isADDSUBPS(unsigned Opcode) { switch (Opcode) { case ADDSUBPSrm: case ADDSUBPSrr: return true; } return false; } bool isENQCMD(unsigned Opcode) { switch (Opcode) { case ENQCMD16: case ENQCMD32: case ENQCMD64: return true; } return false; } bool isVCVTTPH2W(unsigned Opcode) { switch (Opcode) { case VCVTTPH2WZ128rm: case VCVTTPH2WZ128rmb: case VCVTTPH2WZ128rmbk: case VCVTTPH2WZ128rmbkz: case VCVTTPH2WZ128rmk: case VCVTTPH2WZ128rmkz: case VCVTTPH2WZ128rr: case VCVTTPH2WZ128rrk: case VCVTTPH2WZ128rrkz: case VCVTTPH2WZ256rm: case VCVTTPH2WZ256rmb: case VCVTTPH2WZ256rmbk: case VCVTTPH2WZ256rmbkz: case VCVTTPH2WZ256rmk: case VCVTTPH2WZ256rmkz: case VCVTTPH2WZ256rr: case VCVTTPH2WZ256rrk: case VCVTTPH2WZ256rrkz: case VCVTTPH2WZrm: case VCVTTPH2WZrmb: case VCVTTPH2WZrmbk: case VCVTTPH2WZrmbkz: case VCVTTPH2WZrmk: case VCVTTPH2WZrmkz: case VCVTTPH2WZrr: case VCVTTPH2WZrrb: case VCVTTPH2WZrrbk: case VCVTTPH2WZrrbkz: case VCVTTPH2WZrrk: case VCVTTPH2WZrrkz: return true; } return false; } bool isVMRUN(unsigned Opcode) { switch (Opcode) { case VMRUN32: case VMRUN64: return true; } return false; } bool isWRFSBASE(unsigned Opcode) { switch (Opcode) { case WRFSBASE: case WRFSBASE64: return true; } return false; } bool isCOMISD(unsigned Opcode) { switch (Opcode) { case COMISDrm: case COMISDrr: return true; } return false; } bool isLFS(unsigned Opcode) { switch (Opcode) { case LFS16rm: case LFS32rm: case LFS64rm: return true; } return false; } bool isSTOSB(unsigned Opcode) { return Opcode == STOSB; } bool isSTOSD(unsigned Opcode) { return Opcode == STOSL; } bool isCOMISS(unsigned Opcode) { switch (Opcode) { case COMISSrm: case COMISSrr: return true; } return false; } bool isVZEROALL(unsigned Opcode) { return Opcode == VZEROALL; } bool isVFMADDSUBPD(unsigned Opcode) { switch (Opcode) { case VFMADDSUBPD4Ymr: case VFMADDSUBPD4Yrm: case VFMADDSUBPD4Yrr: case VFMADDSUBPD4Yrr_REV: case VFMADDSUBPD4mr: case VFMADDSUBPD4rm: case VFMADDSUBPD4rr: case VFMADDSUBPD4rr_REV: return true; } return false; } bool isVEXTRACTPS(unsigned Opcode) { switch (Opcode) { case VEXTRACTPSZmr: case VEXTRACTPSZrr: case VEXTRACTPSmr: case VEXTRACTPSrr: return true; } return false; } bool isKADDB(unsigned Opcode) { return Opcode == KADDBrr; } bool isKADDD(unsigned Opcode) { return Opcode == KADDDrr; } bool isXTEST(unsigned Opcode) { return Opcode == XTEST; } bool isFISTTP(unsigned Opcode) { switch (Opcode) { case ISTT_FP16m: case ISTT_FP32m: case ISTT_FP64m: return true; } return false; } bool isSTOSQ(unsigned Opcode) { return Opcode == STOSQ; } bool isJCXZ(unsigned Opcode) { return Opcode == JCXZ; } bool isSTOSW(unsigned Opcode) { return Opcode == STOSW; } bool isVFMADDSUBPS(unsigned Opcode) { switch (Opcode) { case VFMADDSUBPS4Ymr: case VFMADDSUBPS4Yrm: case VFMADDSUBPS4Yrr: case VFMADDSUBPS4Yrr_REV: case VFMADDSUBPS4mr: case VFMADDSUBPS4rm: case VFMADDSUBPS4rr: case VFMADDSUBPS4rr_REV: return true; } return false; } bool isVPSHAB(unsigned Opcode) { switch (Opcode) { case VPSHABmr: case VPSHABrm: case VPSHABrr: case VPSHABrr_REV: return true; } return false; } bool isKADDQ(unsigned Opcode) { return Opcode == KADDQrr; } bool isLGS(unsigned Opcode) { switch (Opcode) { case LGS16rm: case LGS32rm: case LGS64rm: return true; } return false; } bool isVPMACSDQH(unsigned Opcode) { switch (Opcode) { case VPMACSDQHrm: case VPMACSDQHrr: return true; } return false; } bool isMOVDQA(unsigned Opcode) { switch (Opcode) { case MOVDQAmr: case MOVDQArm: case MOVDQArr: case MOVDQArr_REV: return true; } return false; } bool isVPSHAD(unsigned Opcode) { switch (Opcode) { case VPSHADmr: case VPSHADrm: case VPSHADrr: case VPSHADrr_REV: return true; } return false; } bool isKADDW(unsigned Opcode) { return Opcode == KADDWrr; } bool isPSMASH(unsigned Opcode) { return Opcode == PSMASH; } bool isPBLENDVB(unsigned Opcode) { switch (Opcode) { case PBLENDVBrm0: case PBLENDVBrr0: return true; } return false; } bool isVPMACSDQL(unsigned Opcode) { switch (Opcode) { case VPMACSDQLrm: case VPMACSDQLrr: return true; } return false; } bool isVPHSUBBW(unsigned Opcode) { switch (Opcode) { case VPHSUBBWrm: case VPHSUBBWrr: return true; } return false; } bool isVPSHAQ(unsigned Opcode) { switch (Opcode) { case VPSHAQmr: case VPSHAQrm: case VPSHAQrr: case VPSHAQrr_REV: return true; } return false; } bool isVSQRTPD(unsigned Opcode) { switch (Opcode) { case VSQRTPDYm: case VSQRTPDYr: case VSQRTPDZ128m: case VSQRTPDZ128mb: case VSQRTPDZ128mbk: case VSQRTPDZ128mbkz: case VSQRTPDZ128mk: case VSQRTPDZ128mkz: case VSQRTPDZ128r: case VSQRTPDZ128rk: case VSQRTPDZ128rkz: case VSQRTPDZ256m: case VSQRTPDZ256mb: case VSQRTPDZ256mbk: case VSQRTPDZ256mbkz: case VSQRTPDZ256mk: case VSQRTPDZ256mkz: case VSQRTPDZ256r: case VSQRTPDZ256rk: case VSQRTPDZ256rkz: case VSQRTPDZm: case VSQRTPDZmb: case VSQRTPDZmbk: case VSQRTPDZmbkz: case VSQRTPDZmk: case VSQRTPDZmkz: case VSQRTPDZr: case VSQRTPDZrb: case VSQRTPDZrbk: case VSQRTPDZrbkz: case VSQRTPDZrk: case VSQRTPDZrkz: case VSQRTPDm: case VSQRTPDr: return true; } return false; } bool isCLRSSBSY(unsigned Opcode) { return Opcode == CLRSSBSY; } bool isMINPD(unsigned Opcode) { switch (Opcode) { case MINPDrm: case MINPDrr: return true; } return false; } bool isVPSHAW(unsigned Opcode) { switch (Opcode) { case VPSHAWmr: case VPSHAWrm: case VPSHAWrr: case VPSHAWrr_REV: return true; } return false; } bool isVSQRTPH(unsigned Opcode) { switch (Opcode) { case VSQRTPHZ128m: case VSQRTPHZ128mb: case VSQRTPHZ128mbk: case VSQRTPHZ128mbkz: case VSQRTPHZ128mk: case VSQRTPHZ128mkz: case VSQRTPHZ128r: case VSQRTPHZ128rk: case VSQRTPHZ128rkz: case VSQRTPHZ256m: case VSQRTPHZ256mb: case VSQRTPHZ256mbk: case VSQRTPHZ256mbkz: case VSQRTPHZ256mk: case VSQRTPHZ256mkz: case VSQRTPHZ256r: case VSQRTPHZ256rk: case VSQRTPHZ256rkz: case VSQRTPHZm: case VSQRTPHZmb: case VSQRTPHZmbk: case VSQRTPHZmbkz: case VSQRTPHZmk: case VSQRTPHZmkz: case VSQRTPHZr: case VSQRTPHZrb: case VSQRTPHZrbk: case VSQRTPHZrbkz: case VSQRTPHZrk: case VSQRTPHZrkz: return true; } return false; } bool isMOVDQU(unsigned Opcode) { switch (Opcode) { case MOVDQUmr: case MOVDQUrm: case MOVDQUrr: case MOVDQUrr_REV: return true; } return false; } bool isVSQRTPS(unsigned Opcode) { switch (Opcode) { case VSQRTPSYm: case VSQRTPSYr: case VSQRTPSZ128m: case VSQRTPSZ128mb: case VSQRTPSZ128mbk: case VSQRTPSZ128mbkz: case VSQRTPSZ128mk: case VSQRTPSZ128mkz: case VSQRTPSZ128r: case VSQRTPSZ128rk: case VSQRTPSZ128rkz: case VSQRTPSZ256m: case VSQRTPSZ256mb: case VSQRTPSZ256mbk: case VSQRTPSZ256mbkz: case VSQRTPSZ256mk: case VSQRTPSZ256mkz: case VSQRTPSZ256r: case VSQRTPSZ256rk: case VSQRTPSZ256rkz: case VSQRTPSZm: case VSQRTPSZmb: case VSQRTPSZmbk: case VSQRTPSZmbkz: case VSQRTPSZmk: case VSQRTPSZmkz: case VSQRTPSZr: case VSQRTPSZrb: case VSQRTPSZrbk: case VSQRTPSZrbkz: case VSQRTPSZrk: case VSQRTPSZrkz: case VSQRTPSm: case VSQRTPSr: return true; } return false; } bool isVPSUBSB(unsigned Opcode) { switch (Opcode) { case VPSUBSBYrm: case VPSUBSBYrr: case VPSUBSBZ128rm: case VPSUBSBZ128rmk: case VPSUBSBZ128rmkz: case VPSUBSBZ128rr: case VPSUBSBZ128rrk: case VPSUBSBZ128rrkz: case VPSUBSBZ256rm: case VPSUBSBZ256rmk: case VPSUBSBZ256rmkz: case VPSUBSBZ256rr: case VPSUBSBZ256rrk: case VPSUBSBZ256rrkz: case VPSUBSBZrm: case VPSUBSBZrmk: case VPSUBSBZrmkz: case VPSUBSBZrr: case VPSUBSBZrrk: case VPSUBSBZrrkz: case VPSUBSBrm: case VPSUBSBrr: return true; } return false; } bool isMULX(unsigned Opcode) { switch (Opcode) { case MULX32rm: case MULX32rr: case MULX64rm: case MULX64rr: return true; } return false; } bool isMINPS(unsigned Opcode) { switch (Opcode) { case MINPSrm: case MINPSrr: return true; } return false; } bool isPSHUFLW(unsigned Opcode) { switch (Opcode) { case PSHUFLWmi: case PSHUFLWri: return true; } return false; } bool isVEXTRACTF64X2(unsigned Opcode) { switch (Opcode) { case VEXTRACTF64x2Z256mr: case VEXTRACTF64x2Z256mrk: case VEXTRACTF64x2Z256rr: case VEXTRACTF64x2Z256rrk: case VEXTRACTF64x2Z256rrkz: case VEXTRACTF64x2Zmr: case VEXTRACTF64x2Zmrk: case VEXTRACTF64x2Zrr: case VEXTRACTF64x2Zrrk: case VEXTRACTF64x2Zrrkz: return true; } return false; } bool isVEXTRACTF64X4(unsigned Opcode) { switch (Opcode) { case VEXTRACTF64x4Zmr: case VEXTRACTF64x4Zmrk: case VEXTRACTF64x4Zrr: case VEXTRACTF64x4Zrrk: case VEXTRACTF64x4Zrrkz: return true; } return false; } bool isVCVTTSD2USI(unsigned Opcode) { switch (Opcode) { case VCVTTSD2USI64Zrm_Int: case VCVTTSD2USI64Zrr_Int: case VCVTTSD2USI64Zrrb_Int: case VCVTTSD2USIZrm_Int: case VCVTTSD2USIZrr_Int: case VCVTTSD2USIZrrb_Int: return true; } return false; } bool isINCSSPD(unsigned Opcode) { return Opcode == INCSSPD; } bool isVPSIGNB(unsigned Opcode) { switch (Opcode) { case VPSIGNBYrm: case VPSIGNBYrr: case VPSIGNBrm: case VPSIGNBrr: return true; } return false; } bool isVPSUBSW(unsigned Opcode) { switch (Opcode) { case VPSUBSWYrm: case VPSUBSWYrr: case VPSUBSWZ128rm: case VPSUBSWZ128rmk: case VPSUBSWZ128rmkz: case VPSUBSWZ128rr: case VPSUBSWZ128rrk: case VPSUBSWZ128rrkz: case VPSUBSWZ256rm: case VPSUBSWZ256rmk: case VPSUBSWZ256rmkz: case VPSUBSWZ256rr: case VPSUBSWZ256rrk: case VPSUBSWZ256rrkz: case VPSUBSWZrm: case VPSUBSWZrmk: case VPSUBSWZrmkz: case VPSUBSWZrr: case VPSUBSWZrrk: case VPSUBSWZrrkz: case VPSUBSWrm: case VPSUBSWrr: return true; } return false; } bool isVPSIGND(unsigned Opcode) { switch (Opcode) { case VPSIGNDYrm: case VPSIGNDYrr: case VPSIGNDrm: case VPSIGNDrr: return true; } return false; } bool isXSAVEOPT(unsigned Opcode) { return Opcode == XSAVEOPT; } bool isVPMOVSXWD(unsigned Opcode) { switch (Opcode) { case VPMOVSXWDYrm: case VPMOVSXWDYrr: case VPMOVSXWDZ128rm: case VPMOVSXWDZ128rmk: case VPMOVSXWDZ128rmkz: case VPMOVSXWDZ128rr: case VPMOVSXWDZ128rrk: case VPMOVSXWDZ128rrkz: case VPMOVSXWDZ256rm: case VPMOVSXWDZ256rmk: case VPMOVSXWDZ256rmkz: case VPMOVSXWDZ256rr: case VPMOVSXWDZ256rrk: case VPMOVSXWDZ256rrkz: case VPMOVSXWDZrm: case VPMOVSXWDZrmk: case VPMOVSXWDZrmkz: case VPMOVSXWDZrr: case VPMOVSXWDZrrk: case VPMOVSXWDZrrkz: case VPMOVSXWDrm: case VPMOVSXWDrr: return true; } return false; } bool isINCSSPQ(unsigned Opcode) { return Opcode == INCSSPQ; } bool isGF2P8AFFINEQB(unsigned Opcode) { switch (Opcode) { case GF2P8AFFINEQBrmi: case GF2P8AFFINEQBrri: return true; } return false; } bool isVPMOVSXWQ(unsigned Opcode) { switch (Opcode) { case VPMOVSXWQYrm: case VPMOVSXWQYrr: case VPMOVSXWQZ128rm: case VPMOVSXWQZ128rmk: case VPMOVSXWQZ128rmkz: case VPMOVSXWQZ128rr: case VPMOVSXWQZ128rrk: case VPMOVSXWQZ128rrkz: case VPMOVSXWQZ256rm: case VPMOVSXWQZ256rmk: case VPMOVSXWQZ256rmkz: case VPMOVSXWQZ256rr: case VPMOVSXWQZ256rrk: case VPMOVSXWQZ256rrkz: case VPMOVSXWQZrm: case VPMOVSXWQZrmk: case VPMOVSXWQZrmkz: case VPMOVSXWQZrr: case VPMOVSXWQZrrk: case VPMOVSXWQZrrkz: case VPMOVSXWQrm: case VPMOVSXWQrr: return true; } return false; } bool isVPHSUBDQ(unsigned Opcode) { switch (Opcode) { case VPHSUBDQrm: case VPHSUBDQrr: return true; } return false; } bool isVPSIGNW(unsigned Opcode) { switch (Opcode) { case VPSIGNWYrm: case VPSIGNWYrr: case VPSIGNWrm: case VPSIGNWrr: return true; } return false; } bool isSGDTD(unsigned Opcode) { return Opcode == SGDT32m; } bool isPUNPCKLWD(unsigned Opcode) { switch (Opcode) { case MMX_PUNPCKLWDrm: case MMX_PUNPCKLWDrr: case PUNPCKLWDrm: case PUNPCKLWDrr: return true; } return false; } bool isVPPERM(unsigned Opcode) { switch (Opcode) { case VPPERMrmr: case VPPERMrrm: case VPPERMrrr: case VPPERMrrr_REV: return true; } return false; } bool isAAA(unsigned Opcode) { return Opcode == AAA; } bool isPAND(unsigned Opcode) { switch (Opcode) { case MMX_PANDrm: case MMX_PANDrr: case PANDrm: case PANDrr: return true; } return false; } bool isVCVTPH2UQQ(unsigned Opcode) { switch (Opcode) { case VCVTPH2UQQZ128rm: case VCVTPH2UQQZ128rmb: case VCVTPH2UQQZ128rmbk: case VCVTPH2UQQZ128rmbkz: case VCVTPH2UQQZ128rmk: case VCVTPH2UQQZ128rmkz: case VCVTPH2UQQZ128rr: case VCVTPH2UQQZ128rrk: case VCVTPH2UQQZ128rrkz: case VCVTPH2UQQZ256rm: case VCVTPH2UQQZ256rmb: case VCVTPH2UQQZ256rmbk: case VCVTPH2UQQZ256rmbkz: case VCVTPH2UQQZ256rmk: case VCVTPH2UQQZ256rmkz: case VCVTPH2UQQZ256rr: case VCVTPH2UQQZ256rrk: case VCVTPH2UQQZ256rrkz: case VCVTPH2UQQZrm: case VCVTPH2UQQZrmb: case VCVTPH2UQQZrmbk: case VCVTPH2UQQZrmbkz: case VCVTPH2UQQZrmk: case VCVTPH2UQQZrmkz: case VCVTPH2UQQZrr: case VCVTPH2UQQZrrb: case VCVTPH2UQQZrrbk: case VCVTPH2UQQZrrbkz: case VCVTPH2UQQZrrk: case VCVTPH2UQQZrrkz: return true; } return false; } bool isAAD(unsigned Opcode) { return Opcode == AAD8i8; } bool isSGDTW(unsigned Opcode) { return Opcode == SGDT16m; } bool isVPUNPCKHWD(unsigned Opcode) { switch (Opcode) { case VPUNPCKHWDYrm: case VPUNPCKHWDYrr: case VPUNPCKHWDZ128rm: case VPUNPCKHWDZ128rmk: case VPUNPCKHWDZ128rmkz: case VPUNPCKHWDZ128rr: case VPUNPCKHWDZ128rrk: case VPUNPCKHWDZ128rrkz: case VPUNPCKHWDZ256rm: case VPUNPCKHWDZ256rmk: case VPUNPCKHWDZ256rmkz: case VPUNPCKHWDZ256rr: case VPUNPCKHWDZ256rrk: case VPUNPCKHWDZ256rrkz: case VPUNPCKHWDZrm: case VPUNPCKHWDZrmk: case VPUNPCKHWDZrmkz: case VPUNPCKHWDZrr: case VPUNPCKHWDZrrk: case VPUNPCKHWDZrrkz: case VPUNPCKHWDrm: case VPUNPCKHWDrr: return true; } return false; } bool isAAM(unsigned Opcode) { return Opcode == AAM8i8; } bool isVCVTNEOPH2PS(unsigned Opcode) { switch (Opcode) { case VCVTNEOPH2PSYrm: case VCVTNEOPH2PSrm: return true; } return false; } bool isAAS(unsigned Opcode) { return Opcode == AAS; } bool isVSQRTSD(unsigned Opcode) { switch (Opcode) { case VSQRTSDZm_Int: case VSQRTSDZm_Intk: case VSQRTSDZm_Intkz: case VSQRTSDZr_Int: case VSQRTSDZr_Intk: case VSQRTSDZr_Intkz: case VSQRTSDZrb_Int: case VSQRTSDZrb_Intk: case VSQRTSDZrb_Intkz: case VSQRTSDm_Int: case VSQRTSDr_Int: return true; } return false; } bool isBLCI(unsigned Opcode) { switch (Opcode) { case BLCI32rm: case BLCI32rr: case BLCI64rm: case BLCI64rr: return true; } return false; } bool isMINSD(unsigned Opcode) { switch (Opcode) { case MINSDrm_Int: case MINSDrr_Int: return true; } return false; } bool isVPSHUFBITQMB(unsigned Opcode) { switch (Opcode) { case VPSHUFBITQMBZ128rm: case VPSHUFBITQMBZ128rmk: case VPSHUFBITQMBZ128rr: case VPSHUFBITQMBZ128rrk: case VPSHUFBITQMBZ256rm: case VPSHUFBITQMBZ256rmk: case VPSHUFBITQMBZ256rr: case VPSHUFBITQMBZ256rrk: case VPSHUFBITQMBZrm: case VPSHUFBITQMBZrmk: case VPSHUFBITQMBZrr: case VPSHUFBITQMBZrrk: return true; } return false; } bool isKSHIFTRB(unsigned Opcode) { return Opcode == KSHIFTRBri; } bool isUMONITOR(unsigned Opcode) { switch (Opcode) { case UMONITOR16: case UMONITOR32: case UMONITOR64: return true; } return false; } bool isKSHIFTRD(unsigned Opcode) { return Opcode == KSHIFTRDri; } bool isFNCLEX(unsigned Opcode) { return Opcode == FNCLEX; } bool isVSQRTSH(unsigned Opcode) { switch (Opcode) { case VSQRTSHZm_Int: case VSQRTSHZm_Intk: case VSQRTSHZm_Intkz: case VSQRTSHZr_Int: case VSQRTSHZr_Intk: case VSQRTSHZr_Intkz: case VSQRTSHZrb_Int: case VSQRTSHZrb_Intk: case VSQRTSHZrb_Intkz: return true; } return false; } bool isBLCS(unsigned Opcode) { switch (Opcode) { case BLCS32rm: case BLCS32rr: case BLCS64rm: case BLCS64rr: return true; } return false; } bool isVINSERTF64X2(unsigned Opcode) { switch (Opcode) { case VINSERTF64x2Z256rm: case VINSERTF64x2Z256rmk: case VINSERTF64x2Z256rmkz: case VINSERTF64x2Z256rr: case VINSERTF64x2Z256rrk: case VINSERTF64x2Z256rrkz: case VINSERTF64x2Zrm: case VINSERTF64x2Zrmk: case VINSERTF64x2Zrmkz: case VINSERTF64x2Zrr: case VINSERTF64x2Zrrk: case VINSERTF64x2Zrrkz: return true; } return false; } bool isVSQRTSS(unsigned Opcode) { switch (Opcode) { case VSQRTSSZm_Int: case VSQRTSSZm_Intk: case VSQRTSSZm_Intkz: case VSQRTSSZr_Int: case VSQRTSSZr_Intk: case VSQRTSSZr_Intkz: case VSQRTSSZrb_Int: case VSQRTSSZrb_Intk: case VSQRTSSZrb_Intkz: case VSQRTSSm_Int: case VSQRTSSr_Int: return true; } return false; } bool isVINSERTF64X4(unsigned Opcode) { switch (Opcode) { case VINSERTF64x4Zrm: case VINSERTF64x4Zrmk: case VINSERTF64x4Zrmkz: case VINSERTF64x4Zrr: case VINSERTF64x4Zrrk: case VINSERTF64x4Zrrkz: return true; } return false; } bool isMINSS(unsigned Opcode) { switch (Opcode) { case MINSSrm_Int: case MINSSrr_Int: return true; } return false; } bool isVPBROADCASTMB2Q(unsigned Opcode) { switch (Opcode) { case VPBROADCASTMB2QZ128rr: case VPBROADCASTMB2QZ256rr: case VPBROADCASTMB2QZrr: return true; } return false; } bool isKSHIFTRQ(unsigned Opcode) { return Opcode == KSHIFTRQri; } bool isVMOVSHDUP(unsigned Opcode) { switch (Opcode) { case VMOVSHDUPYrm: case VMOVSHDUPYrr: case VMOVSHDUPZ128rm: case VMOVSHDUPZ128rmk: case VMOVSHDUPZ128rmkz: case VMOVSHDUPZ128rr: case VMOVSHDUPZ128rrk: case VMOVSHDUPZ128rrkz: case VMOVSHDUPZ256rm: case VMOVSHDUPZ256rmk: case VMOVSHDUPZ256rmkz: case VMOVSHDUPZ256rr: case VMOVSHDUPZ256rrk: case VMOVSHDUPZ256rrkz: case VMOVSHDUPZrm: case VMOVSHDUPZrmk: case VMOVSHDUPZrmkz: case VMOVSHDUPZrr: case VMOVSHDUPZrrk: case VMOVSHDUPZrrkz: case VMOVSHDUPrm: case VMOVSHDUPrr: return true; } return false; } bool isVPMOVSWB(unsigned Opcode) { switch (Opcode) { case VPMOVSWBZ128mr: case VPMOVSWBZ128mrk: case VPMOVSWBZ128rr: case VPMOVSWBZ128rrk: case VPMOVSWBZ128rrkz: case VPMOVSWBZ256mr: case VPMOVSWBZ256mrk: case VPMOVSWBZ256rr: case VPMOVSWBZ256rrk: case VPMOVSWBZ256rrkz: case VPMOVSWBZmr: case VPMOVSWBZmrk: case VPMOVSWBZrr: case VPMOVSWBZrrk: case VPMOVSWBZrrkz: return true; } return false; } bool isPMOVZXWD(unsigned Opcode) { switch (Opcode) { case PMOVZXWDrm: case PMOVZXWDrr: return true; } return false; } bool isFSIN(unsigned Opcode) { return Opcode == FSIN; } bool isPSLLDQ(unsigned Opcode) { return Opcode == PSLLDQri; } bool isKSHIFTRW(unsigned Opcode) { return Opcode == KSHIFTRWri; } bool isVPADDD(unsigned Opcode) { switch (Opcode) { case VPADDDYrm: case VPADDDYrr: case VPADDDZ128rm: case VPADDDZ128rmb: case VPADDDZ128rmbk: case VPADDDZ128rmbkz: case VPADDDZ128rmk: case VPADDDZ128rmkz: case VPADDDZ128rr: case VPADDDZ128rrk: case VPADDDZ128rrkz: case VPADDDZ256rm: case VPADDDZ256rmb: case VPADDDZ256rmbk: case VPADDDZ256rmbkz: case VPADDDZ256rmk: case VPADDDZ256rmkz: case VPADDDZ256rr: case VPADDDZ256rrk: case VPADDDZ256rrkz: case VPADDDZrm: case VPADDDZrmb: case VPADDDZrmbk: case VPADDDZrmbkz: case VPADDDZrmk: case VPADDDZrmkz: case VPADDDZrr: case VPADDDZrrk: case VPADDDZrrkz: case VPADDDrm: case VPADDDrr: return true; } return false; } bool isVPADDB(unsigned Opcode) { switch (Opcode) { case VPADDBYrm: case VPADDBYrr: case VPADDBZ128rm: case VPADDBZ128rmk: case VPADDBZ128rmkz: case VPADDBZ128rr: case VPADDBZ128rrk: case VPADDBZ128rrkz: case VPADDBZ256rm: case VPADDBZ256rmk: case VPADDBZ256rmkz: case VPADDBZ256rr: case VPADDBZ256rrk: case VPADDBZ256rrkz: case VPADDBZrm: case VPADDBZrmk: case VPADDBZrmkz: case VPADDBZrr: case VPADDBZrrk: case VPADDBZrrkz: case VPADDBrm: case VPADDBrr: return true; } return false; } bool isVPMACSSWD(unsigned Opcode) { switch (Opcode) { case VPMACSSWDrm: case VPMACSSWDrr: return true; } return false; } bool isPMOVZXWQ(unsigned Opcode) { switch (Opcode) { case PMOVZXWQrm: case PMOVZXWQrr: return true; } return false; } bool isVPADDQ(unsigned Opcode) { switch (Opcode) { case VPADDQYrm: case VPADDQYrr: case VPADDQZ128rm: case VPADDQZ128rmb: case VPADDQZ128rmbk: case VPADDQZ128rmbkz: case VPADDQZ128rmk: case VPADDQZ128rmkz: case VPADDQZ128rr: case VPADDQZ128rrk: case VPADDQZ128rrkz: case VPADDQZ256rm: case VPADDQZ256rmb: case VPADDQZ256rmbk: case VPADDQZ256rmbkz: case VPADDQZ256rmk: case VPADDQZ256rmkz: case VPADDQZ256rr: case VPADDQZ256rrk: case VPADDQZ256rrkz: case VPADDQZrm: case VPADDQZrmb: case VPADDQZrmbk: case VPADDQZrmbkz: case VPADDQZrmk: case VPADDQZrmkz: case VPADDQZrr: case VPADDQZrrk: case VPADDQZrrkz: case VPADDQrm: case VPADDQrr: return true; } return false; } bool isVPADDW(unsigned Opcode) { switch (Opcode) { case VPADDWYrm: case VPADDWYrr: case VPADDWZ128rm: case VPADDWZ128rmk: case VPADDWZ128rmkz: case VPADDWZ128rr: case VPADDWZ128rrk: case VPADDWZ128rrkz: case VPADDWZ256rm: case VPADDWZ256rmk: case VPADDWZ256rmkz: case VPADDWZ256rr: case VPADDWZ256rrk: case VPADDWZ256rrkz: case VPADDWZrm: case VPADDWZrmk: case VPADDWZrmkz: case VPADDWZrr: case VPADDWZrrk: case VPADDWZrrkz: case VPADDWrm: case VPADDWrr: return true; } return false; } bool isVRSQRTPH(unsigned Opcode) { switch (Opcode) { case VRSQRTPHZ128m: case VRSQRTPHZ128mb: case VRSQRTPHZ128mbk: case VRSQRTPHZ128mbkz: case VRSQRTPHZ128mk: case VRSQRTPHZ128mkz: case VRSQRTPHZ128r: case VRSQRTPHZ128rk: case VRSQRTPHZ128rkz: case VRSQRTPHZ256m: case VRSQRTPHZ256mb: case VRSQRTPHZ256mbk: case VRSQRTPHZ256mbkz: case VRSQRTPHZ256mk: case VRSQRTPHZ256mkz: case VRSQRTPHZ256r: case VRSQRTPHZ256rk: case VRSQRTPHZ256rkz: case VRSQRTPHZm: case VRSQRTPHZmb: case VRSQRTPHZmbk: case VRSQRTPHZmbkz: case VRSQRTPHZmk: case VRSQRTPHZmkz: case VRSQRTPHZr: case VRSQRTPHZrk: case VRSQRTPHZrkz: return true; } return false; } bool isVPMACSSWW(unsigned Opcode) { switch (Opcode) { case VPMACSSWWrm: case VPMACSSWWrr: return true; } return false; } bool isVRSQRTPS(unsigned Opcode) { switch (Opcode) { case VRSQRTPSYm: case VRSQRTPSYr: case VRSQRTPSm: case VRSQRTPSr: return true; } return false; } bool isVCVTTPH2DQ(unsigned Opcode) { switch (Opcode) { case VCVTTPH2DQZ128rm: case VCVTTPH2DQZ128rmb: case VCVTTPH2DQZ128rmbk: case VCVTTPH2DQZ128rmbkz: case VCVTTPH2DQZ128rmk: case VCVTTPH2DQZ128rmkz: case VCVTTPH2DQZ128rr: case VCVTTPH2DQZ128rrk: case VCVTTPH2DQZ128rrkz: case VCVTTPH2DQZ256rm: case VCVTTPH2DQZ256rmb: case VCVTTPH2DQZ256rmbk: case VCVTTPH2DQZ256rmbkz: case VCVTTPH2DQZ256rmk: case VCVTTPH2DQZ256rmkz: case VCVTTPH2DQZ256rr: case VCVTTPH2DQZ256rrk: case VCVTTPH2DQZ256rrkz: case VCVTTPH2DQZrm: case VCVTTPH2DQZrmb: case VCVTTPH2DQZrmbk: case VCVTTPH2DQZrmbkz: case VCVTTPH2DQZrmk: case VCVTTPH2DQZrmkz: case VCVTTPH2DQZrr: case VCVTTPH2DQZrrb: case VCVTTPH2DQZrrbk: case VCVTTPH2DQZrrbkz: case VCVTTPH2DQZrrk: case VCVTTPH2DQZrrkz: return true; } return false; } bool isWRMSR(unsigned Opcode) { return Opcode == WRMSR; } bool isXSETBV(unsigned Opcode) { return Opcode == XSETBV; } bool isMOVSXD(unsigned Opcode) { switch (Opcode) { case MOVSX16rm32: case MOVSX16rr32: case MOVSX32rm32: case MOVSX32rr32: case MOVSX64rm32: case MOVSX64rr32: return true; } return false; } bool isADC(unsigned Opcode) { switch (Opcode) { case ADC16i16: case ADC16mi: case ADC16mi8: case ADC16mr: case ADC16ri: case ADC16ri8: case ADC16rm: case ADC16rr: case ADC16rr_REV: case ADC32i32: case ADC32mi: case ADC32mi8: case ADC32mr: case ADC32ri: case ADC32ri8: case ADC32rm: case ADC32rr: case ADC32rr_REV: case ADC64i32: case ADC64mi32: case ADC64mi8: case ADC64mr: case ADC64ri32: case ADC64ri8: case ADC64rm: case ADC64rr: case ADC64rr_REV: case ADC8i8: case ADC8mi: case ADC8mi8: case ADC8mr: case ADC8ri: case ADC8ri8: case ADC8rm: case ADC8rr: case ADC8rr_REV: return true; } return false; } bool isADD(unsigned Opcode) { switch (Opcode) { case ADD16i16: case ADD16mi: case ADD16mi8: case ADD16mr: case ADD16ri: case ADD16ri8: case ADD16rm: case ADD16rr: case ADD16rr_REV: case ADD32i32: case ADD32mi: case ADD32mi8: case ADD32mr: case ADD32ri: case ADD32ri8: case ADD32rm: case ADD32rr: case ADD32rr_REV: case ADD64i32: case ADD64mi32: case ADD64mi8: case ADD64mr: case ADD64ri32: case ADD64ri8: case ADD64rm: case ADD64rr: case ADD64rr_REV: case ADD8i8: case ADD8mi: case ADD8mi8: case ADD8mr: case ADD8ri: case ADD8ri8: case ADD8rm: case ADD8rr: case ADD8rr_REV: return true; } return false; } bool isFDIV(unsigned Opcode) { switch (Opcode) { case DIV_F32m: case DIV_F64m: case DIV_FST0r: case DIV_FrST0: return true; } return false; } bool isAESDEC256KL(unsigned Opcode) { return Opcode == AESDEC256KL; } bool isVPCMPUB(unsigned Opcode) { switch (Opcode) { case VPCMPUBZ128rmi: case VPCMPUBZ128rmik: case VPCMPUBZ128rri: case VPCMPUBZ128rrik: case VPCMPUBZ256rmi: case VPCMPUBZ256rmik: case VPCMPUBZ256rri: case VPCMPUBZ256rrik: case VPCMPUBZrmi: case VPCMPUBZrmik: case VPCMPUBZrri: case VPCMPUBZrrik: return true; } return false; } bool isVCVTTPD2QQ(unsigned Opcode) { switch (Opcode) { case VCVTTPD2QQZ128rm: case VCVTTPD2QQZ128rmb: case VCVTTPD2QQZ128rmbk: case VCVTTPD2QQZ128rmbkz: case VCVTTPD2QQZ128rmk: case VCVTTPD2QQZ128rmkz: case VCVTTPD2QQZ128rr: case VCVTTPD2QQZ128rrk: case VCVTTPD2QQZ128rrkz: case VCVTTPD2QQZ256rm: case VCVTTPD2QQZ256rmb: case VCVTTPD2QQZ256rmbk: case VCVTTPD2QQZ256rmbkz: case VCVTTPD2QQZ256rmk: case VCVTTPD2QQZ256rmkz: case VCVTTPD2QQZ256rr: case VCVTTPD2QQZ256rrk: case VCVTTPD2QQZ256rrkz: case VCVTTPD2QQZrm: case VCVTTPD2QQZrmb: case VCVTTPD2QQZrmbk: case VCVTTPD2QQZrmbkz: case VCVTTPD2QQZrmk: case VCVTTPD2QQZrmkz: case VCVTTPD2QQZrr: case VCVTTPD2QQZrrb: case VCVTTPD2QQZrrbk: case VCVTTPD2QQZrrbkz: case VCVTTPD2QQZrrk: case VCVTTPD2QQZrrkz: return true; } return false; } bool isVPCMPUD(unsigned Opcode) { switch (Opcode) { case VPCMPUDZ128rmi: case VPCMPUDZ128rmib: case VPCMPUDZ128rmibk: case VPCMPUDZ128rmik: case VPCMPUDZ128rri: case VPCMPUDZ128rrik: case VPCMPUDZ256rmi: case VPCMPUDZ256rmib: case VPCMPUDZ256rmibk: case VPCMPUDZ256rmik: case VPCMPUDZ256rri: case VPCMPUDZ256rrik: case VPCMPUDZrmi: case VPCMPUDZrmib: case VPCMPUDZrmibk: case VPCMPUDZrmik: case VPCMPUDZrri: case VPCMPUDZrrik: return true; } return false; } bool isPFMUL(unsigned Opcode) { switch (Opcode) { case PFMULrm: case PFMULrr: return true; } return false; } bool isPREFETCHW(unsigned Opcode) { return Opcode == PREFETCHW; } bool isVPCMPUQ(unsigned Opcode) { switch (Opcode) { case VPCMPUQZ128rmi: case VPCMPUQZ128rmib: case VPCMPUQZ128rmibk: case VPCMPUQZ128rmik: case VPCMPUQZ128rri: case VPCMPUQZ128rrik: case VPCMPUQZ256rmi: case VPCMPUQZ256rmib: case VPCMPUQZ256rmibk: case VPCMPUQZ256rmik: case VPCMPUQZ256rri: case VPCMPUQZ256rrik: case VPCMPUQZrmi: case VPCMPUQZrmib: case VPCMPUQZrmibk: case VPCMPUQZrmik: case VPCMPUQZrri: case VPCMPUQZrrik: return true; } return false; } bool isKORTESTB(unsigned Opcode) { return Opcode == KORTESTBrr; } bool isMOVHPD(unsigned Opcode) { switch (Opcode) { case MOVHPDmr: case MOVHPDrm: return true; } return false; } bool isKORTESTD(unsigned Opcode) { return Opcode == KORTESTDrr; } bool isCVTSI2SD(unsigned Opcode) { switch (Opcode) { case CVTSI2SDrm_Int: case CVTSI2SDrr_Int: case CVTSI642SDrm_Int: case CVTSI642SDrr_Int: return true; } return false; } bool isFSUBRP(unsigned Opcode) { return Opcode == SUBR_FPrST0; } bool isIRET(unsigned Opcode) { return Opcode == IRET16; } bool isPTWRITE(unsigned Opcode) { switch (Opcode) { case PTWRITE64m: case PTWRITE64r: case PTWRITEm: case PTWRITEr: return true; } return false; } bool isVPCMPUW(unsigned Opcode) { switch (Opcode) { case VPCMPUWZ128rmi: case VPCMPUWZ128rmik: case VPCMPUWZ128rri: case VPCMPUWZ128rrik: case VPCMPUWZ256rmi: case VPCMPUWZ256rmik: case VPCMPUWZ256rri: case VPCMPUWZ256rrik: case VPCMPUWZrmi: case VPCMPUWZrmik: case VPCMPUWZrri: case VPCMPUWZrrik: return true; } return false; } bool isKORTESTQ(unsigned Opcode) { return Opcode == KORTESTQrr; } bool isMOVHPS(unsigned Opcode) { switch (Opcode) { case MOVHPSmr: case MOVHPSrm: return true; } return false; } bool isFIMUL(unsigned Opcode) { switch (Opcode) { case MUL_FI16m: case MUL_FI32m: return true; } return false; } bool isCVTSI2SS(unsigned Opcode) { switch (Opcode) { case CVTSI2SSrm_Int: case CVTSI2SSrr_Int: case CVTSI642SSrm_Int: case CVTSI642SSrr_Int: return true; } return false; } bool isVCVTPH2PD(unsigned Opcode) { switch (Opcode) { case VCVTPH2PDZ128rm: case VCVTPH2PDZ128rmb: case VCVTPH2PDZ128rmbk: case VCVTPH2PDZ128rmbkz: case VCVTPH2PDZ128rmk: case VCVTPH2PDZ128rmkz: case VCVTPH2PDZ128rr: case VCVTPH2PDZ128rrk: case VCVTPH2PDZ128rrkz: case VCVTPH2PDZ256rm: case VCVTPH2PDZ256rmb: case VCVTPH2PDZ256rmbk: case VCVTPH2PDZ256rmbkz: case VCVTPH2PDZ256rmk: case VCVTPH2PDZ256rmkz: case VCVTPH2PDZ256rr: case VCVTPH2PDZ256rrk: case VCVTPH2PDZ256rrkz: case VCVTPH2PDZrm: case VCVTPH2PDZrmb: case VCVTPH2PDZrmbk: case VCVTPH2PDZrmbkz: case VCVTPH2PDZrmk: case VCVTPH2PDZrmkz: case VCVTPH2PDZrr: case VCVTPH2PDZrrb: case VCVTPH2PDZrrbk: case VCVTPH2PDZrrbkz: case VCVTPH2PDZrrk: case VCVTPH2PDZrrkz: return true; } return false; } bool isKORTESTW(unsigned Opcode) { return Opcode == KORTESTWrr; } bool isPADDUSB(unsigned Opcode) { switch (Opcode) { case MMX_PADDUSBrm: case MMX_PADDUSBrr: case PADDUSBrm: case PADDUSBrr: return true; } return false; } bool isVSHUFI64X2(unsigned Opcode) { switch (Opcode) { case VSHUFI64X2Z256rmbi: case VSHUFI64X2Z256rmbik: case VSHUFI64X2Z256rmbikz: case VSHUFI64X2Z256rmi: case VSHUFI64X2Z256rmik: case VSHUFI64X2Z256rmikz: case VSHUFI64X2Z256rri: case VSHUFI64X2Z256rrik: case VSHUFI64X2Z256rrikz: case VSHUFI64X2Zrmbi: case VSHUFI64X2Zrmbik: case VSHUFI64X2Zrmbikz: case VSHUFI64X2Zrmi: case VSHUFI64X2Zrmik: case VSHUFI64X2Zrmikz: case VSHUFI64X2Zrri: case VSHUFI64X2Zrrik: case VSHUFI64X2Zrrikz: return true; } return false; } bool isVRSQRTSH(unsigned Opcode) { switch (Opcode) { case VRSQRTSHZrm: case VRSQRTSHZrmk: case VRSQRTSHZrmkz: case VRSQRTSHZrr: case VRSQRTSHZrrk: case VRSQRTSHZrrkz: return true; } return false; } bool isVMWRITE(unsigned Opcode) { switch (Opcode) { case VMWRITE32rm: case VMWRITE32rr: case VMWRITE64rm: case VMWRITE64rr: return true; } return false; } bool isTILERELEASE(unsigned Opcode) { return Opcode == TILERELEASE; } bool isVCVTPH2PS(unsigned Opcode) { switch (Opcode) { case VCVTPH2PSYrm: case VCVTPH2PSYrr: case VCVTPH2PSZ128rm: case VCVTPH2PSZ128rmk: case VCVTPH2PSZ128rmkz: case VCVTPH2PSZ128rr: case VCVTPH2PSZ128rrk: case VCVTPH2PSZ128rrkz: case VCVTPH2PSZ256rm: case VCVTPH2PSZ256rmk: case VCVTPH2PSZ256rmkz: case VCVTPH2PSZ256rr: case VCVTPH2PSZ256rrk: case VCVTPH2PSZ256rrkz: case VCVTPH2PSZrm: case VCVTPH2PSZrmk: case VCVTPH2PSZrmkz: case VCVTPH2PSZrr: case VCVTPH2PSZrrb: case VCVTPH2PSZrrbk: case VCVTPH2PSZrrbkz: case VCVTPH2PSZrrk: case VCVTPH2PSZrrkz: case VCVTPH2PSrm: case VCVTPH2PSrr: return true; } return false; } bool isVMOVUPD(unsigned Opcode) { switch (Opcode) { case VMOVUPDYmr: case VMOVUPDYrm: case VMOVUPDYrr: case VMOVUPDYrr_REV: case VMOVUPDZ128mr: case VMOVUPDZ128mrk: case VMOVUPDZ128rm: case VMOVUPDZ128rmk: case VMOVUPDZ128rmkz: case VMOVUPDZ128rr: case VMOVUPDZ128rr_REV: case VMOVUPDZ128rrk: case VMOVUPDZ128rrk_REV: case VMOVUPDZ128rrkz: case VMOVUPDZ128rrkz_REV: case VMOVUPDZ256mr: case VMOVUPDZ256mrk: case VMOVUPDZ256rm: case VMOVUPDZ256rmk: case VMOVUPDZ256rmkz: case VMOVUPDZ256rr: case VMOVUPDZ256rr_REV: case VMOVUPDZ256rrk: case VMOVUPDZ256rrk_REV: case VMOVUPDZ256rrkz: case VMOVUPDZ256rrkz_REV: case VMOVUPDZmr: case VMOVUPDZmrk: case VMOVUPDZrm: case VMOVUPDZrmk: case VMOVUPDZrmkz: case VMOVUPDZrr: case VMOVUPDZrr_REV: case VMOVUPDZrrk: case VMOVUPDZrrk_REV: case VMOVUPDZrrkz: case VMOVUPDZrrkz_REV: case VMOVUPDmr: case VMOVUPDrm: case VMOVUPDrr: case VMOVUPDrr_REV: return true; } return false; } bool isPADDUSW(unsigned Opcode) { switch (Opcode) { case MMX_PADDUSWrm: case MMX_PADDUSWrr: case PADDUSWrm: case PADDUSWrr: return true; } return false; } bool isVRSQRTSS(unsigned Opcode) { switch (Opcode) { case VRSQRTSSm_Int: case VRSQRTSSr_Int: return true; } return false; } bool isVPCMOV(unsigned Opcode) { switch (Opcode) { case VPCMOVYrmr: case VPCMOVYrrm: case VPCMOVYrrr: case VPCMOVYrrr_REV: case VPCMOVrmr: case VPCMOVrrm: case VPCMOVrrr: case VPCMOVrrr_REV: return true; } return false; } bool isVCVTUSI2SD(unsigned Opcode) { switch (Opcode) { case VCVTUSI2SDZrm_Int: case VCVTUSI2SDZrr_Int: case VCVTUSI642SDZrm_Int: case VCVTUSI642SDZrr_Int: case VCVTUSI642SDZrrb_Int: return true; } return false; } bool isVMOVUPS(unsigned Opcode) { switch (Opcode) { case VMOVUPSYmr: case VMOVUPSYrm: case VMOVUPSYrr: case VMOVUPSYrr_REV: case VMOVUPSZ128mr: case VMOVUPSZ128mrk: case VMOVUPSZ128rm: case VMOVUPSZ128rmk: case VMOVUPSZ128rmkz: case VMOVUPSZ128rr: case VMOVUPSZ128rr_REV: case VMOVUPSZ128rrk: case VMOVUPSZ128rrk_REV: case VMOVUPSZ128rrkz: case VMOVUPSZ128rrkz_REV: case VMOVUPSZ256mr: case VMOVUPSZ256mrk: case VMOVUPSZ256rm: case VMOVUPSZ256rmk: case VMOVUPSZ256rmkz: case VMOVUPSZ256rr: case VMOVUPSZ256rr_REV: case VMOVUPSZ256rrk: case VMOVUPSZ256rrk_REV: case VMOVUPSZ256rrkz: case VMOVUPSZ256rrkz_REV: case VMOVUPSZmr: case VMOVUPSZmrk: case VMOVUPSZrm: case VMOVUPSZrmk: case VMOVUPSZrmkz: case VMOVUPSZrr: case VMOVUPSZrr_REV: case VMOVUPSZrrk: case VMOVUPSZrrk_REV: case VMOVUPSZrrkz: case VMOVUPSZrrkz_REV: case VMOVUPSmr: case VMOVUPSrm: case VMOVUPSrr: case VMOVUPSrr_REV: return true; } return false; } bool isVCVTUSI2SH(unsigned Opcode) { switch (Opcode) { case VCVTUSI2SHZrm_Int: case VCVTUSI2SHZrr_Int: case VCVTUSI2SHZrrb_Int: case VCVTUSI642SHZrm_Int: case VCVTUSI642SHZrr_Int: case VCVTUSI642SHZrrb_Int: return true; } return false; } bool isVPCMPB(unsigned Opcode) { switch (Opcode) { case VPCMPBZ128rmi: case VPCMPBZ128rmik: case VPCMPBZ128rri: case VPCMPBZ128rrik: case VPCMPBZ256rmi: case VPCMPBZ256rmik: case VPCMPBZ256rri: case VPCMPBZ256rrik: case VPCMPBZrmi: case VPCMPBZrmik: case VPCMPBZrri: case VPCMPBZrrik: return true; } return false; } bool isVPGATHERDD(unsigned Opcode) { switch (Opcode) { case VPGATHERDDYrm: case VPGATHERDDZ128rm: case VPGATHERDDZ256rm: case VPGATHERDDZrm: case VPGATHERDDrm: return true; } return false; } bool isVPCMPD(unsigned Opcode) { switch (Opcode) { case VPCMPDZ128rmi: case VPCMPDZ128rmib: case VPCMPDZ128rmibk: case VPCMPDZ128rmik: case VPCMPDZ128rri: case VPCMPDZ128rrik: case VPCMPDZ256rmi: case VPCMPDZ256rmib: case VPCMPDZ256rmibk: case VPCMPDZ256rmik: case VPCMPDZ256rri: case VPCMPDZ256rrik: case VPCMPDZrmi: case VPCMPDZrmib: case VPCMPDZrmibk: case VPCMPDZrmik: case VPCMPDZrri: case VPCMPDZrrik: return true; } return false; } bool isVCVTUSI2SS(unsigned Opcode) { switch (Opcode) { case VCVTUSI2SSZrm_Int: case VCVTUSI2SSZrr_Int: case VCVTUSI2SSZrrb_Int: case VCVTUSI642SSZrm_Int: case VCVTUSI642SSZrr_Int: case VCVTUSI642SSZrrb_Int: return true; } return false; } bool isLFENCE(unsigned Opcode) { return Opcode == LFENCE; } bool isVCVTPH2QQ(unsigned Opcode) { switch (Opcode) { case VCVTPH2QQZ128rm: case VCVTPH2QQZ128rmb: case VCVTPH2QQZ128rmbk: case VCVTPH2QQZ128rmbkz: case VCVTPH2QQZ128rmk: case VCVTPH2QQZ128rmkz: case VCVTPH2QQZ128rr: case VCVTPH2QQZ128rrk: case VCVTPH2QQZ128rrkz: case VCVTPH2QQZ256rm: case VCVTPH2QQZ256rmb: case VCVTPH2QQZ256rmbk: case VCVTPH2QQZ256rmbkz: case VCVTPH2QQZ256rmk: case VCVTPH2QQZ256rmkz: case VCVTPH2QQZ256rr: case VCVTPH2QQZ256rrk: case VCVTPH2QQZ256rrkz: case VCVTPH2QQZrm: case VCVTPH2QQZrmb: case VCVTPH2QQZrmbk: case VCVTPH2QQZrmbkz: case VCVTPH2QQZrmk: case VCVTPH2QQZrmkz: case VCVTPH2QQZrr: case VCVTPH2QQZrrb: case VCVTPH2QQZrrbk: case VCVTPH2QQZrrbkz: case VCVTPH2QQZrrk: case VCVTPH2QQZrrkz: return true; } return false; } bool isVGATHERPF0DPD(unsigned Opcode) { return Opcode == VGATHERPF0DPDm; } bool isSEAMRET(unsigned Opcode) { return Opcode == SEAMRET; } bool isPI2FD(unsigned Opcode) { switch (Opcode) { case PI2FDrm: case PI2FDrr: return true; } return false; } bool isVPGATHERDQ(unsigned Opcode) { switch (Opcode) { case VPGATHERDQYrm: case VPGATHERDQZ128rm: case VPGATHERDQZ256rm: case VPGATHERDQZrm: case VPGATHERDQrm: return true; } return false; } bool isPCMPESTRI(unsigned Opcode) { switch (Opcode) { case PCMPESTRIrm: case PCMPESTRIrr: return true; } return false; } bool isVPCMPQ(unsigned Opcode) { switch (Opcode) { case VPCMPQZ128rmi: case VPCMPQZ128rmib: case VPCMPQZ128rmibk: case VPCMPQZ128rmik: case VPCMPQZ128rri: case VPCMPQZ128rrik: case VPCMPQZ256rmi: case VPCMPQZ256rmib: case VPCMPQZ256rmibk: case VPCMPQZ256rmik: case VPCMPQZ256rri: case VPCMPQZ256rrik: case VPCMPQZrmi: case VPCMPQZrmib: case VPCMPQZrmibk: case VPCMPQZrmik: case VPCMPQZrri: case VPCMPQZrrik: return true; } return false; } bool isPCMPESTRM(unsigned Opcode) { switch (Opcode) { case PCMPESTRMrm: case PCMPESTRMrr: return true; } return false; } bool isVPCMPW(unsigned Opcode) { switch (Opcode) { case VPCMPWZ128rmi: case VPCMPWZ128rmik: case VPCMPWZ128rri: case VPCMPWZ128rrik: case VPCMPWZ256rmi: case VPCMPWZ256rmik: case VPCMPWZ256rri: case VPCMPWZ256rrik: case VPCMPWZrmi: case VPCMPWZrmik: case VPCMPWZrri: case VPCMPWZrrik: return true; } return false; } bool isVGATHERPF0DPS(unsigned Opcode) { return Opcode == VGATHERPF0DPSm; } bool isVPMOVUSDB(unsigned Opcode) { switch (Opcode) { case VPMOVUSDBZ128mr: case VPMOVUSDBZ128mrk: case VPMOVUSDBZ128rr: case VPMOVUSDBZ128rrk: case VPMOVUSDBZ128rrkz: case VPMOVUSDBZ256mr: case VPMOVUSDBZ256mrk: case VPMOVUSDBZ256rr: case VPMOVUSDBZ256rrk: case VPMOVUSDBZ256rrkz: case VPMOVUSDBZmr: case VPMOVUSDBZmrk: case VPMOVUSDBZrr: case VPMOVUSDBZrrk: case VPMOVUSDBZrrkz: return true; } return false; } bool isPI2FW(unsigned Opcode) { switch (Opcode) { case PI2FWrm: case PI2FWrr: return true; } return false; } bool isSYSEXITQ(unsigned Opcode) { return Opcode == SYSEXIT64; } bool isCVTPS2DQ(unsigned Opcode) { switch (Opcode) { case CVTPS2DQrm: case CVTPS2DQrr: return true; } return false; } bool isRDPKRU(unsigned Opcode) { return Opcode == RDPKRUr; } bool isVPMOVUSDW(unsigned Opcode) { switch (Opcode) { case VPMOVUSDWZ128mr: case VPMOVUSDWZ128mrk: case VPMOVUSDWZ128rr: case VPMOVUSDWZ128rrk: case VPMOVUSDWZ128rrkz: case VPMOVUSDWZ256mr: case VPMOVUSDWZ256mrk: case VPMOVUSDWZ256rr: case VPMOVUSDWZ256rrk: case VPMOVUSDWZ256rrkz: case VPMOVUSDWZmr: case VPMOVUSDWZmrk: case VPMOVUSDWZrr: case VPMOVUSDWZrrk: case VPMOVUSDWZrrkz: return true; } return false; } bool isPSUBB(unsigned Opcode) { switch (Opcode) { case MMX_PSUBBrm: case MMX_PSUBBrr: case PSUBBrm: case PSUBBrr: return true; } return false; } bool isPSUBD(unsigned Opcode) { switch (Opcode) { case MMX_PSUBDrm: case MMX_PSUBDrr: case PSUBDrm: case PSUBDrr: return true; } return false; } bool isVPSHRDD(unsigned Opcode) { switch (Opcode) { case VPSHRDDZ128rmbi: case VPSHRDDZ128rmbik: case VPSHRDDZ128rmbikz: case VPSHRDDZ128rmi: case VPSHRDDZ128rmik: case VPSHRDDZ128rmikz: case VPSHRDDZ128rri: case VPSHRDDZ128rrik: case VPSHRDDZ128rrikz: case VPSHRDDZ256rmbi: case VPSHRDDZ256rmbik: case VPSHRDDZ256rmbikz: case VPSHRDDZ256rmi: case VPSHRDDZ256rmik: case VPSHRDDZ256rmikz: case VPSHRDDZ256rri: case VPSHRDDZ256rrik: case VPSHRDDZ256rrikz: case VPSHRDDZrmbi: case VPSHRDDZrmbik: case VPSHRDDZrmbikz: case VPSHRDDZrmi: case VPSHRDDZrmik: case VPSHRDDZrmikz: case VPSHRDDZrri: case VPSHRDDZrrik: case VPSHRDDZrrikz: return true; } return false; } bool isRETFQ(unsigned Opcode) { switch (Opcode) { case LRET64: case LRETI64: return true; } return false; } bool isVPERMT2PD(unsigned Opcode) { switch (Opcode) { case VPERMT2PD128rm: case VPERMT2PD128rmb: case VPERMT2PD128rmbk: case VPERMT2PD128rmbkz: case VPERMT2PD128rmk: case VPERMT2PD128rmkz: case VPERMT2PD128rr: case VPERMT2PD128rrk: case VPERMT2PD128rrkz: case VPERMT2PD256rm: case VPERMT2PD256rmb: case VPERMT2PD256rmbk: case VPERMT2PD256rmbkz: case VPERMT2PD256rmk: case VPERMT2PD256rmkz: case VPERMT2PD256rr: case VPERMT2PD256rrk: case VPERMT2PD256rrkz: case VPERMT2PDrm: case VPERMT2PDrmb: case VPERMT2PDrmbk: case VPERMT2PDrmbkz: case VPERMT2PDrmk: case VPERMT2PDrmkz: case VPERMT2PDrr: case VPERMT2PDrrk: case VPERMT2PDrrkz: return true; } return false; } bool isMOVABS(unsigned Opcode) { switch (Opcode) { case MOV16ao64: case MOV16o64a: case MOV32ao64: case MOV32o64a: case MOV64ao64: case MOV64o64a: case MOV64ri: case MOV8ao64: case MOV8o64a: return true; } return false; } bool isVPSHRDQ(unsigned Opcode) { switch (Opcode) { case VPSHRDQZ128rmbi: case VPSHRDQZ128rmbik: case VPSHRDQZ128rmbikz: case VPSHRDQZ128rmi: case VPSHRDQZ128rmik: case VPSHRDQZ128rmikz: case VPSHRDQZ128rri: case VPSHRDQZ128rrik: case VPSHRDQZ128rrikz: case VPSHRDQZ256rmbi: case VPSHRDQZ256rmbik: case VPSHRDQZ256rmbikz: case VPSHRDQZ256rmi: case VPSHRDQZ256rmik: case VPSHRDQZ256rmikz: case VPSHRDQZ256rri: case VPSHRDQZ256rrik: case VPSHRDQZ256rrikz: case VPSHRDQZrmbi: case VPSHRDQZrmbik: case VPSHRDQZrmbikz: case VPSHRDQZrmi: case VPSHRDQZrmik: case VPSHRDQZrmikz: case VPSHRDQZrri: case VPSHRDQZrrik: case VPSHRDQZrrikz: return true; } return false; } bool isPSUBQ(unsigned Opcode) { switch (Opcode) { case MMX_PSUBQrm: case MMX_PSUBQrr: case PSUBQrm: case PSUBQrr: return true; } return false; } bool isVPSHRDW(unsigned Opcode) { switch (Opcode) { case VPSHRDWZ128rmi: case VPSHRDWZ128rmik: case VPSHRDWZ128rmikz: case VPSHRDWZ128rri: case VPSHRDWZ128rrik: case VPSHRDWZ128rrikz: case VPSHRDWZ256rmi: case VPSHRDWZ256rmik: case VPSHRDWZ256rmikz: case VPSHRDWZ256rri: case VPSHRDWZ256rrik: case VPSHRDWZ256rrikz: case VPSHRDWZrmi: case VPSHRDWZrmik: case VPSHRDWZrmikz: case VPSHRDWZrri: case VPSHRDWZrrik: case VPSHRDWZrrikz: return true; } return false; } bool isVPSHLB(unsigned Opcode) { switch (Opcode) { case VPSHLBmr: case VPSHLBrm: case VPSHLBrr: case VPSHLBrr_REV: return true; } return false; } bool isPSUBW(unsigned Opcode) { switch (Opcode) { case MMX_PSUBWrm: case MMX_PSUBWrr: case PSUBWrm: case PSUBWrr: return true; } return false; } bool isVPSHLD(unsigned Opcode) { switch (Opcode) { case VPSHLDmr: case VPSHLDrm: case VPSHLDrr: case VPSHLDrr_REV: return true; } return false; } bool isVPERMT2PS(unsigned Opcode) { switch (Opcode) { case VPERMT2PS128rm: case VPERMT2PS128rmb: case VPERMT2PS128rmbk: case VPERMT2PS128rmbkz: case VPERMT2PS128rmk: case VPERMT2PS128rmkz: case VPERMT2PS128rr: case VPERMT2PS128rrk: case VPERMT2PS128rrkz: case VPERMT2PS256rm: case VPERMT2PS256rmb: case VPERMT2PS256rmbk: case VPERMT2PS256rmbkz: case VPERMT2PS256rmk: case VPERMT2PS256rmkz: case VPERMT2PS256rr: case VPERMT2PS256rrk: case VPERMT2PS256rrkz: case VPERMT2PSrm: case VPERMT2PSrmb: case VPERMT2PSrmbk: case VPERMT2PSrmbkz: case VPERMT2PSrmk: case VPERMT2PSrmkz: case VPERMT2PSrr: case VPERMT2PSrrk: case VPERMT2PSrrkz: return true; } return false; } bool isVPUNPCKLWD(unsigned Opcode) { switch (Opcode) { case VPUNPCKLWDYrm: case VPUNPCKLWDYrr: case VPUNPCKLWDZ128rm: case VPUNPCKLWDZ128rmk: case VPUNPCKLWDZ128rmkz: case VPUNPCKLWDZ128rr: case VPUNPCKLWDZ128rrk: case VPUNPCKLWDZ128rrkz: case VPUNPCKLWDZ256rm: case VPUNPCKLWDZ256rmk: case VPUNPCKLWDZ256rmkz: case VPUNPCKLWDZ256rr: case VPUNPCKLWDZ256rrk: case VPUNPCKLWDZ256rrkz: case VPUNPCKLWDZrm: case VPUNPCKLWDZrmk: case VPUNPCKLWDZrmkz: case VPUNPCKLWDZrr: case VPUNPCKLWDZrrk: case VPUNPCKLWDZrrkz: case VPUNPCKLWDrm: case VPUNPCKLWDrr: return true; } return false; } bool isVPSHLQ(unsigned Opcode) { switch (Opcode) { case VPSHLQmr: case VPSHLQrm: case VPSHLQrr: case VPSHLQrr_REV: return true; } return false; } bool isVPSHLW(unsigned Opcode) { switch (Opcode) { case VPSHLWmr: case VPSHLWrm: case VPSHLWrr: case VPSHLWrr_REV: return true; } return false; } bool isLSL(unsigned Opcode) { switch (Opcode) { case LSL16rm: case LSL16rr: case LSL32rm: case LSL32rr: case LSL64rm: case LSL64rr: return true; } return false; } bool isVBROADCASTI128(unsigned Opcode) { return Opcode == VBROADCASTI128; } bool isLSS(unsigned Opcode) { switch (Opcode) { case LSS16rm: case LSS32rm: case LSS64rm: return true; } return false; } bool isVPHADDD(unsigned Opcode) { switch (Opcode) { case VPHADDDYrm: case VPHADDDYrr: case VPHADDDrm: case VPHADDDrr: return true; } return false; } bool isADDPD(unsigned Opcode) { switch (Opcode) { case ADDPDrm: case ADDPDrr: return true; } return false; } bool isVMASKMOVPD(unsigned Opcode) { switch (Opcode) { case VMASKMOVPDYmr: case VMASKMOVPDYrm: case VMASKMOVPDmr: case VMASKMOVPDrm: return true; } return false; } bool isADDPS(unsigned Opcode) { switch (Opcode) { case ADDPSrm: case ADDPSrr: return true; } return false; } bool isINSB(unsigned Opcode) { return Opcode == INSB; } bool isINSD(unsigned Opcode) { return Opcode == INSL; } bool isVPHADDW(unsigned Opcode) { switch (Opcode) { case VPHADDWYrm: case VPHADDWYrr: case VPHADDWrm: case VPHADDWrr: return true; } return false; } bool isLTR(unsigned Opcode) { switch (Opcode) { case LTRm: case LTRr: return true; } return false; } bool isVMASKMOVPS(unsigned Opcode) { switch (Opcode) { case VMASKMOVPSYmr: case VMASKMOVPSYrm: case VMASKMOVPSmr: case VMASKMOVPSrm: return true; } return false; } bool isVCVTPH2UW(unsigned Opcode) { switch (Opcode) { case VCVTPH2UWZ128rm: case VCVTPH2UWZ128rmb: case VCVTPH2UWZ128rmbk: case VCVTPH2UWZ128rmbkz: case VCVTPH2UWZ128rmk: case VCVTPH2UWZ128rmkz: case VCVTPH2UWZ128rr: case VCVTPH2UWZ128rrk: case VCVTPH2UWZ128rrkz: case VCVTPH2UWZ256rm: case VCVTPH2UWZ256rmb: case VCVTPH2UWZ256rmbk: case VCVTPH2UWZ256rmbkz: case VCVTPH2UWZ256rmk: case VCVTPH2UWZ256rmkz: case VCVTPH2UWZ256rr: case VCVTPH2UWZ256rrk: case VCVTPH2UWZ256rrkz: case VCVTPH2UWZrm: case VCVTPH2UWZrmb: case VCVTPH2UWZrmbk: case VCVTPH2UWZrmbkz: case VCVTPH2UWZrmk: case VCVTPH2UWZrmkz: case VCVTPH2UWZrr: case VCVTPH2UWZrrb: case VCVTPH2UWZrrbk: case VCVTPH2UWZrrbkz: case VCVTPH2UWZrrk: case VCVTPH2UWZrrkz: return true; } return false; } bool isINT3(unsigned Opcode) { return Opcode == INT3; } bool isKNOTB(unsigned Opcode) { return Opcode == KNOTBrr; } bool isKNOTD(unsigned Opcode) { return Opcode == KNOTDrr; } bool isINSW(unsigned Opcode) { return Opcode == INSW; } bool isVBLENDVPD(unsigned Opcode) { switch (Opcode) { case VBLENDVPDYrm: case VBLENDVPDYrr: case VBLENDVPDrm: case VBLENDVPDrr: return true; } return false; } bool isBLSFILL(unsigned Opcode) { switch (Opcode) { case BLSFILL32rm: case BLSFILL32rr: case BLSFILL64rm: case BLSFILL64rr: return true; } return false; } bool isMONITOR(unsigned Opcode) { switch (Opcode) { case MONITOR32rrr: case MONITOR64rrr: return true; } return false; } bool isKNOTQ(unsigned Opcode) { return Opcode == KNOTQrr; } bool isCMPXCHG16B(unsigned Opcode) { return Opcode == CMPXCHG16B; } bool isKNOTW(unsigned Opcode) { return Opcode == KNOTWrr; } bool isPEXTRB(unsigned Opcode) { switch (Opcode) { case PEXTRBmr: case PEXTRBrr: return true; } return false; } bool isVPRORVD(unsigned Opcode) { switch (Opcode) { case VPRORVDZ128rm: case VPRORVDZ128rmb: case VPRORVDZ128rmbk: case VPRORVDZ128rmbkz: case VPRORVDZ128rmk: case VPRORVDZ128rmkz: case VPRORVDZ128rr: case VPRORVDZ128rrk: case VPRORVDZ128rrkz: case VPRORVDZ256rm: case VPRORVDZ256rmb: case VPRORVDZ256rmbk: case VPRORVDZ256rmbkz: case VPRORVDZ256rmk: case VPRORVDZ256rmkz: case VPRORVDZ256rr: case VPRORVDZ256rrk: case VPRORVDZ256rrkz: case VPRORVDZrm: case VPRORVDZrmb: case VPRORVDZrmbk: case VPRORVDZrmbkz: case VPRORVDZrmk: case VPRORVDZrmkz: case VPRORVDZrr: case VPRORVDZrrk: case VPRORVDZrrkz: return true; } return false; } bool isPEXTRD(unsigned Opcode) { switch (Opcode) { case PEXTRDmr: case PEXTRDrr: return true; } return false; } bool isVAESENCLAST(unsigned Opcode) { switch (Opcode) { case VAESENCLASTYrm: case VAESENCLASTYrr: case VAESENCLASTZ128rm: case VAESENCLASTZ128rr: case VAESENCLASTZ256rm: case VAESENCLASTZ256rr: case VAESENCLASTZrm: case VAESENCLASTZrr: case VAESENCLASTrm: case VAESENCLASTrr: return true; } return false; } bool isINTO(unsigned Opcode) { return Opcode == INTO; } bool isVBLENDVPS(unsigned Opcode) { switch (Opcode) { case VBLENDVPSYrm: case VBLENDVPSYrr: case VBLENDVPSrm: case VBLENDVPSrr: return true; } return false; } bool isVPRORVQ(unsigned Opcode) { switch (Opcode) { case VPRORVQZ128rm: case VPRORVQZ128rmb: case VPRORVQZ128rmbk: case VPRORVQZ128rmbkz: case VPRORVQZ128rmk: case VPRORVQZ128rmkz: case VPRORVQZ128rr: case VPRORVQZ128rrk: case VPRORVQZ128rrkz: case VPRORVQZ256rm: case VPRORVQZ256rmb: case VPRORVQZ256rmbk: case VPRORVQZ256rmbkz: case VPRORVQZ256rmk: case VPRORVQZ256rmkz: case VPRORVQZ256rr: case VPRORVQZ256rrk: case VPRORVQZ256rrkz: case VPRORVQZrm: case VPRORVQZrmb: case VPRORVQZrmbk: case VPRORVQZrmbkz: case VPRORVQZrmk: case VPRORVQZrmkz: case VPRORVQZrr: case VPRORVQZrrk: case VPRORVQZrrkz: return true; } return false; } bool isPEXTRQ(unsigned Opcode) { switch (Opcode) { case PEXTRQmr: case PEXTRQrr: return true; } return false; } bool isHSUBPD(unsigned Opcode) { switch (Opcode) { case HSUBPDrm: case HSUBPDrr: return true; } return false; } bool isPEXTRW(unsigned Opcode) { switch (Opcode) { case MMX_PEXTRWrr: case PEXTRWmr: case PEXTRWrr: case PEXTRWrr_REV: return true; } return false; } bool isFDIVRP(unsigned Opcode) { return Opcode == DIVR_FPrST0; } bool isSCASB(unsigned Opcode) { return Opcode == SCASB; } bool isF2XM1(unsigned Opcode) { return Opcode == F2XM1; } bool isSCASD(unsigned Opcode) { return Opcode == SCASL; } bool isFISUBR(unsigned Opcode) { switch (Opcode) { case SUBR_FI16m: case SUBR_FI32m: return true; } return false; } bool isMOVLPD(unsigned Opcode) { switch (Opcode) { case MOVLPDmr: case MOVLPDrm: return true; } return false; } bool isHSUBPS(unsigned Opcode) { switch (Opcode) { case HSUBPSrm: case HSUBPSrr: return true; } return false; } bool isSCASQ(unsigned Opcode) { return Opcode == SCASQ; } bool isFSTP(unsigned Opcode) { switch (Opcode) { case ST_FP32m: case ST_FP64m: case ST_FP80m: case ST_FPrr: return true; } return false; } bool isVDBPSADBW(unsigned Opcode) { switch (Opcode) { case VDBPSADBWZ128rmi: case VDBPSADBWZ128rmik: case VDBPSADBWZ128rmikz: case VDBPSADBWZ128rri: case VDBPSADBWZ128rrik: case VDBPSADBWZ128rrikz: case VDBPSADBWZ256rmi: case VDBPSADBWZ256rmik: case VDBPSADBWZ256rmikz: case VDBPSADBWZ256rri: case VDBPSADBWZ256rrik: case VDBPSADBWZ256rrikz: case VDBPSADBWZrmi: case VDBPSADBWZrmik: case VDBPSADBWZrmikz: case VDBPSADBWZrri: case VDBPSADBWZrrik: case VDBPSADBWZrrikz: return true; } return false; } bool isADDSD(unsigned Opcode) { switch (Opcode) { case ADDSDrm_Int: case ADDSDrr_Int: return true; } return false; } bool isMOVLPS(unsigned Opcode) { switch (Opcode) { case MOVLPSmr: case MOVLPSrm: return true; } return false; } bool isSCASW(unsigned Opcode) { return Opcode == SCASW; } bool isVCVTW2PH(unsigned Opcode) { switch (Opcode) { case VCVTW2PHZ128rm: case VCVTW2PHZ128rmb: case VCVTW2PHZ128rmbk: case VCVTW2PHZ128rmbkz: case VCVTW2PHZ128rmk: case VCVTW2PHZ128rmkz: case VCVTW2PHZ128rr: case VCVTW2PHZ128rrk: case VCVTW2PHZ128rrkz: case VCVTW2PHZ256rm: case VCVTW2PHZ256rmb: case VCVTW2PHZ256rmbk: case VCVTW2PHZ256rmbkz: case VCVTW2PHZ256rmk: case VCVTW2PHZ256rmkz: case VCVTW2PHZ256rr: case VCVTW2PHZ256rrk: case VCVTW2PHZ256rrkz: case VCVTW2PHZrm: case VCVTW2PHZrmb: case VCVTW2PHZrmbk: case VCVTW2PHZrmbkz: case VCVTW2PHZrmk: case VCVTW2PHZrmkz: case VCVTW2PHZrr: case VCVTW2PHZrrb: case VCVTW2PHZrrbk: case VCVTW2PHZrrbkz: case VCVTW2PHZrrk: case VCVTW2PHZrrkz: return true; } return false; } bool isVPTEST(unsigned Opcode) { switch (Opcode) { case VPTESTYrm: case VPTESTYrr: case VPTESTrm: case VPTESTrr: return true; } return false; } bool isFLD1(unsigned Opcode) { return Opcode == LD_F1; } bool isWBINVD(unsigned Opcode) { return Opcode == WBINVD; } bool isADDSS(unsigned Opcode) { switch (Opcode) { case ADDSSrm_Int: case ADDSSrr_Int: return true; } return false; } bool isPOP(unsigned Opcode) { switch (Opcode) { case POP16r: case POP16rmm: case POP16rmr: case POP32r: case POP32rmm: case POP32rmr: case POP64r: case POP64rmm: case POP64rmr: case POPDS16: case POPDS32: case POPES16: case POPES32: case POPFS16: case POPFS32: case POPFS64: case POPGS16: case POPGS32: case POPGS64: case POPSS16: case POPSS32: return true; } return false; } bool isINVD(unsigned Opcode) { return Opcode == INVD; } bool isPOR(unsigned Opcode) { switch (Opcode) { case MMX_PORrm: case MMX_PORrr: case PORrm: case PORrr: return true; } return false; } bool isAND(unsigned Opcode) { switch (Opcode) { case AND16i16: case AND16mi: case AND16mi8: case AND16mr: case AND16ri: case AND16ri8: case AND16rm: case AND16rr: case AND16rr_REV: case AND32i32: case AND32mi: case AND32mi8: case AND32mr: case AND32ri: case AND32ri8: case AND32rm: case AND32rr: case AND32rr_REV: case AND64i32: case AND64mi32: case AND64mi8: case AND64mr: case AND64ri32: case AND64ri8: case AND64rm: case AND64rr: case AND64rr_REV: case AND8i8: case AND8mi: case AND8mi8: case AND8mr: case AND8ri: case AND8ri8: case AND8rm: case AND8rr: case AND8rr_REV: return true; } return false; } bool isFYL2XP1(unsigned Opcode) { return Opcode == FYL2XP1; } bool isFSUB(unsigned Opcode) { switch (Opcode) { case SUB_F32m: case SUB_F64m: case SUB_FST0r: case SUB_FrST0: return true; } return false; } bool isENTER(unsigned Opcode) { return Opcode == ENTER; } bool isVMOVSLDUP(unsigned Opcode) { switch (Opcode) { case VMOVSLDUPYrm: case VMOVSLDUPYrr: case VMOVSLDUPZ128rm: case VMOVSLDUPZ128rmk: case VMOVSLDUPZ128rmkz: case VMOVSLDUPZ128rr: case VMOVSLDUPZ128rrk: case VMOVSLDUPZ128rrkz: case VMOVSLDUPZ256rm: case VMOVSLDUPZ256rmk: case VMOVSLDUPZ256rmkz: case VMOVSLDUPZ256rr: case VMOVSLDUPZ256rrk: case VMOVSLDUPZ256rrkz: case VMOVSLDUPZrm: case VMOVSLDUPZrmk: case VMOVSLDUPZrmkz: case VMOVSLDUPZrr: case VMOVSLDUPZrrk: case VMOVSLDUPZrrkz: case VMOVSLDUPrm: case VMOVSLDUPrr: return true; } return false; } bool isADCX(unsigned Opcode) { switch (Opcode) { case ADCX32rm: case ADCX32rr: case ADCX64rm: case ADCX64rr: return true; } return false; } bool isXADD(unsigned Opcode) { switch (Opcode) { case XADD16rm: case XADD16rr: case XADD32rm: case XADD32rr: case XADD64rm: case XADD64rr: case XADD8rm: case XADD8rr: return true; } return false; } bool isAESENC(unsigned Opcode) { switch (Opcode) { case AESENCrm: case AESENCrr: return true; } return false; } bool isFLDZ(unsigned Opcode) { return Opcode == LD_F0; } bool isXRSTORS64(unsigned Opcode) { return Opcode == XRSTORS64; } bool isVCVTTSH2USI(unsigned Opcode) { switch (Opcode) { case VCVTTSH2USI64Zrm_Int: case VCVTTSH2USI64Zrr_Int: case VCVTTSH2USI64Zrrb_Int: case VCVTTSH2USIZrm_Int: case VCVTTSH2USIZrr_Int: case VCVTTSH2USIZrrb_Int: return true; } return false; } bool isVMULPD(unsigned Opcode) { switch (Opcode) { case VMULPDYrm: case VMULPDYrr: case VMULPDZ128rm: case VMULPDZ128rmb: case VMULPDZ128rmbk: case VMULPDZ128rmbkz: case VMULPDZ128rmk: case VMULPDZ128rmkz: case VMULPDZ128rr: case VMULPDZ128rrk: case VMULPDZ128rrkz: case VMULPDZ256rm: case VMULPDZ256rmb: case VMULPDZ256rmbk: case VMULPDZ256rmbkz: case VMULPDZ256rmk: case VMULPDZ256rmkz: case VMULPDZ256rr: case VMULPDZ256rrk: case VMULPDZ256rrkz: case VMULPDZrm: case VMULPDZrmb: case VMULPDZrmbk: case VMULPDZrmbkz: case VMULPDZrmk: case VMULPDZrmkz: case VMULPDZrr: case VMULPDZrrb: case VMULPDZrrbk: case VMULPDZrrbkz: case VMULPDZrrk: case VMULPDZrrkz: case VMULPDrm: case VMULPDrr: return true; } return false; } bool isFDIVP(unsigned Opcode) { return Opcode == DIV_FPrST0; } bool isVGETMANTPD(unsigned Opcode) { switch (Opcode) { case VGETMANTPDZ128rmbi: case VGETMANTPDZ128rmbik: case VGETMANTPDZ128rmbikz: case VGETMANTPDZ128rmi: case VGETMANTPDZ128rmik: case VGETMANTPDZ128rmikz: case VGETMANTPDZ128rri: case VGETMANTPDZ128rrik: case VGETMANTPDZ128rrikz: case VGETMANTPDZ256rmbi: case VGETMANTPDZ256rmbik: case VGETMANTPDZ256rmbikz: case VGETMANTPDZ256rmi: case VGETMANTPDZ256rmik: case VGETMANTPDZ256rmikz: case VGETMANTPDZ256rri: case VGETMANTPDZ256rrik: case VGETMANTPDZ256rrikz: case VGETMANTPDZrmbi: case VGETMANTPDZrmbik: case VGETMANTPDZrmbikz: case VGETMANTPDZrmi: case VGETMANTPDZrmik: case VGETMANTPDZrmikz: case VGETMANTPDZrri: case VGETMANTPDZrrib: case VGETMANTPDZrribk: case VGETMANTPDZrribkz: case VGETMANTPDZrrik: case VGETMANTPDZrrikz: return true; } return false; } bool isFDIVR(unsigned Opcode) { switch (Opcode) { case DIVR_F32m: case DIVR_F64m: case DIVR_FST0r: case DIVR_FrST0: return true; } return false; } bool isVPMOVM2D(unsigned Opcode) { switch (Opcode) { case VPMOVM2DZ128rr: case VPMOVM2DZ256rr: case VPMOVM2DZrr: return true; } return false; } bool isVMULPH(unsigned Opcode) { switch (Opcode) { case VMULPHZ128rm: case VMULPHZ128rmb: case VMULPHZ128rmbk: case VMULPHZ128rmbkz: case VMULPHZ128rmk: case VMULPHZ128rmkz: case VMULPHZ128rr: case VMULPHZ128rrk: case VMULPHZ128rrkz: case VMULPHZ256rm: case VMULPHZ256rmb: case VMULPHZ256rmbk: case VMULPHZ256rmbkz: case VMULPHZ256rmk: case VMULPHZ256rmkz: case VMULPHZ256rr: case VMULPHZ256rrk: case VMULPHZ256rrkz: case VMULPHZrm: case VMULPHZrmb: case VMULPHZrmbk: case VMULPHZrmbkz: case VMULPHZrmk: case VMULPHZrmkz: case VMULPHZrr: case VMULPHZrrb: case VMULPHZrrbk: case VMULPHZrrbkz: case VMULPHZrrk: case VMULPHZrrkz: return true; } return false; } bool isVGETMANTPH(unsigned Opcode) { switch (Opcode) { case VGETMANTPHZ128rmbi: case VGETMANTPHZ128rmbik: case VGETMANTPHZ128rmbikz: case VGETMANTPHZ128rmi: case VGETMANTPHZ128rmik: case VGETMANTPHZ128rmikz: case VGETMANTPHZ128rri: case VGETMANTPHZ128rrik: case VGETMANTPHZ128rrikz: case VGETMANTPHZ256rmbi: case VGETMANTPHZ256rmbik: case VGETMANTPHZ256rmbikz: case VGETMANTPHZ256rmi: case VGETMANTPHZ256rmik: case VGETMANTPHZ256rmikz: case VGETMANTPHZ256rri: case VGETMANTPHZ256rrik: case VGETMANTPHZ256rrikz: case VGETMANTPHZrmbi: case VGETMANTPHZrmbik: case VGETMANTPHZrmbikz: case VGETMANTPHZrmi: case VGETMANTPHZrmik: case VGETMANTPHZrmikz: case VGETMANTPHZrri: case VGETMANTPHZrrib: case VGETMANTPHZrribk: case VGETMANTPHZrribkz: case VGETMANTPHZrrik: case VGETMANTPHZrrikz: return true; } return false; } bool isVPMOVM2B(unsigned Opcode) { switch (Opcode) { case VPMOVM2BZ128rr: case VPMOVM2BZ256rr: case VPMOVM2BZrr: return true; } return false; } bool isAOR(unsigned Opcode) { switch (Opcode) { case AOR32mr: case AOR64mr: return true; } return false; } bool isVPHSUBSW(unsigned Opcode) { switch (Opcode) { case VPHSUBSWYrm: case VPHSUBSWYrr: case VPHSUBSWrm: case VPHSUBSWrr: return true; } return false; } bool isVMULPS(unsigned Opcode) { switch (Opcode) { case VMULPSYrm: case VMULPSYrr: case VMULPSZ128rm: case VMULPSZ128rmb: case VMULPSZ128rmbk: case VMULPSZ128rmbkz: case VMULPSZ128rmk: case VMULPSZ128rmkz: case VMULPSZ128rr: case VMULPSZ128rrk: case VMULPSZ128rrkz: case VMULPSZ256rm: case VMULPSZ256rmb: case VMULPSZ256rmbk: case VMULPSZ256rmbkz: case VMULPSZ256rmk: case VMULPSZ256rmkz: case VMULPSZ256rr: case VMULPSZ256rrk: case VMULPSZ256rrkz: case VMULPSZrm: case VMULPSZrmb: case VMULPSZrmbk: case VMULPSZrmbkz: case VMULPSZrmk: case VMULPSZrmkz: case VMULPSZrr: case VMULPSZrrb: case VMULPSZrrbk: case VMULPSZrrbkz: case VMULPSZrrk: case VMULPSZrrkz: case VMULPSrm: case VMULPSrr: return true; } return false; } bool isVPMOVM2Q(unsigned Opcode) { switch (Opcode) { case VPMOVM2QZ128rr: case VPMOVM2QZ256rr: case VPMOVM2QZrr: return true; } return false; } bool isMOVNTDQ(unsigned Opcode) { return Opcode == MOVNTDQmr; } bool isVGETMANTPS(unsigned Opcode) { switch (Opcode) { case VGETMANTPSZ128rmbi: case VGETMANTPSZ128rmbik: case VGETMANTPSZ128rmbikz: case VGETMANTPSZ128rmi: case VGETMANTPSZ128rmik: case VGETMANTPSZ128rmikz: case VGETMANTPSZ128rri: case VGETMANTPSZ128rrik: case VGETMANTPSZ128rrikz: case VGETMANTPSZ256rmbi: case VGETMANTPSZ256rmbik: case VGETMANTPSZ256rmbikz: case VGETMANTPSZ256rmi: case VGETMANTPSZ256rmik: case VGETMANTPSZ256rmikz: case VGETMANTPSZ256rri: case VGETMANTPSZ256rrik: case VGETMANTPSZ256rrikz: case VGETMANTPSZrmbi: case VGETMANTPSZrmbik: case VGETMANTPSZrmbikz: case VGETMANTPSZrmi: case VGETMANTPSZrmik: case VGETMANTPSZrmikz: case VGETMANTPSZrri: case VGETMANTPSZrrib: case VGETMANTPSZrribk: case VGETMANTPSZrribkz: case VGETMANTPSZrrik: case VGETMANTPSZrrikz: return true; } return false; } bool isVPCMPESTRI(unsigned Opcode) { switch (Opcode) { case VPCMPESTRIrm: case VPCMPESTRIrr: return true; } return false; } bool isVPMOVM2W(unsigned Opcode) { switch (Opcode) { case VPMOVM2WZ128rr: case VPMOVM2WZ256rr: case VPMOVM2WZrr: return true; } return false; } bool isVPCMPESTRM(unsigned Opcode) { switch (Opcode) { case VPCMPESTRMrm: case VPCMPESTRMrr: return true; } return false; } bool isSYSENTER(unsigned Opcode) { return Opcode == SYSENTER; } bool isVPERMPD(unsigned Opcode) { switch (Opcode) { case VPERMPDYmi: case VPERMPDYri: case VPERMPDZ256mbi: case VPERMPDZ256mbik: case VPERMPDZ256mbikz: case VPERMPDZ256mi: case VPERMPDZ256mik: case VPERMPDZ256mikz: case VPERMPDZ256ri: case VPERMPDZ256rik: case VPERMPDZ256rikz: case VPERMPDZ256rm: case VPERMPDZ256rmb: case VPERMPDZ256rmbk: case VPERMPDZ256rmbkz: case VPERMPDZ256rmk: case VPERMPDZ256rmkz: case VPERMPDZ256rr: case VPERMPDZ256rrk: case VPERMPDZ256rrkz: case VPERMPDZmbi: case VPERMPDZmbik: case VPERMPDZmbikz: case VPERMPDZmi: case VPERMPDZmik: case VPERMPDZmikz: case VPERMPDZri: case VPERMPDZrik: case VPERMPDZrikz: case VPERMPDZrm: case VPERMPDZrmb: case VPERMPDZrmbk: case VPERMPDZrmbkz: case VPERMPDZrmk: case VPERMPDZrmkz: case VPERMPDZrr: case VPERMPDZrrk: case VPERMPDZrrkz: return true; } return false; } bool isVCVTTPH2QQ(unsigned Opcode) { switch (Opcode) { case VCVTTPH2QQZ128rm: case VCVTTPH2QQZ128rmb: case VCVTTPH2QQZ128rmbk: case VCVTTPH2QQZ128rmbkz: case VCVTTPH2QQZ128rmk: case VCVTTPH2QQZ128rmkz: case VCVTTPH2QQZ128rr: case VCVTTPH2QQZ128rrk: case VCVTTPH2QQZ128rrkz: case VCVTTPH2QQZ256rm: case VCVTTPH2QQZ256rmb: case VCVTTPH2QQZ256rmbk: case VCVTTPH2QQZ256rmbkz: case VCVTTPH2QQZ256rmk: case VCVTTPH2QQZ256rmkz: case VCVTTPH2QQZ256rr: case VCVTTPH2QQZ256rrk: case VCVTTPH2QQZ256rrkz: case VCVTTPH2QQZrm: case VCVTTPH2QQZrmb: case VCVTTPH2QQZrmbk: case VCVTTPH2QQZrmbkz: case VCVTTPH2QQZrmk: case VCVTTPH2QQZrmkz: case VCVTTPH2QQZrr: case VCVTTPH2QQZrrb: case VCVTTPH2QQZrrbk: case VCVTTPH2QQZrrbkz: case VCVTTPH2QQZrrk: case VCVTTPH2QQZrrkz: return true; } return false; } bool isPUSHF(unsigned Opcode) { return Opcode == PUSHF16; } bool isPXOR(unsigned Opcode) { switch (Opcode) { case MMX_PXORrm: case MMX_PXORrr: case PXORrm: case PXORrr: return true; } return false; } bool isCMPXCHG(unsigned Opcode) { switch (Opcode) { case CMPXCHG16rm: case CMPXCHG16rr: case CMPXCHG32rm: case CMPXCHG32rr: case CMPXCHG64rm: case CMPXCHG64rr: case CMPXCHG8rm: case CMPXCHG8rr: return true; } return false; } bool isVPERMPS(unsigned Opcode) { switch (Opcode) { case VPERMPSYrm: case VPERMPSYrr: case VPERMPSZ256rm: case VPERMPSZ256rmb: case VPERMPSZ256rmbk: case VPERMPSZ256rmbkz: case VPERMPSZ256rmk: case VPERMPSZ256rmkz: case VPERMPSZ256rr: case VPERMPSZ256rrk: case VPERMPSZ256rrkz: case VPERMPSZrm: case VPERMPSZrmb: case VPERMPSZrmbk: case VPERMPSZrmbkz: case VPERMPSZrmk: case VPERMPSZrmkz: case VPERMPSZrr: case VPERMPSZrrk: case VPERMPSZrrkz: return true; } return false; } bool isVMRESUME(unsigned Opcode) { return Opcode == VMRESUME; } bool isVPSLLD(unsigned Opcode) { switch (Opcode) { case VPSLLDYri: case VPSLLDYrm: case VPSLLDYrr: case VPSLLDZ128mbi: case VPSLLDZ128mbik: case VPSLLDZ128mbikz: case VPSLLDZ128mi: case VPSLLDZ128mik: case VPSLLDZ128mikz: case VPSLLDZ128ri: case VPSLLDZ128rik: case VPSLLDZ128rikz: case VPSLLDZ128rm: case VPSLLDZ128rmk: case VPSLLDZ128rmkz: case VPSLLDZ128rr: case VPSLLDZ128rrk: case VPSLLDZ128rrkz: case VPSLLDZ256mbi: case VPSLLDZ256mbik: case VPSLLDZ256mbikz: case VPSLLDZ256mi: case VPSLLDZ256mik: case VPSLLDZ256mikz: case VPSLLDZ256ri: case VPSLLDZ256rik: case VPSLLDZ256rikz: case VPSLLDZ256rm: case VPSLLDZ256rmk: case VPSLLDZ256rmkz: case VPSLLDZ256rr: case VPSLLDZ256rrk: case VPSLLDZ256rrkz: case VPSLLDZmbi: case VPSLLDZmbik: case VPSLLDZmbikz: case VPSLLDZmi: case VPSLLDZmik: case VPSLLDZmikz: case VPSLLDZri: case VPSLLDZrik: case VPSLLDZrikz: case VPSLLDZrm: case VPSLLDZrmk: case VPSLLDZrmkz: case VPSLLDZrr: case VPSLLDZrrk: case VPSLLDZrrkz: case VPSLLDri: case VPSLLDrm: case VPSLLDrr: return true; } return false; } bool isVPSLLQ(unsigned Opcode) { switch (Opcode) { case VPSLLQYri: case VPSLLQYrm: case VPSLLQYrr: case VPSLLQZ128mbi: case VPSLLQZ128mbik: case VPSLLQZ128mbikz: case VPSLLQZ128mi: case VPSLLQZ128mik: case VPSLLQZ128mikz: case VPSLLQZ128ri: case VPSLLQZ128rik: case VPSLLQZ128rikz: case VPSLLQZ128rm: case VPSLLQZ128rmk: case VPSLLQZ128rmkz: case VPSLLQZ128rr: case VPSLLQZ128rrk: case VPSLLQZ128rrkz: case VPSLLQZ256mbi: case VPSLLQZ256mbik: case VPSLLQZ256mbikz: case VPSLLQZ256mi: case VPSLLQZ256mik: case VPSLLQZ256mikz: case VPSLLQZ256ri: case VPSLLQZ256rik: case VPSLLQZ256rikz: case VPSLLQZ256rm: case VPSLLQZ256rmk: case VPSLLQZ256rmkz: case VPSLLQZ256rr: case VPSLLQZ256rrk: case VPSLLQZ256rrkz: case VPSLLQZmbi: case VPSLLQZmbik: case VPSLLQZmbikz: case VPSLLQZmi: case VPSLLQZmik: case VPSLLQZmikz: case VPSLLQZri: case VPSLLQZrik: case VPSLLQZrikz: case VPSLLQZrm: case VPSLLQZrmk: case VPSLLQZrmkz: case VPSLLQZrr: case VPSLLQZrrk: case VPSLLQZrrkz: case VPSLLQri: case VPSLLQrm: case VPSLLQrr: return true; } return false; } bool isVEXTRACTF32X4(unsigned Opcode) { switch (Opcode) { case VEXTRACTF32x4Z256mr: case VEXTRACTF32x4Z256mrk: case VEXTRACTF32x4Z256rr: case VEXTRACTF32x4Z256rrk: case VEXTRACTF32x4Z256rrkz: case VEXTRACTF32x4Zmr: case VEXTRACTF32x4Zmrk: case VEXTRACTF32x4Zrr: case VEXTRACTF32x4Zrrk: case VEXTRACTF32x4Zrrkz: return true; } return false; } bool isVPSLLW(unsigned Opcode) { switch (Opcode) { case VPSLLWYri: case VPSLLWYrm: case VPSLLWYrr: case VPSLLWZ128mi: case VPSLLWZ128mik: case VPSLLWZ128mikz: case VPSLLWZ128ri: case VPSLLWZ128rik: case VPSLLWZ128rikz: case VPSLLWZ128rm: case VPSLLWZ128rmk: case VPSLLWZ128rmkz: case VPSLLWZ128rr: case VPSLLWZ128rrk: case VPSLLWZ128rrkz: case VPSLLWZ256mi: case VPSLLWZ256mik: case VPSLLWZ256mikz: case VPSLLWZ256ri: case VPSLLWZ256rik: case VPSLLWZ256rikz: case VPSLLWZ256rm: case VPSLLWZ256rmk: case VPSLLWZ256rmkz: case VPSLLWZ256rr: case VPSLLWZ256rrk: case VPSLLWZ256rrkz: case VPSLLWZmi: case VPSLLWZmik: case VPSLLWZmikz: case VPSLLWZri: case VPSLLWZrik: case VPSLLWZrikz: case VPSLLWZrm: case VPSLLWZrmk: case VPSLLWZrmkz: case VPSLLWZrr: case VPSLLWZrrk: case VPSLLWZrrkz: case VPSLLWri: case VPSLLWrm: case VPSLLWrr: return true; } return false; } bool isBLSI(unsigned Opcode) { switch (Opcode) { case BLSI32rm: case BLSI32rr: case BLSI64rm: case BLSI64rr: return true; } return false; } bool isVEXTRACTF32X8(unsigned Opcode) { switch (Opcode) { case VEXTRACTF32x8Zmr: case VEXTRACTF32x8Zmrk: case VEXTRACTF32x8Zrr: case VEXTRACTF32x8Zrrk: case VEXTRACTF32x8Zrrkz: return true; } return false; } bool isBLSR(unsigned Opcode) { switch (Opcode) { case BLSR32rm: case BLSR32rr: case BLSR64rm: case BLSR64rr: return true; } return false; } bool isVMULSD(unsigned Opcode) { switch (Opcode) { case VMULSDZrm_Int: case VMULSDZrm_Intk: case VMULSDZrm_Intkz: case VMULSDZrr_Int: case VMULSDZrr_Intk: case VMULSDZrr_Intkz: case VMULSDZrrb_Int: case VMULSDZrrb_Intk: case VMULSDZrrb_Intkz: case VMULSDrm_Int: case VMULSDrr_Int: return true; } return false; } bool isVGETMANTSD(unsigned Opcode) { switch (Opcode) { case VGETMANTSDZrmi: case VGETMANTSDZrmik: case VGETMANTSDZrmikz: case VGETMANTSDZrri: case VGETMANTSDZrrib: case VGETMANTSDZrribk: case VGETMANTSDZrribkz: case VGETMANTSDZrrik: case VGETMANTSDZrrikz: return true; } return false; } bool isVPCMPEQB(unsigned Opcode) { switch (Opcode) { case VPCMPEQBYrm: case VPCMPEQBYrr: case VPCMPEQBZ128rm: case VPCMPEQBZ128rmk: case VPCMPEQBZ128rr: case VPCMPEQBZ128rrk: case VPCMPEQBZ256rm: case VPCMPEQBZ256rmk: case VPCMPEQBZ256rr: case VPCMPEQBZ256rrk: case VPCMPEQBZrm: case VPCMPEQBZrmk: case VPCMPEQBZrr: case VPCMPEQBZrrk: case VPCMPEQBrm: case VPCMPEQBrr: return true; } return false; } bool isVMULSH(unsigned Opcode) { switch (Opcode) { case VMULSHZrm_Int: case VMULSHZrm_Intk: case VMULSHZrm_Intkz: case VMULSHZrr_Int: case VMULSHZrr_Intk: case VMULSHZrr_Intkz: case VMULSHZrrb_Int: case VMULSHZrrb_Intk: case VMULSHZrrb_Intkz: return true; } return false; } bool isVPCMPEQD(unsigned Opcode) { switch (Opcode) { case VPCMPEQDYrm: case VPCMPEQDYrr: case VPCMPEQDZ128rm: case VPCMPEQDZ128rmb: case VPCMPEQDZ128rmbk: case VPCMPEQDZ128rmk: case VPCMPEQDZ128rr: case VPCMPEQDZ128rrk: case VPCMPEQDZ256rm: case VPCMPEQDZ256rmb: case VPCMPEQDZ256rmbk: case VPCMPEQDZ256rmk: case VPCMPEQDZ256rr: case VPCMPEQDZ256rrk: case VPCMPEQDZrm: case VPCMPEQDZrmb: case VPCMPEQDZrmbk: case VPCMPEQDZrmk: case VPCMPEQDZrr: case VPCMPEQDZrrk: case VPCMPEQDrm: case VPCMPEQDrr: return true; } return false; } bool isVGETMANTSH(unsigned Opcode) { switch (Opcode) { case VGETMANTSHZrmi: case VGETMANTSHZrmik: case VGETMANTSHZrmikz: case VGETMANTSHZrri: case VGETMANTSHZrrib: case VGETMANTSHZrribk: case VGETMANTSHZrribkz: case VGETMANTSHZrrik: case VGETMANTSHZrrikz: return true; } return false; } bool isLMSW(unsigned Opcode) { switch (Opcode) { case LMSW16m: case LMSW16r: return true; } return false; } bool isFNSTENV(unsigned Opcode) { return Opcode == FSTENVm; } bool isVMULSS(unsigned Opcode) { switch (Opcode) { case VMULSSZrm_Int: case VMULSSZrm_Intk: case VMULSSZrm_Intkz: case VMULSSZrr_Int: case VMULSSZrr_Intk: case VMULSSZrr_Intkz: case VMULSSZrrb_Int: case VMULSSZrrb_Intk: case VMULSSZrrb_Intkz: case VMULSSrm_Int: case VMULSSrr_Int: return true; } return false; } bool isVGETMANTSS(unsigned Opcode) { switch (Opcode) { case VGETMANTSSZrmi: case VGETMANTSSZrmik: case VGETMANTSSZrmikz: case VGETMANTSSZrri: case VGETMANTSSZrrib: case VGETMANTSSZrribk: case VGETMANTSSZrribkz: case VGETMANTSSZrrik: case VGETMANTSSZrrikz: return true; } return false; } bool isVPCMPEQQ(unsigned Opcode) { switch (Opcode) { case VPCMPEQQYrm: case VPCMPEQQYrr: case VPCMPEQQZ128rm: case VPCMPEQQZ128rmb: case VPCMPEQQZ128rmbk: case VPCMPEQQZ128rmk: case VPCMPEQQZ128rr: case VPCMPEQQZ128rrk: case VPCMPEQQZ256rm: case VPCMPEQQZ256rmb: case VPCMPEQQZ256rmbk: case VPCMPEQQZ256rmk: case VPCMPEQQZ256rr: case VPCMPEQQZ256rrk: case VPCMPEQQZrm: case VPCMPEQQZrmb: case VPCMPEQQZrmbk: case VPCMPEQQZrmk: case VPCMPEQQZrr: case VPCMPEQQZrrk: case VPCMPEQQrm: case VPCMPEQQrr: return true; } return false; } bool isVPCMPEQW(unsigned Opcode) { switch (Opcode) { case VPCMPEQWYrm: case VPCMPEQWYrr: case VPCMPEQWZ128rm: case VPCMPEQWZ128rmk: case VPCMPEQWZ128rr: case VPCMPEQWZ128rrk: case VPCMPEQWZ256rm: case VPCMPEQWZ256rmk: case VPCMPEQWZ256rr: case VPCMPEQWZ256rrk: case VPCMPEQWZrm: case VPCMPEQWZrmk: case VPCMPEQWZrr: case VPCMPEQWZrrk: case VPCMPEQWrm: case VPCMPEQWrr: return true; } return false; } bool isTDPBSSD(unsigned Opcode) { return Opcode == TDPBSSD; } bool isVPHSUBWD(unsigned Opcode) { switch (Opcode) { case VPHSUBWDrm: case VPHSUBWDrr: return true; } return false; } bool isUMWAIT(unsigned Opcode) { return Opcode == UMWAIT; } bool isBSWAP(unsigned Opcode) { switch (Opcode) { case BSWAP16r_BAD: case BSWAP32r: case BSWAP64r: return true; } return false; } bool isVCVTUQQ2PD(unsigned Opcode) { switch (Opcode) { case VCVTUQQ2PDZ128rm: case VCVTUQQ2PDZ128rmb: case VCVTUQQ2PDZ128rmbk: case VCVTUQQ2PDZ128rmbkz: case VCVTUQQ2PDZ128rmk: case VCVTUQQ2PDZ128rmkz: case VCVTUQQ2PDZ128rr: case VCVTUQQ2PDZ128rrk: case VCVTUQQ2PDZ128rrkz: case VCVTUQQ2PDZ256rm: case VCVTUQQ2PDZ256rmb: case VCVTUQQ2PDZ256rmbk: case VCVTUQQ2PDZ256rmbkz: case VCVTUQQ2PDZ256rmk: case VCVTUQQ2PDZ256rmkz: case VCVTUQQ2PDZ256rr: case VCVTUQQ2PDZ256rrk: case VCVTUQQ2PDZ256rrkz: case VCVTUQQ2PDZrm: case VCVTUQQ2PDZrmb: case VCVTUQQ2PDZrmbk: case VCVTUQQ2PDZrmbkz: case VCVTUQQ2PDZrmk: case VCVTUQQ2PDZrmkz: case VCVTUQQ2PDZrr: case VCVTUQQ2PDZrrb: case VCVTUQQ2PDZrrbk: case VCVTUQQ2PDZrrbkz: case VCVTUQQ2PDZrrk: case VCVTUQQ2PDZrrkz: return true; } return false; } bool isPEXT(unsigned Opcode) { switch (Opcode) { case PEXT32rm: case PEXT32rr: case PEXT64rm: case PEXT64rr: return true; } return false; } bool isVCVTUQQ2PH(unsigned Opcode) { switch (Opcode) { case VCVTUQQ2PHZ128rm: case VCVTUQQ2PHZ128rmb: case VCVTUQQ2PHZ128rmbk: case VCVTUQQ2PHZ128rmbkz: case VCVTUQQ2PHZ128rmk: case VCVTUQQ2PHZ128rmkz: case VCVTUQQ2PHZ128rr: case VCVTUQQ2PHZ128rrk: case VCVTUQQ2PHZ128rrkz: case VCVTUQQ2PHZ256rm: case VCVTUQQ2PHZ256rmb: case VCVTUQQ2PHZ256rmbk: case VCVTUQQ2PHZ256rmbkz: case VCVTUQQ2PHZ256rmk: case VCVTUQQ2PHZ256rmkz: case VCVTUQQ2PHZ256rr: case VCVTUQQ2PHZ256rrk: case VCVTUQQ2PHZ256rrkz: case VCVTUQQ2PHZrm: case VCVTUQQ2PHZrmb: case VCVTUQQ2PHZrmbk: case VCVTUQQ2PHZrmbkz: case VCVTUQQ2PHZrmk: case VCVTUQQ2PHZrmkz: case VCVTUQQ2PHZrr: case VCVTUQQ2PHZrrb: case VCVTUQQ2PHZrrbk: case VCVTUQQ2PHZrrbkz: case VCVTUQQ2PHZrrk: case VCVTUQQ2PHZrrkz: return true; } return false; } bool isVMOVMSKPD(unsigned Opcode) { switch (Opcode) { case VMOVMSKPDYrr: case VMOVMSKPDrr: return true; } return false; } bool isLOADIWKEY(unsigned Opcode) { return Opcode == LOADIWKEY; } bool isPMINSB(unsigned Opcode) { switch (Opcode) { case PMINSBrm: case PMINSBrr: return true; } return false; } bool isPMINSD(unsigned Opcode) { switch (Opcode) { case PMINSDrm: case PMINSDrr: return true; } return false; } bool isVCVTUQQ2PS(unsigned Opcode) { switch (Opcode) { case VCVTUQQ2PSZ128rm: case VCVTUQQ2PSZ128rmb: case VCVTUQQ2PSZ128rmbk: case VCVTUQQ2PSZ128rmbkz: case VCVTUQQ2PSZ128rmk: case VCVTUQQ2PSZ128rmkz: case VCVTUQQ2PSZ128rr: case VCVTUQQ2PSZ128rrk: case VCVTUQQ2PSZ128rrkz: case VCVTUQQ2PSZ256rm: case VCVTUQQ2PSZ256rmb: case VCVTUQQ2PSZ256rmbk: case VCVTUQQ2PSZ256rmbkz: case VCVTUQQ2PSZ256rmk: case VCVTUQQ2PSZ256rmkz: case VCVTUQQ2PSZ256rr: case VCVTUQQ2PSZ256rrk: case VCVTUQQ2PSZ256rrkz: case VCVTUQQ2PSZrm: case VCVTUQQ2PSZrmb: case VCVTUQQ2PSZrmbk: case VCVTUQQ2PSZrmbkz: case VCVTUQQ2PSZrmk: case VCVTUQQ2PSZrmkz: case VCVTUQQ2PSZrr: case VCVTUQQ2PSZrrb: case VCVTUQQ2PSZrrbk: case VCVTUQQ2PSZrrbkz: case VCVTUQQ2PSZrrk: case VCVTUQQ2PSZrrkz: return true; } return false; } bool isSTMXCSR(unsigned Opcode) { return Opcode == STMXCSR; } bool isCVTPS2PD(unsigned Opcode) { switch (Opcode) { case CVTPS2PDrm: case CVTPS2PDrr: return true; } return false; } bool isVMOVMSKPS(unsigned Opcode) { switch (Opcode) { case VMOVMSKPSYrr: case VMOVMSKPSrr: return true; } return false; } bool isVPROLD(unsigned Opcode) { switch (Opcode) { case VPROLDZ128mbi: case VPROLDZ128mbik: case VPROLDZ128mbikz: case VPROLDZ128mi: case VPROLDZ128mik: case VPROLDZ128mikz: case VPROLDZ128ri: case VPROLDZ128rik: case VPROLDZ128rikz: case VPROLDZ256mbi: case VPROLDZ256mbik: case VPROLDZ256mbikz: case VPROLDZ256mi: case VPROLDZ256mik: case VPROLDZ256mikz: case VPROLDZ256ri: case VPROLDZ256rik: case VPROLDZ256rikz: case VPROLDZmbi: case VPROLDZmbik: case VPROLDZmbikz: case VPROLDZmi: case VPROLDZmik: case VPROLDZmikz: case VPROLDZri: case VPROLDZrik: case VPROLDZrikz: return true; } return false; } bool isFPTAN(unsigned Opcode) { return Opcode == FPTAN; } bool isCVTPS2PI(unsigned Opcode) { switch (Opcode) { case MMX_CVTPS2PIrm: case MMX_CVTPS2PIrr: return true; } return false; } bool isVMXOFF(unsigned Opcode) { return Opcode == VMXOFF; } bool isXRSTOR64(unsigned Opcode) { return Opcode == XRSTOR64; } bool isPMINSW(unsigned Opcode) { switch (Opcode) { case MMX_PMINSWrm: case MMX_PMINSWrr: case PMINSWrm: case PMINSWrr: return true; } return false; } bool isVMOVSD(unsigned Opcode) { switch (Opcode) { case VMOVSDZmr: case VMOVSDZmrk: case VMOVSDZrm: case VMOVSDZrmk: case VMOVSDZrmkz: case VMOVSDZrr: case VMOVSDZrr_REV: case VMOVSDZrrk: case VMOVSDZrrk_REV: case VMOVSDZrrkz: case VMOVSDZrrkz_REV: case VMOVSDmr: case VMOVSDrm: case VMOVSDrr: case VMOVSDrr_REV: return true; } return false; } bool isVPGATHERQD(unsigned Opcode) { switch (Opcode) { case VPGATHERQDYrm: case VPGATHERQDZ128rm: case VPGATHERQDZ256rm: case VPGATHERQDZrm: case VPGATHERQDrm: return true; } return false; } bool isVINSERTF32X4(unsigned Opcode) { switch (Opcode) { case VINSERTF32x4Z256rm: case VINSERTF32x4Z256rmk: case VINSERTF32x4Z256rmkz: case VINSERTF32x4Z256rr: case VINSERTF32x4Z256rrk: case VINSERTF32x4Z256rrkz: case VINSERTF32x4Zrm: case VINSERTF32x4Zrmk: case VINSERTF32x4Zrmkz: case VINSERTF32x4Zrr: case VINSERTF32x4Zrrk: case VINSERTF32x4Zrrkz: return true; } return false; } bool isVMOVSH(unsigned Opcode) { switch (Opcode) { case VMOVSHZmr: case VMOVSHZmrk: case VMOVSHZrm: case VMOVSHZrmk: case VMOVSHZrmkz: case VMOVSHZrr: case VMOVSHZrr_REV: case VMOVSHZrrk: case VMOVSHZrrk_REV: case VMOVSHZrrkz: case VMOVSHZrrkz_REV: return true; } return false; } bool isVPGATHERQQ(unsigned Opcode) { switch (Opcode) { case VPGATHERQQYrm: case VPGATHERQQZ128rm: case VPGATHERQQZ256rm: case VPGATHERQQZrm: case VPGATHERQQrm: return true; } return false; } bool isVPROLQ(unsigned Opcode) { switch (Opcode) { case VPROLQZ128mbi: case VPROLQZ128mbik: case VPROLQZ128mbikz: case VPROLQZ128mi: case VPROLQZ128mik: case VPROLQZ128mikz: case VPROLQZ128ri: case VPROLQZ128rik: case VPROLQZ128rikz: case VPROLQZ256mbi: case VPROLQZ256mbik: case VPROLQZ256mbikz: case VPROLQZ256mi: case VPROLQZ256mik: case VPROLQZ256mikz: case VPROLQZ256ri: case VPROLQZ256rik: case VPROLQZ256rikz: case VPROLQZmbi: case VPROLQZmbik: case VPROLQZmbikz: case VPROLQZmi: case VPROLQZmik: case VPROLQZmikz: case VPROLQZri: case VPROLQZrik: case VPROLQZrikz: return true; } return false; } bool isVINSERTF32X8(unsigned Opcode) { switch (Opcode) { case VINSERTF32x8Zrm: case VINSERTF32x8Zrmk: case VINSERTF32x8Zrmkz: case VINSERTF32x8Zrr: case VINSERTF32x8Zrrk: case VINSERTF32x8Zrrkz: return true; } return false; } bool isXSAVE(unsigned Opcode) { return Opcode == XSAVE; } bool isTDPFP16PS(unsigned Opcode) { return Opcode == TDPFP16PS; } bool isVCVTTPH2UW(unsigned Opcode) { switch (Opcode) { case VCVTTPH2UWZ128rm: case VCVTTPH2UWZ128rmb: case VCVTTPH2UWZ128rmbk: case VCVTTPH2UWZ128rmbkz: case VCVTTPH2UWZ128rmk: case VCVTTPH2UWZ128rmkz: case VCVTTPH2UWZ128rr: case VCVTTPH2UWZ128rrk: case VCVTTPH2UWZ128rrkz: case VCVTTPH2UWZ256rm: case VCVTTPH2UWZ256rmb: case VCVTTPH2UWZ256rmbk: case VCVTTPH2UWZ256rmbkz: case VCVTTPH2UWZ256rmk: case VCVTTPH2UWZ256rmkz: case VCVTTPH2UWZ256rr: case VCVTTPH2UWZ256rrk: case VCVTTPH2UWZ256rrkz: case VCVTTPH2UWZrm: case VCVTTPH2UWZrmb: case VCVTTPH2UWZrmbk: case VCVTTPH2UWZrmbkz: case VCVTTPH2UWZrmk: case VCVTTPH2UWZrmkz: case VCVTTPH2UWZrr: case VCVTTPH2UWZrrb: case VCVTTPH2UWZrrbk: case VCVTTPH2UWZrrbkz: case VCVTTPH2UWZrrk: case VCVTTPH2UWZrrkz: return true; } return false; } bool isVMOVSS(unsigned Opcode) { switch (Opcode) { case VMOVSSZmr: case VMOVSSZmrk: case VMOVSSZrm: case VMOVSSZrmk: case VMOVSSZrmkz: case VMOVSSZrr: case VMOVSSZrr_REV: case VMOVSSZrrk: case VMOVSSZrrk_REV: case VMOVSSZrrkz: case VMOVSSZrrkz_REV: case VMOVSSmr: case VMOVSSrm: case VMOVSSrr: case VMOVSSrr_REV: return true; } return false; } bool isRDTSCP(unsigned Opcode) { return Opcode == RDTSCP; } bool isVPMOVUSQB(unsigned Opcode) { switch (Opcode) { case VPMOVUSQBZ128mr: case VPMOVUSQBZ128mrk: case VPMOVUSQBZ128rr: case VPMOVUSQBZ128rrk: case VPMOVUSQBZ128rrkz: case VPMOVUSQBZ256mr: case VPMOVUSQBZ256mrk: case VPMOVUSQBZ256rr: case VPMOVUSQBZ256rrk: case VPMOVUSQBZ256rrkz: case VPMOVUSQBZmr: case VPMOVUSQBZmrk: case VPMOVUSQBZrr: case VPMOVUSQBZrrk: case VPMOVUSQBZrrkz: return true; } return false; } bool isVPMOVUSQD(unsigned Opcode) { switch (Opcode) { case VPMOVUSQDZ128mr: case VPMOVUSQDZ128mrk: case VPMOVUSQDZ128rr: case VPMOVUSQDZ128rrk: case VPMOVUSQDZ128rrkz: case VPMOVUSQDZ256mr: case VPMOVUSQDZ256mrk: case VPMOVUSQDZ256rr: case VPMOVUSQDZ256rrk: case VPMOVUSQDZ256rrkz: case VPMOVUSQDZmr: case VPMOVUSQDZmrk: case VPMOVUSQDZrr: case VPMOVUSQDZrrk: case VPMOVUSQDZrrkz: return true; } return false; } bool isTDPBSUD(unsigned Opcode) { return Opcode == TDPBSUD; } bool isBLCMSK(unsigned Opcode) { switch (Opcode) { case BLCMSK32rm: case BLCMSK32rr: case BLCMSK64rm: case BLCMSK64rr: return true; } return false; } bool isVPMOVUSQW(unsigned Opcode) { switch (Opcode) { case VPMOVUSQWZ128mr: case VPMOVUSQWZ128mrk: case VPMOVUSQWZ128rr: case VPMOVUSQWZ128rrk: case VPMOVUSQWZ128rrkz: case VPMOVUSQWZ256mr: case VPMOVUSQWZ256mrk: case VPMOVUSQWZ256rr: case VPMOVUSQWZ256rrk: case VPMOVUSQWZ256rrkz: case VPMOVUSQWZmr: case VPMOVUSQWZmrk: case VPMOVUSQWZrr: case VPMOVUSQWZrrk: case VPMOVUSQWZrrkz: return true; } return false; } bool isVPMADCSWD(unsigned Opcode) { switch (Opcode) { case VPMADCSWDrm: case VPMADCSWDrr: return true; } return false; } bool isVGATHERDPD(unsigned Opcode) { switch (Opcode) { case VGATHERDPDYrm: case VGATHERDPDZ128rm: case VGATHERDPDZ256rm: case VGATHERDPDZrm: case VGATHERDPDrm: return true; } return false; } bool isSHLD(unsigned Opcode) { switch (Opcode) { case SHLD16mrCL: case SHLD16mri8: case SHLD16rrCL: case SHLD16rri8: case SHLD32mrCL: case SHLD32mri8: case SHLD32rrCL: case SHLD32rri8: case SHLD64mrCL: case SHLD64mri8: case SHLD64rrCL: case SHLD64rri8: return true; } return false; } bool isPMINUB(unsigned Opcode) { switch (Opcode) { case MMX_PMINUBrm: case MMX_PMINUBrr: case PMINUBrm: case PMINUBrr: return true; } return false; } bool isPMINUD(unsigned Opcode) { switch (Opcode) { case PMINUDrm: case PMINUDrr: return true; } return false; } bool isAESIMC(unsigned Opcode) { switch (Opcode) { case AESIMCrm: case AESIMCrr: return true; } return false; } bool isCVTSD2SI(unsigned Opcode) { switch (Opcode) { case CVTSD2SI64rm_Int: case CVTSD2SI64rr_Int: case CVTSD2SIrm_Int: case CVTSD2SIrr_Int: return true; } return false; } bool isVLDMXCSR(unsigned Opcode) { return Opcode == VLDMXCSR; } bool isVCVTSS2SD(unsigned Opcode) { switch (Opcode) { case VCVTSS2SDZrm_Int: case VCVTSS2SDZrm_Intk: case VCVTSS2SDZrm_Intkz: case VCVTSS2SDZrr_Int: case VCVTSS2SDZrr_Intk: case VCVTSS2SDZrr_Intkz: case VCVTSS2SDZrrb_Int: case VCVTSS2SDZrrb_Intk: case VCVTSS2SDZrrb_Intkz: case VCVTSS2SDrm_Int: case VCVTSS2SDrr_Int: return true; } return false; } bool isVCVTSS2SH(unsigned Opcode) { switch (Opcode) { case VCVTSS2SHZrm_Int: case VCVTSS2SHZrm_Intk: case VCVTSS2SHZrm_Intkz: case VCVTSS2SHZrr_Int: case VCVTSS2SHZrr_Intk: case VCVTSS2SHZrr_Intkz: case VCVTSS2SHZrrb_Int: case VCVTSS2SHZrrb_Intk: case VCVTSS2SHZrrb_Intkz: return true; } return false; } bool isSLDT(unsigned Opcode) { switch (Opcode) { case SLDT16m: case SLDT16r: case SLDT32r: case SLDT64r: return true; } return false; } bool isVCVTSS2SI(unsigned Opcode) { switch (Opcode) { case VCVTSS2SI64Zrm_Int: case VCVTSS2SI64Zrr_Int: case VCVTSS2SI64Zrrb_Int: case VCVTSS2SI64rm_Int: case VCVTSS2SI64rr_Int: case VCVTSS2SIZrm_Int: case VCVTSS2SIZrr_Int: case VCVTSS2SIZrrb_Int: case VCVTSS2SIrm_Int: case VCVTSS2SIrr_Int: return true; } return false; } bool isVGATHERDPS(unsigned Opcode) { switch (Opcode) { case VGATHERDPSYrm: case VGATHERDPSZ128rm: case VGATHERDPSZ256rm: case VGATHERDPSZrm: case VGATHERDPSrm: return true; } return false; } bool isFABS(unsigned Opcode) { return Opcode == ABS_F; } bool isCVTSD2SS(unsigned Opcode) { switch (Opcode) { case CVTSD2SSrm_Int: case CVTSD2SSrr_Int: return true; } return false; } bool isSHLX(unsigned Opcode) { switch (Opcode) { case SHLX32rm: case SHLX32rr: case SHLX64rm: case SHLX64rr: return true; } return false; } bool isMONITORX(unsigned Opcode) { switch (Opcode) { case MONITORX32rrr: case MONITORX64rrr: return true; } return false; } bool isPMINUW(unsigned Opcode) { switch (Opcode) { case PMINUWrm: case PMINUWrr: return true; } return false; } bool isVPMAXSB(unsigned Opcode) { switch (Opcode) { case VPMAXSBYrm: case VPMAXSBYrr: case VPMAXSBZ128rm: case VPMAXSBZ128rmk: case VPMAXSBZ128rmkz: case VPMAXSBZ128rr: case VPMAXSBZ128rrk: case VPMAXSBZ128rrkz: case VPMAXSBZ256rm: case VPMAXSBZ256rmk: case VPMAXSBZ256rmkz: case VPMAXSBZ256rr: case VPMAXSBZ256rrk: case VPMAXSBZ256rrkz: case VPMAXSBZrm: case VPMAXSBZrmk: case VPMAXSBZrmkz: case VPMAXSBZrr: case VPMAXSBZrrk: case VPMAXSBZrrkz: case VPMAXSBrm: case VPMAXSBrr: return true; } return false; } bool isVPMAXSD(unsigned Opcode) { switch (Opcode) { case VPMAXSDYrm: case VPMAXSDYrr: case VPMAXSDZ128rm: case VPMAXSDZ128rmb: case VPMAXSDZ128rmbk: case VPMAXSDZ128rmbkz: case VPMAXSDZ128rmk: case VPMAXSDZ128rmkz: case VPMAXSDZ128rr: case VPMAXSDZ128rrk: case VPMAXSDZ128rrkz: case VPMAXSDZ256rm: case VPMAXSDZ256rmb: case VPMAXSDZ256rmbk: case VPMAXSDZ256rmbkz: case VPMAXSDZ256rmk: case VPMAXSDZ256rmkz: case VPMAXSDZ256rr: case VPMAXSDZ256rrk: case VPMAXSDZ256rrkz: case VPMAXSDZrm: case VPMAXSDZrmb: case VPMAXSDZrmbk: case VPMAXSDZrmbkz: case VPMAXSDZrmk: case VPMAXSDZrmkz: case VPMAXSDZrr: case VPMAXSDZrrk: case VPMAXSDZrrkz: case VPMAXSDrm: case VPMAXSDrr: return true; } return false; } bool isMOVAPD(unsigned Opcode) { switch (Opcode) { case MOVAPDmr: case MOVAPDrm: case MOVAPDrr: case MOVAPDrr_REV: return true; } return false; } bool isENQCMDS(unsigned Opcode) { switch (Opcode) { case ENQCMDS16: case ENQCMDS32: case ENQCMDS64: return true; } return false; } bool isVMOVD(unsigned Opcode) { switch (Opcode) { case VMOVDI2PDIZrm: case VMOVDI2PDIZrr: case VMOVDI2PDIrm: case VMOVDI2PDIrr: case VMOVPDI2DIZmr: case VMOVPDI2DIZrr: case VMOVPDI2DImr: case VMOVPDI2DIrr: return true; } return false; } bool isVPMAXSQ(unsigned Opcode) { switch (Opcode) { case VPMAXSQZ128rm: case VPMAXSQZ128rmb: case VPMAXSQZ128rmbk: case VPMAXSQZ128rmbkz: case VPMAXSQZ128rmk: case VPMAXSQZ128rmkz: case VPMAXSQZ128rr: case VPMAXSQZ128rrk: case VPMAXSQZ128rrkz: case VPMAXSQZ256rm: case VPMAXSQZ256rmb: case VPMAXSQZ256rmbk: case VPMAXSQZ256rmbkz: case VPMAXSQZ256rmk: case VPMAXSQZ256rmkz: case VPMAXSQZ256rr: case VPMAXSQZ256rrk: case VPMAXSQZ256rrkz: case VPMAXSQZrm: case VPMAXSQZrmb: case VPMAXSQZrmbk: case VPMAXSQZrmbkz: case VPMAXSQZrmk: case VPMAXSQZrmkz: case VPMAXSQZrr: case VPMAXSQZrrk: case VPMAXSQZrrkz: return true; } return false; } bool isCVTTSS2SI(unsigned Opcode) { switch (Opcode) { case CVTTSS2SI64rm_Int: case CVTTSS2SI64rr_Int: case CVTTSS2SIrm_Int: case CVTTSS2SIrr_Int: return true; } return false; } bool isVPMAXSW(unsigned Opcode) { switch (Opcode) { case VPMAXSWYrm: case VPMAXSWYrr: case VPMAXSWZ128rm: case VPMAXSWZ128rmk: case VPMAXSWZ128rmkz: case VPMAXSWZ128rr: case VPMAXSWZ128rrk: case VPMAXSWZ128rrkz: case VPMAXSWZ256rm: case VPMAXSWZ256rmk: case VPMAXSWZ256rmkz: case VPMAXSWZ256rr: case VPMAXSWZ256rrk: case VPMAXSWZ256rrkz: case VPMAXSWZrm: case VPMAXSWZrmk: case VPMAXSWZrmkz: case VPMAXSWZrr: case VPMAXSWZrrk: case VPMAXSWZrrkz: case VPMAXSWrm: case VPMAXSWrr: return true; } return false; } bool isMOVAPS(unsigned Opcode) { switch (Opcode) { case MOVAPSmr: case MOVAPSrm: case MOVAPSrr: case MOVAPSrr_REV: return true; } return false; } bool isVPACKUSDW(unsigned Opcode) { switch (Opcode) { case VPACKUSDWYrm: case VPACKUSDWYrr: case VPACKUSDWZ128rm: case VPACKUSDWZ128rmb: case VPACKUSDWZ128rmbk: case VPACKUSDWZ128rmbkz: case VPACKUSDWZ128rmk: case VPACKUSDWZ128rmkz: case VPACKUSDWZ128rr: case VPACKUSDWZ128rrk: case VPACKUSDWZ128rrkz: case VPACKUSDWZ256rm: case VPACKUSDWZ256rmb: case VPACKUSDWZ256rmbk: case VPACKUSDWZ256rmbkz: case VPACKUSDWZ256rmk: case VPACKUSDWZ256rmkz: case VPACKUSDWZ256rr: case VPACKUSDWZ256rrk: case VPACKUSDWZ256rrkz: case VPACKUSDWZrm: case VPACKUSDWZrmb: case VPACKUSDWZrmbk: case VPACKUSDWZrmbkz: case VPACKUSDWZrmk: case VPACKUSDWZrmkz: case VPACKUSDWZrr: case VPACKUSDWZrrk: case VPACKUSDWZrrkz: case VPACKUSDWrm: case VPACKUSDWrr: return true; } return false; } bool isVFIXUPIMMPD(unsigned Opcode) { switch (Opcode) { case VFIXUPIMMPDZ128rmbi: case VFIXUPIMMPDZ128rmbik: case VFIXUPIMMPDZ128rmbikz: case VFIXUPIMMPDZ128rmi: case VFIXUPIMMPDZ128rmik: case VFIXUPIMMPDZ128rmikz: case VFIXUPIMMPDZ128rri: case VFIXUPIMMPDZ128rrik: case VFIXUPIMMPDZ128rrikz: case VFIXUPIMMPDZ256rmbi: case VFIXUPIMMPDZ256rmbik: case VFIXUPIMMPDZ256rmbikz: case VFIXUPIMMPDZ256rmi: case VFIXUPIMMPDZ256rmik: case VFIXUPIMMPDZ256rmikz: case VFIXUPIMMPDZ256rri: case VFIXUPIMMPDZ256rrik: case VFIXUPIMMPDZ256rrikz: case VFIXUPIMMPDZrmbi: case VFIXUPIMMPDZrmbik: case VFIXUPIMMPDZrmbikz: case VFIXUPIMMPDZrmi: case VFIXUPIMMPDZrmik: case VFIXUPIMMPDZrmikz: case VFIXUPIMMPDZrri: case VFIXUPIMMPDZrrib: case VFIXUPIMMPDZrribk: case VFIXUPIMMPDZrribkz: case VFIXUPIMMPDZrrik: case VFIXUPIMMPDZrrikz: return true; } return false; } bool isVMOVQ(unsigned Opcode) { switch (Opcode) { case VMOV64toPQIZrm: case VMOV64toPQIZrr: case VMOV64toPQIrm: case VMOV64toPQIrr: case VMOVPQI2QIZmr: case VMOVPQI2QIZrr: case VMOVPQI2QImr: case VMOVPQI2QIrr: case VMOVPQIto64Zmr: case VMOVPQIto64Zrr: case VMOVPQIto64mr: case VMOVPQIto64rr: case VMOVQI2PQIZrm: case VMOVQI2PQIrm: case VMOVZPQILo2PQIZrr: case VMOVZPQILo2PQIrr: return true; } return false; } bool isVPSHUFHW(unsigned Opcode) { switch (Opcode) { case VPSHUFHWYmi: case VPSHUFHWYri: case VPSHUFHWZ128mi: case VPSHUFHWZ128mik: case VPSHUFHWZ128mikz: case VPSHUFHWZ128ri: case VPSHUFHWZ128rik: case VPSHUFHWZ128rikz: case VPSHUFHWZ256mi: case VPSHUFHWZ256mik: case VPSHUFHWZ256mikz: case VPSHUFHWZ256ri: case VPSHUFHWZ256rik: case VPSHUFHWZ256rikz: case VPSHUFHWZmi: case VPSHUFHWZmik: case VPSHUFHWZmikz: case VPSHUFHWZri: case VPSHUFHWZrik: case VPSHUFHWZrikz: case VPSHUFHWmi: case VPSHUFHWri: return true; } return false; } bool isPCMPISTRI(unsigned Opcode) { switch (Opcode) { case PCMPISTRIrm: case PCMPISTRIrr: return true; } return false; } bool isVMOVW(unsigned Opcode) { switch (Opcode) { case VMOVSH2Wrr: case VMOVSHtoW64rr: case VMOVW2SHrr: case VMOVW64toSHrr: case VMOVWmr: case VMOVWrm: return true; } return false; } #endif // GET_X86_MNEMONIC_TABLES_CPP } // end namespace X86 } // end namespace llvm