Lines Matching refs:InstX86Base
68 class InstX86Base : public InstTarget {
69 InstX86Base() = delete;
70 InstX86Base(const InstX86Base &) = delete;
71 InstX86Base &operator=(const InstX86Base &) = delete;
219 InstX86Base(Cfg *Func, InstKindX86 Kind, SizeT Maxsrcs, Variable *Dest) in InstX86Base() function
256 class InstX86FakeRMW final : public InstX86Base {
278 return InstX86Base::isClassof(Instr, InstX86Base::FakeRMW); in classof()
287 class InstX86GetIP final : public InstX86Base {
300 return InstX86Base::isClassof(Instr, InstX86Base::GetIP); in classof()
343 class InstX86Label final : public InstX86Base {
370 class InstX86Br final : public InstX86Base {
437 return InstX86Base::isClassof(Instr, InstX86Base::Br); in classof()
454 class InstX86Jmp final : public InstX86Base {
468 return InstX86Base::isClassof(Instr, InstX86Base::Jmp); in classof()
476 class InstX86Call final : public InstX86Base {
491 return InstX86Base::isClassof(Instr, InstX86Base::Call); in classof()
559 template <typename InstX86Base::InstKindX86 K>
560 class InstX86BaseInplaceopGPR : public InstX86Base {
592 return InstX86Base::isClassof(Instr, InstX86Base::K); in classof()
597 : InstX86Base(Func, K, 1, llvm::dyn_cast<Variable>(SrcDest)) { in InstX86BaseInplaceopGPR()
607 template <typename InstX86Base::InstKindX86 K>
608 class InstX86BaseUnaryopGPR : public InstX86Base {
639 constexpr bool IsLea = K == InstX86Base::Lea; in emitIAS()
659 return InstX86Base::isClassof(Instr, InstX86Base::K); in classof()
664 : InstX86Base(Func, K, 1, Dest) { in InstX86BaseUnaryopGPR()
689 template <typename InstX86Base::InstKindX86 K>
690 class InstX86BaseUnaryopXmm : public InstX86Base {
722 return InstX86Base::isClassof(Instr, InstX86Base::K); in classof()
727 : InstX86Base(Func, K, 1, Dest) { in InstX86BaseUnaryopXmm()
735 template <typename InstX86Base::InstKindX86 K>
736 class InstX86BaseBinopGPRShift : public InstX86Base {
764 return InstX86Base::isClassof(Instr, InstX86Base::K); in classof()
769 : InstX86Base(Func, K, 2, Dest) { in InstX86BaseBinopGPRShift()
778 template <typename InstX86Base::InstKindX86 K>
779 class InstX86BaseBinopGPR : public InstX86Base {
795 constexpr bool ThisIsLEA = K == InstX86Base::Lea; in emitIAS()
809 return InstX86Base::isClassof(Instr, InstX86Base::K); in classof()
814 : InstX86Base(Func, K, 2, Dest) { in InstX86BaseBinopGPR()
823 template <typename InstX86Base::InstKindX86 K>
824 class InstX86BaseBinopRMW : public InstX86Base {
850 return InstX86Base::isClassof(Instr, InstX86Base::K); in classof()
855 : InstX86Base(Func, K, 2, nullptr) { in InstX86BaseBinopRMW()
864 template <typename InstX86Base::InstKindX86 K, bool NeedsElementType,
865 typename InstX86Base::SseSuffix Suffix>
866 class InstX86BaseBinopXmm : public InstX86Base {
883 case InstX86Base::SseSuffix::None: in emit()
885 case InstX86Base::SseSuffix::Packed: in emit()
888 case InstX86Base::SseSuffix::Unpack: in emit()
891 case InstX86Base::SseSuffix::Scalar: in emit()
894 case InstX86Base::SseSuffix::Integral: in emit()
897 case InstX86Base::SseSuffix::Pack: in emit()
920 return InstX86Base::isClassof(Instr, InstX86Base::K); in classof()
926 : InstX86Base(Func, K, 2, Dest),
937 template <typename InstX86Base::InstKindX86 K, bool AllowAllTypes = false>
938 class InstX86BaseBinopXmmShift : public InstX86Base {
974 return InstX86Base::isClassof(Instr, InstX86Base::K); in classof()
979 : InstX86Base(Func, K, 2, Dest) { in InstX86BaseBinopXmmShift()
988 template <typename InstX86Base::InstKindX86 K>
989 class InstX86BaseTernop : public InstX86Base {
1018 return InstX86Base::isClassof(Instr, InstX86Base::K); in classof()
1024 : InstX86Base(Func, K, 3, Dest) { in InstX86BaseTernop()
1034 template <typename InstX86Base::InstKindX86 K>
1035 class InstX86BaseThreeAddressop : public InstX86Base {
1065 return InstX86Base::isClassof(Instr, InstX86Base::K); in classof()
1071 : InstX86Base(Func, K, 2, Dest) { in InstX86BaseThreeAddressop()
1080 template <typename InstX86Base::InstKindX86 K>
1081 class InstX86BaseMovlike : public InstX86Base {
1122 return InstX86Base::isClassof(Instr, InstX86Base::K); in classof()
1127 : InstX86Base(Func, K, 1, Dest) { in InstX86BaseMovlike()
1139 class InstX86Bswap : public InstX86BaseInplaceopGPR<InstX86Base::Bswap> {
1147 : InstX86BaseInplaceopGPR<InstX86Base::Bswap>(Func, SrcDest) {} in InstX86Bswap()
1150 class InstX86Neg : public InstX86BaseInplaceopGPR<InstX86Base::Neg> {
1158 : InstX86BaseInplaceopGPR<InstX86Base::Neg>(Func, SrcDest) {} in InstX86Neg()
1161 class InstX86Bsf : public InstX86BaseUnaryopGPR<InstX86Base::Bsf> {
1169 : InstX86BaseUnaryopGPR<InstX86Base::Bsf>(Func, Dest, Src) {} in InstX86Bsf()
1172 class InstX86Bsr : public InstX86BaseUnaryopGPR<InstX86Base::Bsr> {
1180 : InstX86BaseUnaryopGPR<InstX86Base::Bsr>(Func, Dest, Src) {} in InstX86Bsr()
1183 class InstX86Lea : public InstX86BaseUnaryopGPR<InstX86Base::Lea> {
1193 : InstX86BaseUnaryopGPR<InstX86Base::Lea>(Func, Dest, Src) {} in InstX86Lea()
1197 class InstX86Cbwdq : public InstX86BaseUnaryopGPR<InstX86Base::Cbwdq> {
1208 : InstX86BaseUnaryopGPR<InstX86Base::Cbwdq>(Func, Dest, Src) {} in InstX86Cbwdq()
1211 class InstX86Movsx : public InstX86BaseUnaryopGPR<InstX86Base::Movsx> {
1223 : InstX86BaseUnaryopGPR<InstX86Base::Movsx>(Func, Dest, Src) {} in InstX86Movsx()
1226 class InstX86Movzx : public InstX86BaseUnaryopGPR<InstX86Base::Movzx> {
1244 : InstX86BaseUnaryopGPR<InstX86Base::Movzx>(Func, Dest, Src) {} in InstX86Movzx()
1249 class InstX86Movd : public InstX86BaseUnaryopXmm<InstX86Base::Movd> {
1261 : InstX86BaseUnaryopXmm<InstX86Base::Movd>(Func, Dest, Src) {} in InstX86Movd()
1264 class InstX86Movmsk final : public InstX86Base {
1278 return InstX86Base::isClassof(Instr, InstX86Base::InstX86Movmsk); in classof()
1285 class InstX86Sqrt : public InstX86BaseUnaryopXmm<InstX86Base::Sqrt> {
1295 : InstX86BaseUnaryopXmm<InstX86Base::Sqrt>(Func, Dest, Src) {} in InstX86Sqrt()
1299 class InstX86Mov : public InstX86BaseMovlike<InstX86Base::Mov> {
1313 : InstX86BaseMovlike<InstX86Base::Mov>(Func, Dest, Source) {} in InstX86Mov()
1318 class InstX86Movp : public InstX86BaseMovlike<InstX86Base::Movp> {
1330 : InstX86BaseMovlike<InstX86Base::Movp>(Func, Dest, Source) {} in InstX86Movp()
1334 class InstX86Movq : public InstX86BaseMovlike<InstX86Base::Movq> {
1346 : InstX86BaseMovlike<InstX86Base::Movq>(Func, Dest, Source) {} in InstX86Movq()
1349 class InstX86Add : public InstX86BaseBinopGPR<InstX86Base::Add> {
1357 : InstX86BaseBinopGPR<InstX86Base::Add>(Func, Dest, Source) {} in InstX86Add()
1360 class InstX86AddRMW : public InstX86BaseBinopRMW<InstX86Base::AddRMW> {
1370 : InstX86BaseBinopRMW<InstX86Base::AddRMW>(Func, DestSrc0, Src1) {} in InstX86AddRMW()
1374 : public InstX86BaseBinopXmm<InstX86Base::Addps, true,
1375 InstX86Base::SseSuffix::Packed> {
1384 : InstX86BaseBinopXmm<InstX86Base::Addps, true, in InstX86Addps()
1385 InstX86Base::SseSuffix::Packed>(Func, Dest, in InstX86Addps()
1389 class InstX86Adc : public InstX86BaseBinopGPR<InstX86Base::Adc> {
1397 : InstX86BaseBinopGPR<InstX86Base::Adc>(Func, Dest, Source) {} in InstX86Adc()
1400 class InstX86AdcRMW : public InstX86BaseBinopRMW<InstX86Base::AdcRMW> {
1410 : InstX86BaseBinopRMW<InstX86Base::AdcRMW>(Func, DestSrc0, Src1) {} in InstX86AdcRMW()
1414 : public InstX86BaseBinopXmm<InstX86Base::Addss, false,
1415 InstX86Base::SseSuffix::Scalar> {
1424 : InstX86BaseBinopXmm<InstX86Base::Addss, false, in InstX86Addss()
1425 InstX86Base::SseSuffix::Scalar>(Func, Dest, in InstX86Addss()
1430 : public InstX86BaseBinopXmm<InstX86Base::Padd, true,
1431 InstX86Base::SseSuffix::Integral> {
1440 : InstX86BaseBinopXmm<InstX86Base::Padd, true, in InstX86Padd()
1441 InstX86Base::SseSuffix::Integral>(Func, Dest, in InstX86Padd()
1446 : public InstX86BaseBinopXmm<InstX86Base::Padds, true,
1447 InstX86Base::SseSuffix::Integral> {
1456 : InstX86BaseBinopXmm<InstX86Base::Padds, true, in InstX86Padds()
1457 InstX86Base::SseSuffix::Integral>(Func, Dest, in InstX86Padds()
1462 : public InstX86BaseBinopXmm<InstX86Base::Paddus, true,
1463 InstX86Base::SseSuffix::Integral> {
1472 : InstX86BaseBinopXmm<InstX86Base::Paddus, true, in InstX86Paddus()
1473 InstX86Base::SseSuffix::Integral>(Func, Dest, in InstX86Paddus()
1477 class InstX86Sub : public InstX86BaseBinopGPR<InstX86Base::Sub> {
1485 : InstX86BaseBinopGPR<InstX86Base::Sub>(Func, Dest, Source) {} in InstX86Sub()
1488 class InstX86SubRMW : public InstX86BaseBinopRMW<InstX86Base::SubRMW> {
1498 : InstX86BaseBinopRMW<InstX86Base::SubRMW>(Func, DestSrc0, Src1) {} in InstX86SubRMW()
1502 : public InstX86BaseBinopXmm<InstX86Base::Subps, true,
1503 InstX86Base::SseSuffix::Packed> {
1512 : InstX86BaseBinopXmm<InstX86Base::Subps, true, in InstX86Subps()
1513 InstX86Base::SseSuffix::Packed>(Func, Dest, in InstX86Subps()
1518 : public InstX86BaseBinopXmm<InstX86Base::Subss, false,
1519 InstX86Base::SseSuffix::Scalar> {
1528 : InstX86BaseBinopXmm<InstX86Base::Subss, false, in InstX86Subss()
1529 InstX86Base::SseSuffix::Scalar>(Func, Dest, in InstX86Subss()
1533 class InstX86Sbb : public InstX86BaseBinopGPR<InstX86Base::Sbb> {
1541 : InstX86BaseBinopGPR<InstX86Base::Sbb>(Func, Dest, Source) {} in InstX86Sbb()
1544 class InstX86SbbRMW : public InstX86BaseBinopRMW<InstX86Base::SbbRMW> {
1554 : InstX86BaseBinopRMW<InstX86Base::SbbRMW>(Func, DestSrc0, Src1) {} in InstX86SbbRMW()
1558 : public InstX86BaseBinopXmm<InstX86Base::Psub, true,
1559 InstX86Base::SseSuffix::Integral> {
1568 : InstX86BaseBinopXmm<InstX86Base::Psub, true, in InstX86Psub()
1569 InstX86Base::SseSuffix::Integral>(Func, Dest, in InstX86Psub()
1574 : public InstX86BaseBinopXmm<InstX86Base::Psubs, true,
1575 InstX86Base::SseSuffix::Integral> {
1584 : InstX86BaseBinopXmm<InstX86Base::Psubs, true, in InstX86Psubs()
1585 InstX86Base::SseSuffix::Integral>(Func, Dest, in InstX86Psubs()
1590 : public InstX86BaseBinopXmm<InstX86Base::Psubus, true,
1591 InstX86Base::SseSuffix::Integral> {
1600 : InstX86BaseBinopXmm<InstX86Base::Psubus, true, in InstX86Psubus()
1601 InstX86Base::SseSuffix::Integral>(Func, Dest, in InstX86Psubus()
1605 class InstX86And : public InstX86BaseBinopGPR<InstX86Base::And> {
1613 : InstX86BaseBinopGPR<InstX86Base::And>(Func, Dest, Source) {} in InstX86And()
1617 : public InstX86BaseBinopXmm<InstX86Base::Andnps, true,
1618 InstX86Base::SseSuffix::Packed> {
1627 : InstX86BaseBinopXmm<InstX86Base::Andnps, true, in InstX86Andnps()
1628 InstX86Base::SseSuffix::Packed>(Func, Dest, in InstX86Andnps()
1633 : public InstX86BaseBinopXmm<InstX86Base::Andps, true,
1634 InstX86Base::SseSuffix::Packed> {
1643 : InstX86BaseBinopXmm<InstX86Base::Andps, true, in InstX86Andps()
1644 InstX86Base::SseSuffix::Packed>(Func, Dest, in InstX86Andps()
1648 class InstX86AndRMW : public InstX86BaseBinopRMW<InstX86Base::AndRMW> {
1658 : InstX86BaseBinopRMW<InstX86Base::AndRMW>(Func, DestSrc0, Src1) {} in InstX86AndRMW()
1661 class InstX86Pand : public InstX86BaseBinopXmm<InstX86Base::Pand, false,
1662 InstX86Base::SseSuffix::None> {
1671 : InstX86BaseBinopXmm<InstX86Base::Pand, false, in InstX86Pand()
1672 InstX86Base::SseSuffix::None>(Func, Dest, in InstX86Pand()
1677 : public InstX86BaseBinopXmm<InstX86Base::Pandn, false,
1678 InstX86Base::SseSuffix::None> {
1687 : InstX86BaseBinopXmm<InstX86Base::Pandn, false, in InstX86Pandn()
1688 InstX86Base::SseSuffix::None>(Func, Dest, in InstX86Pandn()
1693 : public InstX86BaseBinopXmm<InstX86Base::Maxss, true,
1694 InstX86Base::SseSuffix::Scalar> {
1703 : InstX86BaseBinopXmm<InstX86Base::Maxss, true, in InstX86Maxss()
1704 InstX86Base::SseSuffix::Scalar>(Func, Dest, in InstX86Maxss()
1709 : public InstX86BaseBinopXmm<InstX86Base::Minss, true,
1710 InstX86Base::SseSuffix::Scalar> {
1719 : InstX86BaseBinopXmm<InstX86Base::Minss, true, in InstX86Minss()
1720 InstX86Base::SseSuffix::Scalar>(Func, Dest, in InstX86Minss()
1725 : public InstX86BaseBinopXmm<InstX86Base::Maxps, true,
1726 InstX86Base::SseSuffix::None> {
1735 : InstX86BaseBinopXmm<InstX86Base::Maxps, true, in InstX86Maxps()
1736 InstX86Base::SseSuffix::None>(Func, Dest, in InstX86Maxps()
1741 : public InstX86BaseBinopXmm<InstX86Base::Minps, true,
1742 InstX86Base::SseSuffix::None> {
1751 : InstX86BaseBinopXmm<InstX86Base::Minps, true, in InstX86Minps()
1752 InstX86Base::SseSuffix::None>(Func, Dest, in InstX86Minps()
1756 class InstX86Or : public InstX86BaseBinopGPR<InstX86Base::Or> {
1764 : InstX86BaseBinopGPR<InstX86Base::Or>(Func, Dest, Source) {} in InstX86Or()
1768 : public InstX86BaseBinopXmm<InstX86Base::Orps, true,
1769 InstX86Base::SseSuffix::Packed> {
1778 : InstX86BaseBinopXmm<InstX86Base::Orps, true, in InstX86Orps()
1779 InstX86Base::SseSuffix::Packed>(Func, Dest, in InstX86Orps()
1783 class InstX86OrRMW : public InstX86BaseBinopRMW<InstX86Base::OrRMW> {
1793 : InstX86BaseBinopRMW<InstX86Base::OrRMW>(Func, DestSrc0, Src1) {} in InstX86OrRMW()
1796 class InstX86Por : public InstX86BaseBinopXmm<InstX86Base::Por, false,
1797 InstX86Base::SseSuffix::None> {
1805 : InstX86BaseBinopXmm<InstX86Base::Por, false, in InstX86Por()
1806 InstX86Base::SseSuffix::None>(Func, Dest, in InstX86Por()
1810 class InstX86Xor : public InstX86BaseBinopGPR<InstX86Base::Xor> {
1818 : InstX86BaseBinopGPR<InstX86Base::Xor>(Func, Dest, Source) {} in InstX86Xor()
1822 : public InstX86BaseBinopXmm<InstX86Base::Xorps, true,
1823 InstX86Base::SseSuffix::Packed> {
1832 : InstX86BaseBinopXmm<InstX86Base::Xorps, true, in InstX86Xorps()
1833 InstX86Base::SseSuffix::Packed>(Func, Dest, in InstX86Xorps()
1837 class InstX86XorRMW : public InstX86BaseBinopRMW<InstX86Base::XorRMW> {
1847 : InstX86BaseBinopRMW<InstX86Base::XorRMW>(Func, DestSrc0, Src1) {} in InstX86XorRMW()
1850 class InstX86Pxor : public InstX86BaseBinopXmm<InstX86Base::Pxor, false,
1851 InstX86Base::SseSuffix::None> {
1860 : InstX86BaseBinopXmm<InstX86Base::Pxor, false, in InstX86Pxor()
1861 InstX86Base::SseSuffix::None>(Func, Dest, in InstX86Pxor()
1865 class InstX86Imul : public InstX86BaseBinopGPR<InstX86Base::Imul> {
1877 : InstX86BaseBinopGPR<InstX86Base::Imul>(Func, Dest, Source) {} in InstX86Imul()
1881 : public InstX86BaseThreeAddressop<InstX86Base::ImulImm> {
1895 : InstX86BaseThreeAddressop<InstX86Base::ImulImm>(Func, Dest, Source0, in InstX86ImulImm()
1900 : public InstX86BaseBinopXmm<InstX86Base::Mulps, true,
1901 InstX86Base::SseSuffix::Packed> {
1910 : InstX86BaseBinopXmm<InstX86Base::Mulps, true, in InstX86Mulps()
1911 InstX86Base::SseSuffix::Packed>(Func, Dest, in InstX86Mulps()
1916 : public InstX86BaseBinopXmm<InstX86Base::Mulss, false,
1917 InstX86Base::SseSuffix::Scalar> {
1926 : InstX86BaseBinopXmm<InstX86Base::Mulss, false, in InstX86Mulss()
1927 InstX86Base::SseSuffix::Scalar>(Func, Dest, in InstX86Mulss()
1932 : public InstX86BaseBinopXmm<InstX86Base::Pmull, true,
1933 InstX86Base::SseSuffix::Integral> {
1938 auto *Target = InstX86Base::getTarget(Func); in create()
1952 : InstX86BaseBinopXmm<InstX86Base::Pmull, true, in InstX86Pmull()
1953 InstX86Base::SseSuffix::Integral>(Func, Dest, in InstX86Pmull()
1958 : public InstX86BaseBinopXmm<InstX86Base::Pmulhw, false,
1959 InstX86Base::SseSuffix::None> {
1970 : InstX86BaseBinopXmm<InstX86Base::Pmulhw, false, in InstX86Pmulhw()
1971 InstX86Base::SseSuffix::None>(Func, Dest, in InstX86Pmulhw()
1976 : public InstX86BaseBinopXmm<InstX86Base::Pmulhuw, false,
1977 InstX86Base::SseSuffix::None> {
1988 : InstX86BaseBinopXmm<InstX86Base::Pmulhuw, false, in InstX86Pmulhuw()
1989 InstX86Base::SseSuffix::None>(Func, Dest, in InstX86Pmulhuw()
1994 : public InstX86BaseBinopXmm<InstX86Base::Pmaddwd, false,
1995 InstX86Base::SseSuffix::None> {
2006 : InstX86BaseBinopXmm<InstX86Base::Pmaddwd, false, in InstX86Pmaddwd()
2007 InstX86Base::SseSuffix::None>(Func, Dest, in InstX86Pmaddwd()
2012 : public InstX86BaseBinopXmm<InstX86Base::Pmuludq, false,
2013 InstX86Base::SseSuffix::None> {
2024 : InstX86BaseBinopXmm<InstX86Base::Pmuludq, false, in InstX86Pmuludq()
2025 InstX86Base::SseSuffix::None>(Func, Dest, in InstX86Pmuludq()
2030 : public InstX86BaseBinopXmm<InstX86Base::Divps, true,
2031 InstX86Base::SseSuffix::Packed> {
2040 : InstX86BaseBinopXmm<InstX86Base::Divps, true, in InstX86Divps()
2041 InstX86Base::SseSuffix::Packed>(Func, Dest, in InstX86Divps()
2046 : public InstX86BaseBinopXmm<InstX86Base::Divss, false,
2047 InstX86Base::SseSuffix::Scalar> {
2056 : InstX86BaseBinopXmm<InstX86Base::Divss, false, in InstX86Divss()
2057 InstX86Base::SseSuffix::Scalar>(Func, Dest, in InstX86Divss()
2061 class InstX86Rol : public InstX86BaseBinopGPRShift<InstX86Base::Rol> {
2069 : InstX86BaseBinopGPRShift<InstX86Base::Rol>(Func, Dest, Source) {} in InstX86Rol()
2072 class InstX86Shl : public InstX86BaseBinopGPRShift<InstX86Base::Shl> {
2080 : InstX86BaseBinopGPRShift<InstX86Base::Shl>(Func, Dest, Source) {} in InstX86Shl()
2083 class InstX86Psll : public InstX86BaseBinopXmmShift<InstX86Base::Psll> {
2095 : InstX86BaseBinopXmmShift<InstX86Base::Psll>(Func, Dest, Source) {} in InstX86Psll()
2098 class InstX86Psrl : public InstX86BaseBinopXmmShift<InstX86Base::Psrl, true> {
2107 : InstX86BaseBinopXmmShift<InstX86Base::Psrl, true>(Func, Dest, in InstX86Psrl()
2111 class InstX86Shr : public InstX86BaseBinopGPRShift<InstX86Base::Shr> {
2119 : InstX86BaseBinopGPRShift<InstX86Base::Shr>(Func, Dest, Source) {} in InstX86Shr()
2122 class InstX86Sar : public InstX86BaseBinopGPRShift<InstX86Base::Sar> {
2130 : InstX86BaseBinopGPRShift<InstX86Base::Sar>(Func, Dest, Source) {} in InstX86Sar()
2133 class InstX86Psra : public InstX86BaseBinopXmmShift<InstX86Base::Psra> {
2145 : InstX86BaseBinopXmmShift<InstX86Base::Psra>(Func, Dest, Source) {} in InstX86Psra()
2149 : public InstX86BaseBinopXmm<InstX86Base::Pcmpeq, true,
2150 InstX86Base::SseSuffix::Integral> {
2159 InstX86Base::getTarget(Func)->getInstructionSet() >=
2168 : InstX86BaseBinopXmm<InstX86Base::Pcmpeq, true, in InstX86Pcmpeq()
2169 InstX86Base::SseSuffix::Integral>( in InstX86Pcmpeq()
2174 : public InstX86BaseBinopXmm<InstX86Base::Pcmpgt, true,
2175 InstX86Base::SseSuffix::Integral> {
2179 InstX86Base::getTarget(Func)->getInstructionSet() >= in create()
2187 : InstX86BaseBinopXmm<InstX86Base::Pcmpgt, true, in InstX86Pcmpgt()
2188 InstX86Base::SseSuffix::Integral>(Func, Dest, in InstX86Pcmpgt()
2199 : public InstX86BaseBinopXmm<InstX86Base::MovssRegs, false,
2200 InstX86Base::SseSuffix::None> {
2212 : InstX86BaseBinopXmm<InstX86Base::MovssRegs, false, in InstX86MovssRegs()
2213 InstX86Base::SseSuffix::None>(Func, Dest, in InstX86MovssRegs()
2217 class InstX86Idiv : public InstX86BaseTernop<InstX86Base::Idiv> {
2230 : InstX86BaseTernop<InstX86Base::Idiv>(Func, Dest, Source1, Source2) {} in InstX86Idiv()
2233 class InstX86Div : public InstX86BaseTernop<InstX86Base::Div> {
2246 : InstX86BaseTernop<InstX86Base::Div>(Func, Dest, Source1, Source2) {} in InstX86Div()
2249 class InstX86Insertps : public InstX86BaseTernop<InstX86Base::Insertps> {
2262 : InstX86BaseTernop<InstX86Base::Insertps>(Func, Dest, Source1, in InstX86Insertps()
2266 class InstX86Pinsr : public InstX86BaseTernop<InstX86Base::Pinsr> {
2273 InstX86Base::getTarget(Func)->getInstructionSet() >= Traits::SSE4_1); in create()
2283 : InstX86BaseTernop<InstX86Base::Pinsr>(Func, Dest, Source1, Source2) {} in InstX86Pinsr()
2286 class InstX86Shufps : public InstX86BaseTernop<InstX86Base::Shufps> {
2298 : InstX86BaseTernop<InstX86Base::Shufps>(Func, Dest, Source1, Source2) { in InstX86Shufps()
2302 class InstX86Blendvps : public InstX86BaseTernop<InstX86Base::Blendvps> {
2306 assert(InstX86Base::getTarget(Func)->getInstructionSet() >= in create()
2318 : InstX86BaseTernop<InstX86Base::Blendvps>(Func, Dest, Source1, in InstX86Blendvps()
2322 class InstX86Pblendvb : public InstX86BaseTernop<InstX86Base::Pblendvb> {
2326 assert(InstX86Base::getTarget(Func)->getInstructionSet() >= in create()
2338 : InstX86BaseTernop<InstX86Base::Pblendvb>(Func, Dest, Source1, in InstX86Pblendvb()
2342 class InstX86Pextr : public InstX86BaseThreeAddressop<InstX86Base::Pextr> {
2348 InstX86Base::getTarget(Func)->getInstructionSet() >= in create()
2359 : InstX86BaseThreeAddressop<InstX86Base::Pextr>(Func, Dest, Source0, in InstX86Pextr()
2363 class InstX86Pshufd : public InstX86BaseThreeAddressop<InstX86Base::Pshufd> {
2375 : InstX86BaseThreeAddressop<InstX86Base::Pshufd>(Func, Dest, Source0, in InstX86Pshufd()
2380 class InstX86BaseLockable : public InstX86Base {
2388 InstX86BaseLockable(Cfg *Func, typename InstX86Base::InstKindX86 Kind, in InstX86BaseLockable()
2390 : InstX86Base(Func, Kind, Maxsrcs, Dest), Locked(Locked) { in InstX86BaseLockable()
2398 class InstX86Mul final : public InstX86Base {
2413 return InstX86Base::isClassof(Instr, InstX86Base::Mul); in classof()
2421 class InstX86Shld final : public InstX86Base {
2436 return InstX86Base::isClassof(Instr, InstX86Base::Shld); in classof()
2444 class InstX86Shrd final : public InstX86Base {
2459 return InstX86Base::isClassof(Instr, InstX86Base::Shrd); in classof()
2467 class InstX86Cmov final : public InstX86Base {
2482 return InstX86Base::isClassof(Instr, InstX86Base::Cmov); in classof()
2492 class InstX86Cmpps final : public InstX86Base {
2507 return InstX86Base::isClassof(Instr, InstX86Base::Cmpps); in classof()
2536 return InstX86Base::isClassof(Instr, InstX86Base::Cmpxchg); in classof()
2565 return InstX86Base::isClassof(Instr, InstX86Base::Cmpxchg8b); in classof()
2577 class InstX86Cvt final : public InstX86Base {
2593 return InstX86Base::isClassof(Instr, InstX86Base::Cvt); in classof()
2604 : public InstX86BaseThreeAddressop<InstX86Base::Round> {
2617 : InstX86BaseThreeAddressop<InstX86Base::Round>(Func, Dest, Source, in InstX86Round()
2622 class InstX86Icmp final : public InstX86Base {
2635 return InstX86Base::isClassof(Instr, InstX86Base::Icmp); in classof()
2643 class InstX86Ucomiss final : public InstX86Base {
2657 return InstX86Base::isClassof(Instr, InstX86Base::Ucomiss); in classof()
2665 class InstX86UD2 final : public InstX86Base {
2678 return InstX86Base::isClassof(Instr, InstX86Base::UD2); in classof()
2686 class InstX86Int3 final : public InstX86Base {
2699 return InstX86Base::isClassof(Instr, InstX86Base::Int3); in classof()
2707 class InstX86Test final : public InstX86Base {
2721 return InstX86Base::isClassof(Instr, InstX86Base::Test); in classof()
2729 class InstX86Mfence final : public InstX86Base {
2742 return InstX86Base::isClassof(Instr, InstX86Base::Mfence); in classof()
2752 class InstX86Store final : public InstX86Base {
2766 return InstX86Base::isClassof(Instr, InstX86Base::Store); in classof()
2777 class InstX86StoreP final : public InstX86Base {
2792 return InstX86Base::isClassof(Instr, InstX86Base::StoreP); in classof()
2799 class InstX86StoreQ final : public InstX86Base {
2814 return InstX86Base::isClassof(Instr, InstX86Base::StoreQ); in classof()
2821 class InstX86StoreD final : public InstX86Base {
2836 return InstX86Base::isClassof(Instr, InstX86Base::StoreQ); in classof()
2844 class InstX86Nop final : public InstX86Base {
2860 return InstX86Base::isClassof(Instr, InstX86Base::Nop); in classof()
2870 class InstX86Fld final : public InstX86Base {
2883 return InstX86Base::isClassof(Instr, InstX86Base::Fld); in classof()
2891 class InstX86Fstp final : public InstX86Base {
2904 return InstX86Base::isClassof(Instr, InstX86Base::Fstp); in classof()
2911 class InstX86Pop final : public InstX86Base {
2924 return InstX86Base::isClassof(Instr, InstX86Base::Pop); in classof()
2931 class InstX86Push final : public InstX86Base {
2947 return InstX86Base::isClassof(Instr, InstX86Base::Push); in classof()
2961 class InstX86Ret final : public InstX86Base {
2974 return InstX86Base::isClassof(Instr, InstX86Base::Ret); in classof()
2982 class InstX86Setcc final : public InstX86Base {
2996 return InstX86Base::isClassof(Instr, InstX86Base::Setcc); in classof()
3027 return InstX86Base::isClassof(Instr, InstX86Base::Xadd); in classof()
3039 class InstX86Xchg final : public InstX86Base {
3053 return InstX86Base::isClassof(Instr, InstX86Base::Xchg); in classof()
3062 class InstX86IacaStart final : public InstX86Base {
3075 return InstX86Base::isClassof(Instr, InstX86Base::IacaStart); in classof()
3084 class InstX86IacaEnd final : public InstX86Base {
3097 return InstX86Base::isClassof(Instr, InstX86Base::IacaEnd); in classof()
3105 : public InstX86BaseBinopXmm<InstX86Base::Pshufb, false,
3106 InstX86Base::SseSuffix::None> {
3115 : InstX86BaseBinopXmm<InstX86Base::Pshufb, false, in InstX86Pshufb()
3116 InstX86Base::SseSuffix::None>(Func, Dest, in InstX86Pshufb()
3121 : public InstX86BaseBinopXmm<InstX86Base::Punpckl, false,
3122 InstX86Base::SseSuffix::Unpack> {
3131 : InstX86BaseBinopXmm<InstX86Base::Punpckl, false, in InstX86Punpckl()
3132 InstX86Base::SseSuffix::Unpack>(Func, Dest, in InstX86Punpckl()
3137 : public InstX86BaseBinopXmm<InstX86Base::Punpckh, false,
3138 InstX86Base::SseSuffix::Unpack> {
3147 : InstX86BaseBinopXmm<InstX86Base::Punpckh, false, in InstX86Punpckh()
3148 InstX86Base::SseSuffix::Unpack>(Func, Dest, in InstX86Punpckh()
3153 : public InstX86BaseBinopXmm<InstX86Base::Packss, false,
3154 InstX86Base::SseSuffix::Pack> {
3163 : InstX86BaseBinopXmm<InstX86Base::Packss, false, in InstX86Packss()
3164 InstX86Base::SseSuffix::Pack>(Func, Dest, in InstX86Packss()
3169 : public InstX86BaseBinopXmm<InstX86Base::Packus, false,
3170 InstX86Base::SseSuffix::Pack> {
3179 : InstX86BaseBinopXmm<InstX86Base::Packus, false, in InstX86Packus()
3180 InstX86Base::SseSuffix::Pack>(Func, Dest, in InstX86Packus()