Lines Matching full:opc2
3156 UInt imm1, UInt imm2, UInt opc2 )
3164 vassert(opc2 < 0x08);
3168 (opc2<<2) | ((imm1 >> 5)<<1));
3173 UInt r3, UInt opc2, UInt b0 )
3180 vassert(opc2 < 0x400);
3183 (r3<<11) | (opc2<<1) | (b0));
3188 UInt r3, UInt b10, UInt opc2, UInt b0 )
3196 vassert(opc2 < 0x200);
3199 (r3<<11) | (b10 << 10) | (opc2<<1) | (b0));
3204 UInt f3, UInt opc2, UInt b0 )
3211 vassert(opc2 < 0x400);
3214 (f3<<11) | (opc2<<1) | (b0));
3219 static UChar* mkFormXFX ( UChar* p, UInt r1, UInt f2, UInt opc2 )
3224 vassert(opc2 < 0x400);
3225 switch (opc2) {
3239 theInstr = ((31<<26) | (r1<<21) | (f2<<11) | (opc2<<1));
3254 UInt imm, UInt opc2, UInt b0 )
3261 vassert(opc2 < 0x400);
3264 ((imm & 0x1F)<<11) | (opc2<<2) | ((imm>>5)<<1) | (b0));
3315 UInt r3, UInt r4, UInt opc2, UInt b0 )
3323 vassert(opc2 < 0x20);
3326 (r4<<6) | (opc2<<1) | (b0));
3331 UInt constant, UInt opc2, UInt b0 )
3338 vassert(opc2 < 0x200); /* 9 bit field */
3341 (constant<<10) | (opc2<<1) | (b0));
3346 UInt r3, UInt rmc, UInt opc2, UInt b0 )
3354 vassert(opc2 < 0x100);
3357 (r3<<11) | (rmc<<9) | (opc2<<1) | (b0));
3381 static UChar* doAMode_RR ( UChar* p, UInt opc1, UInt opc2,
3390 p = mkFormX(p, opc1, rSD, rA, rB, opc2, 0);
3671 UInt r3, UInt opc2 )
3678 vassert(opc2 < 0x800);
3679 theInstr = ((opc1<<26) | (r1<<21) | (r2<<16) | (r3<<11) | opc2);
3684 UInt r3, UInt Rc, UInt opc2 )
3692 vassert(opc2 < 0x400);
3694 (r3<<11) | (Rc<<10) | opc2);
3699 UInt r3, UInt r4, UInt opc2 )
3707 vassert(opc2 < 0x40);
3709 (r3<<11) | (r4<<6) | opc2);
4354 UInt opc1, opc2, sz = i->Pin.Load.sz;
4372 case 1: opc2 = 87; break;
4373 case 2: opc2 = 279; break;
4374 case 4: opc2 = 23; break;
4375 case 8: opc2 = 21; vassert(mode64); break;
4378 p = doAMode_RR(p, 31, opc2, r_dst, am_addr, mode64);
4444 UInt opc1, opc2, sz = i->Pin.Store.sz;
4464 case 1: opc2 = 215; break;
4465 case 2: opc2 = 407; break;
4466 case 4: opc2 = 151; break;
4468 opc2 = 149; break;
4472 p = doAMode_RR(p, 31, opc2, r_src, am_addr, mode64);
4735 UInt opc2, v_reg, r_idx, r_base;
4753 opc2 = (sz==1) ? 7 : (sz==2) ? 39 : (sz==4) ? 71 : 103;
4754 p = mkFormX(p, 31, v_reg, r_idx, r_base, opc2, 0);
4756 opc2 = (sz==1) ? 135 : (sz==2) ? 167 : (sz==4) ? 199 : 231;
4757 p = mkFormX(p, 31, v_reg, r_idx, r_base, opc2, 0);
4765 UInt opc2;
4767 case Pav_MOV: opc2 = 1156; break; // vor vD,vS,vS
4768 case Pav_NOT: opc2 = 1284; break; // vnor vD,vS,vS
4769 case Pav_UNPCKH8S: opc2 = 526; break; // vupkhsb
4770 case Pav_UNPCKH16S: opc2 = 590; break; // vupkhsh
4771 case Pav_UNPCKL8S: opc2 = 654; break; // vupklsb
4772 case Pav_UNPCKL16S: opc2 = 718; break; // vupklsh
4773 case Pav_UNPCKHPIX: opc2 = 846; break; // vupkhpx
4774 case Pav_UNPCKLPIX: opc2 = 974; break; // vupklpx
4776 case Pav_ZEROCNTBYTE: opc2 = 1794; break; // vclzb
4777 case Pav_ZEROCNTHALF: opc2 = 1858; break; // vclzh
4778 case Pav_ZEROCNTWORD: opc2 = 1922; break; // vclzw
4779 case Pav_ZEROCNTDBL: opc2 = 1986; break; // vclzd
4780 case Pav_BITMTXXPOSE: opc2 = 1292; break; // vgbbd
4787 p = mkFormVX( p, 4, v_dst, v_src, v_src, opc2 );
4790 p = mkFormVX( p, 4, v_dst, 0, v_src, opc2 );
4800 UInt opc2;
4813 case Pav_AND: opc2 = 1028; break; // vand
4814 case Pav_OR: opc2 = 1156; break; // vor
4815 case Pav_XOR: opc2 = 1220; break; // vxor
4819 p = mkFormVX( p, 4, v_dst, v_srcL, v_srcR, opc2 );
4827 UInt opc2;
4830 case Pav_ADDU: opc2 = 0; break; // vaddubm
4831 case Pav_QADDU: opc2 = 512; break; // vaddubs
4832 case Pav_QADDS: opc2 = 768; break; // vaddsbs
4834 case Pav_SUBU: opc2 = 1024; break; // vsububm
4835 case Pav_QSUBU: opc2 = 1536; break; // vsububs
4836 case Pav_QSUBS: opc2 = 1792; break; // vsubsbs
4838 case Pav_OMULU: opc2 = 8; break; // vmuloub
4839 case Pav_OMULS: opc2 = 264; break; // vmulosb
4840 case Pav_EMULU: opc2 = 520; break; // vmuleub
4841 case Pav_EMULS: opc2 = 776; break; // vmulesb
4843 case Pav_AVGU: opc2 = 1026; break; // vavgub
4844 case Pav_AVGS: opc2 = 1282; break; // vavgsb
4845 case Pav_MAXU: opc2 = 2; break; // vmaxub
4846 case Pav_MAXS: opc2 = 258; break; // vmaxsb
4847 case Pav_MINU: opc2 = 514; break; // vminub
4848 case Pav_MINS: opc2 = 770; break; // vminsb
4850 case Pav_CMPEQU: opc2 = 6; break; // vcmpequb
4851 case Pav_CMPGTU: opc2 = 518; break; // vcmpgtub
4852 case Pav_CMPGTS: opc2 = 774; break; // vcmpgtsb
4854 case Pav_SHL: opc2 = 260; break; // vslb
4855 case Pav_SHR: opc2 = 516; break; // vsrb
4856 case Pav_SAR: opc2 = 772; break; // vsrab
4857 case Pav_ROTL: opc2
4859 case Pav_MRGHI: opc2 = 12; break; // vmrghb
4860 case Pav_MRGLO: opc2 = 268; break; // vmrglb
4862 case Pav_POLYMULADD: opc2 = 1032; break; // vpmsumb
4867 p = mkFormVX( p, 4, v_dst, v_srcL, v_srcR, opc2 );
4875 UInt opc2;
4878 case Pav_ADDU: opc2 = 64; break; // vadduhm
4879 case Pav_QADDU: opc2 = 576; break; // vadduhs
4880 case Pav_QADDS: opc2 = 832; break; // vaddshs
4882 case Pav_SUBU: opc2 = 1088; break; // vsubuhm
4883 case Pav_QSUBU: opc2 = 1600; break; // vsubuhs
4884 case Pav_QSUBS: opc2 = 1856; break; // vsubshs
4886 case Pav_OMULU: opc2 = 72; break; // vmulouh
4887 case Pav_OMULS: opc2 = 328; break; // vmulosh
4888 case Pav_EMULU: opc2 = 584; break; // vmuleuh
4889 case Pav_EMULS: opc2 = 840; break; // vmulesh
4891 case Pav_AVGU: opc2 = 1090; break; // vavguh
4892 case Pav_AVGS: opc2 = 1346; break; // vavgsh
4893 case Pav_MAXU: opc2 = 66; break; // vmaxuh
4894 case Pav_MAXS: opc2 = 322; break; // vmaxsh
4895 case Pav_MINS: opc2 = 834; break; // vminsh
4896 case Pav_MINU: opc2 = 578; break; // vminuh
4898 case Pav_CMPEQU: opc2 = 70; break; // vcmpequh
4899 case Pav_CMPGTU: opc2 = 582; break; // vcmpgtuh
4900 case Pav_CMPGTS: opc2 = 838; break; // vcmpgtsh
4902 case Pav_SHL: opc2 = 324; break; // vslh
4903 case Pav_SHR: opc2 = 580; break; // vsrh
4904 case Pav_SAR: opc2 = 836; break; // vsrah
4905 case Pav_ROTL: opc2 = 68; break; // vrlh
4907 case Pav_PACKUU: opc2 = 14; break; // vpkuhum
4908 case Pav_QPACKUU: opc2 = 142; break; // vpkuhus
4909 case Pav_QPACKSU: opc2 = 270; break; // vpkshus
4910 case Pav_QPACKSS: opc2 = 398; break; // vpkshss
4911 case Pav_PACKPXL: opc2 = 782; break; // vpkpx
4913 case Pav_MRGHI: opc2 = 76; break; // vmrghh
4914 case Pav_MRGLO: opc2 = 332; break; // vmrglh
4916 case Pav_POLYMULADD: opc2 = 1224; break; // vpmsumh
4921 p = mkFormVX( p, 4, v_dst, v_srcL, v_srcR, opc2 );
4929 UInt opc2;
4932 case Pav_ADDU: opc2 = 128; break; // vadduwm
4933 case Pav_QADDU: opc2 = 640; break; // vadduws
4934 case Pav_QADDS: opc2 = 896; break; // vaddsws
4936 case Pav_SUBU: opc2 = 1152; break; // vsubuwm
4937 case Pav_QSUBU: opc2 = 1664; break; // vsubuws
4938 case Pav_QSUBS: opc2 = 1920; break; // vsubsws
4940 case Pav_MULU: opc2 = 137; break; // vmuluwm
4941 case Pav_OMULU: opc2 = 136; break; // vmulouw
4942 case Pav_OMULS: opc2 = 392; break; // vmulosw
4943 case Pav_EMULU: opc2 = 648; break; // vmuleuw
4944 case Pav_EMULS: opc2 = 904; break; // vmulesw
4946 case Pav_AVGU: opc2 = 1154; break; // vavguw
4947 case Pav_AVGS: opc2 = 1410; break; // vavgsw
4949 case Pav_MAXU: opc2 = 130; break; // vmaxuw
4950 case Pav_MAXS: opc2 = 386; break; // vmaxsw
4952 case Pav_MINS: opc2 = 898; break; // vminsw
4953 case Pav_MINU: opc2 = 642; break; // vminuw
4955 case Pav_CMPEQU: opc2 = 134; break; // vcmpequw
4956 case Pav_CMPGTS: opc2 = 902; break; // vcmpgtsw
4957 case Pav_CMPGTU: opc2 = 646; break; // vcmpgtuw
4959 case Pav_SHL: opc2 = 388; break; // vslw
4960 case Pav_SHR: opc2 = 644; break; // vsrw
4961 case Pav_SAR: opc2 = 900; break; // vsraw
4962 case Pav_ROTL: opc2 = 132; break; // vrlw
4964 case Pav_PACKUU: opc2 = 78; break; // vpkuwum
4965 case Pav_QPACKUU: opc2 = 206; break; // vpkuwus
4966 case Pav_QPACKSU: opc2 = 334; break; // vpkswus
4967 case Pav_QPACKSS: opc2 = 462; break; // vpkswss
4969 case Pav_MRGHI: opc2 = 140; break; // vmrghw
4970 case Pav_MRGLO: opc2 = 396; break; // vmrglw
4972 case Pav_CATODD: opc2 = 1676; break; // vmrgow
4973 case Pav_CATEVEN: opc2 = 1932; break; // vmrgew
4975 case Pav_POLYMULADD: opc2 = 1160; break; // vpmsumw
4980 p = mkFormVX( p, 4, v_dst, v_srcL, v_srcR, opc2 );
4988 UInt opc2;
4990 case Pav_ADDU: opc2 = 192; break; // vaddudm vector double add
4991 case Pav_SUBU: opc2 = 1216; break; // vsubudm vector double add
4992 case Pav_MAXU: opc2 = 194; break; // vmaxud vector double max
4993 case Pav_MAXS: opc2 = 450; break; // vmaxsd vector double max
4994 case Pav_MINU: opc2 = 706; break; // vminud vector double min
4995 case Pav_MINS: opc2 = 962; break; // vminsd vector double min
4996 case Pav_CMPEQU: opc2 = 199; break; // vcmpequd vector double compare
4997 case Pav_CMPGTU: opc2 = 711; break; // vcmpgtud vector double compare
4998 case Pav_CMPGTS: opc2 = 967; break; // vcmpgtsd vector double compare
4999 case Pav_SHL: opc2 = 1476; break; // vsld
5000 case Pav_SHR: opc2 = 1732; break; // vsrd
5001 case Pav_SAR: opc2 = 964; break; // vsrad
5002 case Pav_ROTL: opc2 = 196; break; // vrld
5003 case Pav_PACKUU: opc2 = 1102; break; // vpkudum
5004 case Pav_QPACKUU: opc2 = 1230; break; // vpkudus, vpksdus (emulated)
5005 case Pav_QPACKSS: opc2 = 1486; break; // vpksdsm
5006 case Pav_MRGHI: opc2 = 1614; break; // vmrghw
5007 case Pav_MRGLO: opc2 = 1742; break; // vmrglw
5008 case Pav_POLYMULADD: opc2 = 1096; break; // vpmsumd
5012 p = mkFormVX( p, 4, v_dst, v_srcL, v_srcR, opc2 );
5018 UInt opc2;
5020 case Pav_CIPHERSUBV128: opc2 = 1480; break; // vsbox
5024 p = mkFormVX( p, 4, v_dst, v_src, 0, opc2 );
5031 UInt opc2;
5033 case Pav_CIPHERV128: opc2 = 1288; break; // vcipher
5034 case Pav_CIPHERLV128: opc2 = 1289; break; // vcipherlast
5035 case Pav_NCIPHERV128: opc2 = 1352; break; // vncipher
5036 case Pav_NCIPHERLV128: opc2 = 1353; break; // vncipherlast
5040 p = mkFormVX( p, 4, v_dst, v_srcL, v_srcR, opc2 );
5047 UInt opc2;
5049 case Pav_SHA256: opc2 = 1666; break; // vshasigmaw
5050 case Pav_SHA512: opc2 = 1730; break; // vshasigmad
5054 p = mkFormVX( p, 4, v_dst, v_src, s_field->Pri.Imm, opc2 );
5062 UInt opc2;
5064 case Pav_BCDAdd: opc2 = 1; break; // bcdadd
5065 case Pav_BCDSub: opc2 = 65; break; // bcdsub
5070 0x1, (ps->Pri.Imm << 9) | opc2 );
5132 UInt opc2;
5134 case Pavfp_RCPF: opc2 = 266; break; // vrefp
5135 case Pavfp_RSQRTF: opc2 = 330; break; // vrsqrtefp
5136 case Pavfp_CVTU2F: opc2 = 778; break; // vcfux
5137 case Pavfp_CVTS2F: opc2 = 842; break; // vcfsx
5138 case Pavfp_QCVTF2U: opc2 = 906; break; // vctuxs
5139 case Pavfp_QCVTF2S: opc2 = 970; break; // vctsxs
5140 case Pavfp_ROUNDM: opc2 = 714; break; // vrfim
5141 case Pavfp_ROUNDP: opc2 = 650; break; // vrfip
5142 case Pavfp_ROUNDN: opc2 = 522; break; // vrfin
5143 case Pavfp_ROUNDZ: opc2 = 586; break; // vrfiz
5147 p = mkFormVX( p, 4, v_dst, 0, v_src, opc2 );
5182 UInt v_src, opc2;
5187 opc2 = (sz == 8) ? 780 : (sz == 16) ? 844 : 908; // 8,16,32
5192 p = mkFormVX( p, 4, v_dst, (UInt)simm5, 0, opc2 );
5196 opc2 = (sz == 8) ? 524 : (sz == 16) ? 588 : 652; // 8,16,32
5200 p = mkFormVX( p, 4, v_dst, lowest_lane, v_src, opc2 );