Lines Matching refs:imm8
9005 UInt imm8, Bool all_lanes, Int sz ) in findSSECmpOp() argument
9007 if (imm8 >= 32) return False; in findSSECmpOp()
9018 switch (imm8) { in findSSECmpOp()
9127 UInt imm8; in dis_SSE_cmp_E_to_G() local
9137 imm8 = getUChar(delta+1); in dis_SSE_cmp_E_to_G()
9138 if (imm8 >= 8) return delta0; /* FAIL */ in dis_SSE_cmp_E_to_G()
9139 Bool ok = findSSECmpOp(&preSwap, &op, &postNot, imm8, all_lanes, sz); in dis_SSE_cmp_E_to_G()
9146 (Int)imm8, in dis_SSE_cmp_E_to_G()
9151 imm8 = getUChar(delta+alen); in dis_SSE_cmp_E_to_G()
9152 if (imm8 >= 8) return delta0; /* FAIL */ in dis_SSE_cmp_E_to_G()
9153 Bool ok = findSSECmpOp(&preSwap, &op, &postNot, imm8, all_lanes, sz); in dis_SSE_cmp_E_to_G()
9170 (Int)imm8, in dis_SSE_cmp_E_to_G()
9726 static IRTemp math_PALIGNR_XMM ( IRTemp sV, IRTemp dV, UInt imm8 ) in math_PALIGNR_XMM() argument
9741 if (imm8 == 0) { in math_PALIGNR_XMM()
9745 else if (imm8 >= 1 && imm8 <= 7) { in math_PALIGNR_XMM()
9746 assign( rHi, dis_PALIGNR_XMM_helper(dLo, sHi, imm8) ); in math_PALIGNR_XMM()
9747 assign( rLo, dis_PALIGNR_XMM_helper(sHi, sLo, imm8) ); in math_PALIGNR_XMM()
9749 else if (imm8 == 8) { in math_PALIGNR_XMM()
9753 else if (imm8 >= 9 && imm8 <= 15) { in math_PALIGNR_XMM()
9754 assign( rHi, dis_PALIGNR_XMM_helper(dHi, dLo, imm8-8) ); in math_PALIGNR_XMM()
9755 assign( rLo, dis_PALIGNR_XMM_helper(dLo, sHi, imm8-8) ); in math_PALIGNR_XMM()
9757 else if (imm8 == 16) { in math_PALIGNR_XMM()
9761 else if (imm8 >= 17 && imm8 <= 23) { in math_PALIGNR_XMM()
9762 assign( rHi, binop(Iop_Shr64, mkexpr(dHi), mkU8(8*(imm8-16))) ); in math_PALIGNR_XMM()
9763 assign( rLo, dis_PALIGNR_XMM_helper(dHi, dLo, imm8-16) ); in math_PALIGNR_XMM()
9765 else if (imm8 == 24) { in math_PALIGNR_XMM()
9769 else if (imm8 >= 25 && imm8 <= 31) { in math_PALIGNR_XMM()
9771 assign( rLo, binop(Iop_Shr64, mkexpr(dHi), mkU8(8*(imm8-24))) ); in math_PALIGNR_XMM()
9773 else if (imm8 >= 32 && imm8 <= 255) { in math_PALIGNR_XMM()
10866 static IRTemp math_SHUFPS_128 ( IRTemp sV, IRTemp dV, UInt imm8 ) in math_SHUFPS_128() argument
10870 vassert(imm8 < 256); in math_SHUFPS_128()
10879 mkV128from32s( SELS((imm8>>6)&3), SELS((imm8>>4)&3), in math_SHUFPS_128()
10880 SELD((imm8>>2)&3), SELD((imm8>>0)&3) ) ); in math_SHUFPS_128()
10890 static IRTemp math_SHUFPS_256 ( IRTemp sV, IRTemp dV, UInt imm8 ) in math_SHUFPS_256() argument
10896 IRTemp rVhi = math_SHUFPS_128(sVhi, dVhi, imm8); in math_SHUFPS_256()
10897 IRTemp rVlo = math_SHUFPS_128(sVlo, dVlo, imm8); in math_SHUFPS_256()
10904 static IRTemp math_SHUFPD_128 ( IRTemp sV, IRTemp dV, UInt imm8 ) in math_SHUFPD_128() argument
10921 SELS((imm8>>1)&1), SELD((imm8>>0)&1) ) ); in math_SHUFPD_128()
10929 static IRTemp math_SHUFPD_256 ( IRTemp sV, IRTemp dV, UInt imm8 ) in math_SHUFPD_256() argument
10935 IRTemp rVhi = math_SHUFPD_128(sVhi, dVhi, (imm8 >> 2) & 3); in math_SHUFPD_256()
10936 IRTemp rVlo = math_SHUFPD_128(sVlo, dVlo, imm8 & 3); in math_SHUFPD_256()
10943 static IRTemp math_BLENDPD_128 ( IRTemp sV, IRTemp dV, UInt imm8 ) in math_BLENDPD_128() argument
10948 switch( imm8 & 3 ) { in math_BLENDPD_128()
10967 static IRTemp math_BLENDPD_256 ( IRTemp sV, IRTemp dV, UInt imm8 ) in math_BLENDPD_256() argument
10973 IRTemp rVhi = math_BLENDPD_128(sVhi, dVhi, (imm8 >> 2) & 3); in math_BLENDPD_256()
10974 IRTemp rVlo = math_BLENDPD_128(sVlo, dVlo, imm8 & 3); in math_BLENDPD_256()
10981 static IRTemp math_BLENDPS_128 ( IRTemp sV, IRTemp dV, UInt imm8 ) in math_BLENDPS_128() argument
10988 assign( imm8_mask, mkV128( imm8_perms[ (imm8 & 15) ] ) ); in math_BLENDPS_128()
11000 static IRTemp math_BLENDPS_256 ( IRTemp sV, IRTemp dV, UInt imm8 ) in math_BLENDPS_256() argument
11006 IRTemp rVhi = math_BLENDPS_128(sVhi, dVhi, (imm8 >> 4) & 15); in math_BLENDPS_256()
11007 IRTemp rVlo = math_BLENDPS_128(sVlo, dVlo, imm8 & 15); in math_BLENDPS_256()
11014 static IRTemp math_PBLENDW_128 ( IRTemp sV, IRTemp dV, UInt imm8 ) in math_PBLENDW_128() argument
11021 if (imm8 & (1 << i)) in math_PBLENDW_128()
11232 UInt imm8; in dis_PSHUFxW_128() local
11243 imm8 = (UInt)getUChar(delta+1); in dis_PSHUFxW_128()
11247 imm8, nameXMMReg(rE), nameXMMReg(rG)); in dis_PSHUFxW_128()
11251 imm8 = (UInt)getUChar(delta+alen); in dis_PSHUFxW_128()
11255 imm8, dis_buf, nameXMMReg(rG)); in dis_PSHUFxW_128()
11266 assign(dVmut, mk64from16s( SEL((imm8>>6)&3), SEL((imm8>>4)&3), in dis_PSHUFxW_128()
11267 SEL((imm8>>2)&3), SEL((imm8>>0)&3) )); in dis_PSHUFxW_128()
11287 UInt imm8; in dis_PSHUFxW_256() local
11297 imm8 = (UInt)getUChar(delta+1); in dis_PSHUFxW_256()
11300 imm8, nameYMMReg(rE), nameYMMReg(rG)); in dis_PSHUFxW_256()
11304 imm8 = (UInt)getUChar(delta+alen); in dis_PSHUFxW_256()
11307 imm8, dis_buf, nameYMMReg(rG)); in dis_PSHUFxW_256()
11314 assign( dVhi, mk64from16s( s[4 + ((imm8>>6)&3)], s[4 + ((imm8>>4)&3)], in dis_PSHUFxW_256()
11315 s[4 + ((imm8>>2)&3)], s[4 + ((imm8>>0)&3)] ) ); in dis_PSHUFxW_256()
11316 assign( dVlo, mk64from16s( s[0 + ((imm8>>6)&3)], s[0 + ((imm8>>4)&3)], in dis_PSHUFxW_256()
11317 s[0 + ((imm8>>2)&3)], s[0 + ((imm8>>0)&3)] ) ); in dis_PSHUFxW_256()
11334 UInt imm8; in dis_PEXTRW_128_EregOnly_toG() local
11339 imm8 = getUChar(delta+1) & 7; in dis_PEXTRW_128_EregOnly_toG()
11342 (Int)imm8, nameXMMReg(rE), nameIReg32(rG)); in dis_PEXTRW_128_EregOnly_toG()
11349 switch (imm8) { in dis_PEXTRW_128_EregOnly_toG()
11487 static IRTemp math_PINSRW_128 ( IRTemp v128, IRTemp u16, UInt imm8 ) in math_PINSRW_128() argument
11489 vassert(imm8 >= 0 && imm8 <= 7); in math_PINSRW_128()
11497 mkU8(16 * (imm8 & 3)))); in math_PINSRW_128()
11498 if (imm8 < 4) { in math_PINSRW_128()
11504 UShort mask = ~(3 << (imm8 * 2)); in math_PINSRW_128()
13889 Int imm8 = 0; in dis_ESC_0F__SSE2() local
13898 imm8 = (Int)getUChar(delta+1); in dis_ESC_0F__SSE2()
13900 DIP("shufps $%d,%s,%s\n", imm8, nameXMMReg(rE), nameXMMReg(rG)); in dis_ESC_0F__SSE2()
13904 imm8 = (Int)getUChar(delta+alen); in dis_ESC_0F__SSE2()
13906 DIP("shufps $%d,%s,%s\n", imm8, dis_buf, nameXMMReg(rG)); in dis_ESC_0F__SSE2()
13908 IRTemp res = math_SHUFPS_128( sV, dV, imm8 ); in dis_ESC_0F__SSE2()
18284 static IRTemp math_PINSRB_128 ( IRTemp v128, IRTemp u8, UInt imm8 ) in math_PINSRB_128() argument
18286 vassert(imm8 >= 0 && imm8 <= 15); in math_PINSRB_128()
18294 mkU8(8 * (imm8 & 7)))); in math_PINSRB_128()
18295 if (imm8 < 8) { in math_PINSRB_128()
18301 UShort mask = ~(1 << imm8); in math_PINSRB_128()
18310 static IRTemp math_PINSRD_128 ( IRTemp v128, IRTemp u32, UInt imm8 ) in math_PINSRD_128() argument
18319 switch (imm8) { in math_PINSRD_128()
18343 static IRTemp math_PINSRQ_128 ( IRTemp v128, IRTemp u64, UInt imm8 ) in math_PINSRQ_128() argument
18349 if (imm8 == 0) { in math_PINSRQ_128()
18353 vassert(imm8 == 1); in math_PINSRQ_128()
18366 static IRTemp math_INSERTPS ( IRTemp dstV, IRTemp toInsertD, UInt imm8 ) in math_INSERTPS() argument
18372 vassert(imm8 <= 255); in math_INSERTPS()
18373 dstDs[(imm8 >> 4) & 3] = toInsertD; /* "imm8_count_d" */ in math_INSERTPS()
18375 UInt imm8_zmask = (imm8 & 15); in math_INSERTPS()
18400 Int imm8; in dis_PEXTRB_128_GtoE() local
18406 imm8 = (Int)getUChar(delta+1); in dis_PEXTRB_128_GtoE()
18409 imm8 = (Int)getUChar(delta+alen); in dis_PEXTRB_128_GtoE()
18411 switch ( (imm8 >> 2) & 3 ) { in dis_PEXTRB_128_GtoE()
18419 binop( Iop_Shr32, mkexpr(sel_lane), mkU8(((imm8 & 3)*8)) ) ); in dis_PEXTRB_128_GtoE()
18426 DIP( "%spextrb $%d, %s,%s\n", mbV, imm8, in dis_PEXTRB_128_GtoE()
18433 imm8, nameXMMReg( gregOfRexRM(pfx, modrm) ), dis_buf ); in dis_PEXTRB_128_GtoE()
18440 static IRTemp math_DPPD_128 ( IRTemp src_vec, IRTemp dst_vec, UInt imm8 ) in math_DPPD_128() argument
18442 vassert(imm8 < 256); in math_DPPD_128()
18452 mkV128( imm8_perms[ ((imm8 >> 4) & 3) ] ) ) ); in math_DPPD_128()
18463 mkV128( imm8_perms[ (imm8 & 3) ] ) ) ); in math_DPPD_128()
18468 static IRTemp math_DPPS_128 ( IRTemp src_vec, IRTemp dst_vec, UInt imm8 ) in math_DPPS_128() argument
18470 vassert(imm8 < 256); in math_DPPS_128()
18487 mkV128( imm8_perms[((imm8 >> 4)& 15)] ) ) ); in math_DPPS_128()
18506 mkV128( imm8_perms[ (imm8 & 15) ] ) ) ); in math_DPPS_128()
18511 static IRTemp math_MPSADBW_128 ( IRTemp dst_vec, IRTemp src_vec, UInt imm8 ) in math_MPSADBW_128() argument
18522 assign(src_maskV, mkV128( src_mask[ imm8 & 3 ] )); in math_MPSADBW_128()
18523 assign(dst_maskV, mkV128( dst_mask[ (imm8 >> 2) & 1 ] )); in math_MPSADBW_128()
18547 mkU64( 0x80 | (imm8 & 7) )); in math_MPSADBW_128()
18550 mkU64( 0x00 | (imm8 & 7) )); in math_MPSADBW_128()
18613 static IRTemp math_PCLMULQDQ( IRTemp dV, IRTemp sV, UInt imm8 ) in math_PCLMULQDQ() argument
18617 assign(t0, unop((imm8&1)? Iop_V128HIto64 : Iop_V128to64, in math_PCLMULQDQ()
18619 assign(t1, unop((imm8&16) ? Iop_V128HIto64 : Iop_V128to64, in math_PCLMULQDQ()
18841 Int imm8; in dis_ESC_0F3A__SSE4() local
18850 imm8 = (Int)getUChar(delta+1); in dis_ESC_0F3A__SSE4()
18853 DIP( "blendps $%d, %s,%s\n", imm8, in dis_ESC_0F3A__SSE4()
18861 imm8 = (Int)getUChar(delta+alen); in dis_ESC_0F3A__SSE4()
18864 imm8, dis_buf, nameXMMReg( gregOfRexRM(pfx, modrm) ) ); in dis_ESC_0F3A__SSE4()
18868 mkexpr( math_BLENDPS_128( src_vec, dst_vec, imm8) ) ); in dis_ESC_0F3A__SSE4()
18878 Int imm8; in dis_ESC_0F3A__SSE4() local
18886 imm8 = (Int)getUChar(delta+1); in dis_ESC_0F3A__SSE4()
18889 DIP( "blendpd $%d, %s,%s\n", imm8, in dis_ESC_0F3A__SSE4()
18897 imm8 = (Int)getUChar(delta+alen); in dis_ESC_0F3A__SSE4()
18900 imm8, dis_buf, nameXMMReg( gregOfRexRM(pfx, modrm) ) ); in dis_ESC_0F3A__SSE4()
18904 mkexpr( math_BLENDPD_128( src_vec, dst_vec, imm8) ) ); in dis_ESC_0F3A__SSE4()
18914 Int imm8; in dis_ESC_0F3A__SSE4() local
18923 imm8 = (Int)getUChar(delta+1); in dis_ESC_0F3A__SSE4()
18926 DIP( "pblendw $%d, %s,%s\n", imm8, in dis_ESC_0F3A__SSE4()
18934 imm8 = (Int)getUChar(delta+alen); in dis_ESC_0F3A__SSE4()
18937 imm8, dis_buf, nameXMMReg( gregOfRexRM(pfx, modrm) ) ); in dis_ESC_0F3A__SSE4()
18941 mkexpr( math_PBLENDW_128( src_vec, dst_vec, imm8) ) ); in dis_ESC_0F3A__SSE4()
19003 Int imm8; in dis_ESC_0F3A__SSE4() local
19009 imm8 = (Int)(getUChar(delta+1) & 0xF); in dis_ESC_0F3A__SSE4()
19012 DIP( "pinsrb $%d,%s,%s\n", imm8, in dis_ESC_0F3A__SSE4()
19016 imm8 = (Int)(getUChar(delta+alen) & 0xF); in dis_ESC_0F3A__SSE4()
19020 imm8, dis_buf, nameXMMReg(rG) ); in dis_ESC_0F3A__SSE4()
19024 IRTemp res = math_PINSRB_128( src_vec, new8, imm8 ); in dis_ESC_0F3A__SSE4()
19034 UInt imm8; in dis_ESC_0F3A__SSE4() local
19047 imm8 = getUChar(delta+1); in dis_ESC_0F3A__SSE4()
19048 d2ins = dsE[(imm8 >> 6) & 3]; /* "imm8_count_s" */ in dis_ESC_0F3A__SSE4()
19051 imm8, nameXMMReg(rE), nameXMMReg(rG) ); in dis_ESC_0F3A__SSE4()
19055 imm8 = getUChar(delta+alen); in dis_ESC_0F3A__SSE4()
19058 imm8, dis_buf, nameXMMReg(rG) ); in dis_ESC_0F3A__SSE4()
19064 putXMMReg( rG, mkexpr(math_INSERTPS( vG, d2ins, imm8 )) ); in dis_ESC_0F3A__SSE4()
19139 Int imm8; in dis_ESC_0F3A__SSE4() local
19146 imm8 = (Int)getUChar(delta+1); in dis_ESC_0F3A__SSE4()
19150 imm8, nameXMMReg(rE), nameXMMReg(rG) ); in dis_ESC_0F3A__SSE4()
19156 imm8 = (Int)getUChar(delta+alen); in dis_ESC_0F3A__SSE4()
19159 imm8, dis_buf, nameXMMReg(rG) ); in dis_ESC_0F3A__SSE4()
19161 IRTemp res = math_DPPS_128( src_vec, dst_vec, imm8 ); in dis_ESC_0F3A__SSE4()
19172 Int imm8; in dis_ESC_0F3A__SSE4() local
19179 imm8 = (Int)getUChar(delta+1); in dis_ESC_0F3A__SSE4()
19183 imm8, nameXMMReg(rE), nameXMMReg(rG) ); in dis_ESC_0F3A__SSE4()
19189 imm8 = (Int)getUChar(delta+alen); in dis_ESC_0F3A__SSE4()
19192 imm8, dis_buf, nameXMMReg(rG) ); in dis_ESC_0F3A__SSE4()
19194 IRTemp res = math_DPPD_128( src_vec, dst_vec, imm8 ); in dis_ESC_0F3A__SSE4()
19204 Int imm8; in dis_ESC_0F3A__SSE4() local
19215 imm8 = (Int)getUChar(delta+1); in dis_ESC_0F3A__SSE4()
19218 DIP( "mpsadbw $%d, %s,%s\n", imm8, in dis_ESC_0F3A__SSE4()
19225 imm8 = (Int)getUChar(delta+alen); in dis_ESC_0F3A__SSE4()
19227 DIP( "mpsadbw $%d, %s,%s\n", imm8, dis_buf, nameXMMReg(rG) ); in dis_ESC_0F3A__SSE4()
19230 putXMMReg( rG, mkexpr( math_MPSADBW_128(dst_vec, src_vec, imm8) ) ); in dis_ESC_0F3A__SSE4()
19242 Int imm8; in dis_ESC_0F3A__SSE4() local
19252 imm8 = (Int)getUChar(delta+1); in dis_ESC_0F3A__SSE4()
19255 DIP( "pclmulqdq $%d, %s,%s\n", imm8, in dis_ESC_0F3A__SSE4()
19262 imm8 = (Int)getUChar(delta+alen); in dis_ESC_0F3A__SSE4()
19265 imm8, dis_buf, nameXMMReg(rG) ); in dis_ESC_0F3A__SSE4()
19268 putXMMReg( rG, mkexpr( math_PCLMULQDQ(dvec, svec, imm8) ) ); in dis_ESC_0F3A__SSE4()
22785 UInt imm8; in dis_AVX128_cmp_V_E_to_G() local
22799 imm8 = getUChar(delta+1); in dis_AVX128_cmp_V_E_to_G()
22800 Bool ok = findSSECmpOp(&preSwap, &op, &postNot, imm8, all_lanes, sz); in dis_AVX128_cmp_V_E_to_G()
22806 opname, (Int)imm8, in dis_AVX128_cmp_V_E_to_G()
22810 imm8 = getUChar(delta+alen); in dis_AVX128_cmp_V_E_to_G()
22811 Bool ok = findSSECmpOp(&preSwap, &op, &postNot, imm8, all_lanes, sz); in dis_AVX128_cmp_V_E_to_G()
22819 opname, (Int)imm8, dis_buf, nameXMMReg(rV), nameXMMReg(rG)); in dis_AVX128_cmp_V_E_to_G()
22895 UInt imm8; in dis_AVX256_cmp_V_E_to_G() local
22913 imm8 = getUChar(delta+1); in dis_AVX256_cmp_V_E_to_G()
22914 Bool ok = findSSECmpOp(&preSwap, &op, &postNot, imm8, in dis_AVX256_cmp_V_E_to_G()
22921 opname, (Int)imm8, in dis_AVX256_cmp_V_E_to_G()
22925 imm8 = getUChar(delta+alen); in dis_AVX256_cmp_V_E_to_G()
22926 Bool ok = findSSECmpOp(&preSwap, &op, &postNot, imm8, in dis_AVX256_cmp_V_E_to_G()
22932 opname, (Int)imm8, dis_buf, nameYMMReg(rV), nameYMMReg(rG)); in dis_AVX256_cmp_V_E_to_G()
25894 Int imm8; in dis_ESC_0F__VEX() local
25898 imm8 = (Int)(getUChar(delta+1) & 7); in dis_ESC_0F__VEX()
25902 DIP( "vpinsrw $%d,%s,%s\n", imm8, in dis_ESC_0F__VEX()
25906 imm8 = (Int)(getUChar(delta+alen) & 7); in dis_ESC_0F__VEX()
25910 imm8, dis_buf, nameXMMReg(rG) ); in dis_ESC_0F__VEX()
25915 IRTemp res_vec = math_PINSRW_128( src_vec, new16, imm8 ); in dis_ESC_0F__VEX()
25938 Int imm8 = 0; in dis_ESC_0F__VEX() local
25948 imm8 = (Int)getUChar(delta+1); in dis_ESC_0F__VEX()
25951 imm8, nameXMMReg(rE), nameXMMReg(rV), nameXMMReg(rG)); in dis_ESC_0F__VEX()
25955 imm8 = (Int)getUChar(delta+alen); in dis_ESC_0F__VEX()
25958 imm8, dis_buf, nameXMMReg(rV), nameXMMReg(rG)); in dis_ESC_0F__VEX()
25960 IRTemp res = math_SHUFPS_128( eV, vV, imm8 ); in dis_ESC_0F__VEX()
25968 Int imm8 = 0; in dis_ESC_0F__VEX() local
25978 imm8 = (Int)getUChar(delta+1); in dis_ESC_0F__VEX()
25981 imm8, nameYMMReg(rE), nameYMMReg(rV), nameYMMReg(rG)); in dis_ESC_0F__VEX()
25985 imm8 = (Int)getUChar(delta+alen); in dis_ESC_0F__VEX()
25988 imm8, dis_buf, nameYMMReg(rV), nameYMMReg(rG)); in dis_ESC_0F__VEX()
25990 IRTemp res = math_SHUFPS_256( eV, vV, imm8 ); in dis_ESC_0F__VEX()
25998 Int imm8 = 0; in dis_ESC_0F__VEX() local
26008 imm8 = (Int)getUChar(delta+1); in dis_ESC_0F__VEX()
26011 imm8, nameXMMReg(rE), nameXMMReg(rV), nameXMMReg(rG)); in dis_ESC_0F__VEX()
26015 imm8 = (Int)getUChar(delta+alen); in dis_ESC_0F__VEX()
26018 imm8, dis_buf, nameXMMReg(rV), nameXMMReg(rG)); in dis_ESC_0F__VEX()
26020 IRTemp res = math_SHUFPD_128( eV, vV, imm8 ); in dis_ESC_0F__VEX()
26028 Int imm8 = 0; in dis_ESC_0F__VEX() local
26038 imm8 = (Int)getUChar(delta+1); in dis_ESC_0F__VEX()
26041 imm8, nameYMMReg(rE), nameYMMReg(rV), nameYMMReg(rG)); in dis_ESC_0F__VEX()
26045 imm8 = (Int)getUChar(delta+alen); in dis_ESC_0F__VEX()
26048 imm8, dis_buf, nameYMMReg(rV), nameYMMReg(rG)); in dis_ESC_0F__VEX()
26050 IRTemp res = math_SHUFPD_256( eV, vV, imm8 ); in dis_ESC_0F__VEX()
29495 static IRTemp math_VPERMILPS_128 ( IRTemp sV, UInt imm8 ) in math_VPERMILPS_128() argument
29497 vassert(imm8 < 256); in math_VPERMILPS_128()
29504 assign(res, mkV128from32s( SEL((imm8 >> 6) & 3), in math_VPERMILPS_128()
29505 SEL((imm8 >> 4) & 3), in math_VPERMILPS_128()
29506 SEL((imm8 >> 2) & 3), in math_VPERMILPS_128()
29507 SEL((imm8 >> 0) & 3) )); in math_VPERMILPS_128()
29542 UInt imm8 = 0; in dis_ESC_0F3A__VEX() local
29549 imm8 = getUChar(delta); in dis_ESC_0F3A__VEX()
29551 name, imm8, nameYMMReg(rE), nameYMMReg(rG)); in dis_ESC_0F3A__VEX()
29556 imm8 = getUChar(delta); in dis_ESC_0F3A__VEX()
29558 name, imm8, dis_buf, nameYMMReg(rG)); in dis_ESC_0F3A__VEX()
29567 mkexpr(s[(imm8 >> 6) & 3]), in dis_ESC_0F3A__VEX()
29568 mkexpr(s[(imm8 >> 4) & 3]), in dis_ESC_0F3A__VEX()
29569 mkexpr(s[(imm8 >> 2) & 3]), in dis_ESC_0F3A__VEX()
29570 mkexpr(s[(imm8 >> 0) & 3]))); in dis_ESC_0F3A__VEX()
29581 UInt imm8 = 0; in dis_ESC_0F3A__VEX() local
29592 imm8 = getUChar(delta); in dis_ESC_0F3A__VEX()
29594 imm8, nameXMMReg(rE), nameXMMReg(rV), nameXMMReg(rG)); in dis_ESC_0F3A__VEX()
29599 imm8 = getUChar(delta); in dis_ESC_0F3A__VEX()
29601 imm8, dis_buf, nameXMMReg(rV), nameXMMReg(rG)); in dis_ESC_0F3A__VEX()
29612 putYMMRegLane32(rG, i, mkexpr((imm8 & (1<<i)) ? d[i] : s[i])); in dis_ESC_0F3A__VEX()
29621 UInt imm8 = 0; in dis_ESC_0F3A__VEX() local
29632 imm8 = getUChar(delta); in dis_ESC_0F3A__VEX()
29634 imm8, nameYMMReg(rE), nameYMMReg(rV), nameYMMReg(rG)); in dis_ESC_0F3A__VEX()
29639 imm8 = getUChar(delta); in dis_ESC_0F3A__VEX()
29641 imm8, dis_buf, nameYMMReg(rV), nameYMMReg(rG)); in dis_ESC_0F3A__VEX()
29654 putYMMRegLane32(rG, i, mkexpr((imm8 & (1<<i)) ? d[i] : s[i])); in dis_ESC_0F3A__VEX()
29664 UInt imm8 = 0; in dis_ESC_0F3A__VEX() local
29670 imm8 = getUChar(delta); in dis_ESC_0F3A__VEX()
29672 imm8, nameYMMReg(rE), nameYMMReg(rG)); in dis_ESC_0F3A__VEX()
29677 imm8 = getUChar(delta); in dis_ESC_0F3A__VEX()
29679 imm8, dis_buf, nameYMMReg(rG)); in dis_ESC_0F3A__VEX()
29685 IRTemp dVhi = math_VPERMILPS_128( sVhi, imm8 ); in dis_ESC_0F3A__VEX()
29686 IRTemp dVlo = math_VPERMILPS_128( sVlo, imm8 ); in dis_ESC_0F3A__VEX()
29694 UInt imm8 = 0; in dis_ESC_0F3A__VEX() local
29700 imm8 = getUChar(delta); in dis_ESC_0F3A__VEX()
29702 imm8, nameXMMReg(rE), nameXMMReg(rG)); in dis_ESC_0F3A__VEX()
29707 imm8 = getUChar(delta); in dis_ESC_0F3A__VEX()
29709 imm8, dis_buf, nameXMMReg(rG)); in dis_ESC_0F3A__VEX()
29713 putYMMRegLoAndZU(rG, mkexpr ( math_VPERMILPS_128 ( sV, imm8 ) ) ); in dis_ESC_0F3A__VEX()
29722 UInt imm8 = 0; in dis_ESC_0F3A__VEX() local
29728 imm8 = getUChar(delta); in dis_ESC_0F3A__VEX()
29730 imm8, nameXMMReg(rE), nameXMMReg(rG)); in dis_ESC_0F3A__VEX()
29735 imm8 = getUChar(delta); in dis_ESC_0F3A__VEX()
29737 imm8, dis_buf, nameXMMReg(rG)); in dis_ESC_0F3A__VEX()
29747 mkexpr((imm8 & (1<<1)) ? s1 : s0), in dis_ESC_0F3A__VEX()
29748 mkexpr((imm8 & (1<<0)) ? s1 : s0))); in dis_ESC_0F3A__VEX()
29755 UInt imm8 = 0; in dis_ESC_0F3A__VEX() local
29761 imm8 = getUChar(delta); in dis_ESC_0F3A__VEX()
29763 imm8, nameYMMReg(rE), nameYMMReg(rG)); in dis_ESC_0F3A__VEX()
29768 imm8 = getUChar(delta); in dis_ESC_0F3A__VEX()
29770 imm8, dis_buf, nameYMMReg(rG)); in dis_ESC_0F3A__VEX()
29779 mkexpr((imm8 & (1<<3)) ? s3 : s2), in dis_ESC_0F3A__VEX()
29780 mkexpr((imm8 & (1<<2)) ? s3 : s2), in dis_ESC_0F3A__VEX()
29781 mkexpr((imm8 & (1<<1)) ? s1 : s0), in dis_ESC_0F3A__VEX()
29782 mkexpr((imm8 & (1<<0)) ? s1 : s0))); in dis_ESC_0F3A__VEX()
29793 UInt imm8 = 0; in dis_ESC_0F3A__VEX() local
29805 imm8 = getUChar(delta); in dis_ESC_0F3A__VEX()
29807 imm8, nameYMMReg(rE), nameYMMReg(rV), nameYMMReg(rG)); in dis_ESC_0F3A__VEX()
29813 imm8 = getUChar(delta); in dis_ESC_0F3A__VEX()
29815 imm8, dis_buf, nameYMMReg(rV), nameYMMReg(rG)); in dis_ESC_0F3A__VEX()
29824 putYMMRegLane128(rG, 0, mkexpr(SEL((imm8 >> 0) & 3))); in dis_ESC_0F3A__VEX()
29825 putYMMRegLane128(rG, 1, mkexpr(SEL((imm8 >> 4) & 3))); in dis_ESC_0F3A__VEX()
29827 if (imm8 & (1<<3)) putYMMRegLane128(rG, 0, mkV128(0)); in dis_ESC_0F3A__VEX()
29828 if (imm8 & (1<<7)) putYMMRegLane128(rG, 1, mkV128(0)); in dis_ESC_0F3A__VEX()
30095 UInt imm8; in dis_ESC_0F3A__VEX() local
30104 imm8 = getUChar(delta); in dis_ESC_0F3A__VEX()
30106 imm8, nameYMMReg(rE), nameYMMReg(rV), nameYMMReg(rG)); in dis_ESC_0F3A__VEX()
30111 imm8 = getUChar(delta); in dis_ESC_0F3A__VEX()
30113 imm8, dis_buf, nameYMMReg(rV), nameYMMReg(rG)); in dis_ESC_0F3A__VEX()
30118 mkexpr( math_BLENDPS_256( sE, sV, imm8) ) ); in dis_ESC_0F3A__VEX()
30126 UInt imm8; in dis_ESC_0F3A__VEX() local
30135 imm8 = getUChar(delta); in dis_ESC_0F3A__VEX()
30137 imm8, nameXMMReg(rE), nameXMMReg(rV), nameXMMReg(rG)); in dis_ESC_0F3A__VEX()
30142 imm8 = getUChar(delta); in dis_ESC_0F3A__VEX()
30144 imm8, dis_buf, nameXMMReg(rV), nameXMMReg(rG)); in dis_ESC_0F3A__VEX()
30149 mkexpr( math_BLENDPS_128( sE, sV, imm8) ) ); in dis_ESC_0F3A__VEX()
30160 UInt imm8; in dis_ESC_0F3A__VEX() local
30169 imm8 = getUChar(delta); in dis_ESC_0F3A__VEX()
30171 imm8, nameYMMReg(rE), nameYMMReg(rV), nameYMMReg(rG)); in dis_ESC_0F3A__VEX()
30176 imm8 = getUChar(delta); in dis_ESC_0F3A__VEX()
30178 imm8, dis_buf, nameYMMReg(rV), nameYMMReg(rG)); in dis_ESC_0F3A__VEX()
30183 mkexpr( math_BLENDPD_256( sE, sV, imm8) ) ); in dis_ESC_0F3A__VEX()
30191 UInt imm8; in dis_ESC_0F3A__VEX() local
30200 imm8 = getUChar(delta); in dis_ESC_0F3A__VEX()
30202 imm8, nameXMMReg(rE), nameXMMReg(rV), nameXMMReg(rG)); in dis_ESC_0F3A__VEX()
30207 imm8 = getUChar(delta); in dis_ESC_0F3A__VEX()
30209 imm8, dis_buf, nameXMMReg(rV), nameXMMReg(rG)); in dis_ESC_0F3A__VEX()
30214 mkexpr( math_BLENDPD_128( sE, sV, imm8) ) ); in dis_ESC_0F3A__VEX()
30225 UInt imm8; in dis_ESC_0F3A__VEX() local
30234 imm8 = getUChar(delta); in dis_ESC_0F3A__VEX()
30236 imm8, nameXMMReg(rE), nameXMMReg(rV), nameXMMReg(rG)); in dis_ESC_0F3A__VEX()
30241 imm8 = getUChar(delta); in dis_ESC_0F3A__VEX()
30243 imm8, dis_buf, nameXMMReg(rV), nameXMMReg(rG)); in dis_ESC_0F3A__VEX()
30248 mkexpr( math_PBLENDW_128( sE, sV, imm8) ) ); in dis_ESC_0F3A__VEX()
30256 UInt imm8; in dis_ESC_0F3A__VEX() local
30267 imm8 = getUChar(delta); in dis_ESC_0F3A__VEX()
30269 imm8, nameYMMReg(rE), nameYMMReg(rV), nameYMMReg(rG)); in dis_ESC_0F3A__VEX()
30274 imm8 = getUChar(delta); in dis_ESC_0F3A__VEX()
30276 imm8, dis_buf, nameYMMReg(rV), nameYMMReg(rG)); in dis_ESC_0F3A__VEX()
30283 mkexpr( math_PBLENDW_128( sEhi, sVhi, imm8) ), in dis_ESC_0F3A__VEX()
30284 mkexpr( math_PBLENDW_128( sElo, sVlo, imm8) ) ) ); in dis_ESC_0F3A__VEX()
30299 UInt imm8; in dis_ESC_0F3A__VEX() local
30306 imm8 = getUChar(delta+1); in dis_ESC_0F3A__VEX()
30308 DIP("vpalignr $%d,%s,%s,%s\n", imm8, nameXMMReg(rE), in dis_ESC_0F3A__VEX()
30313 imm8 = getUChar(delta+alen); in dis_ESC_0F3A__VEX()
30315 DIP("vpalignr $%d,%s,%s,%s\n", imm8, dis_buf, in dis_ESC_0F3A__VEX()
30319 IRTemp res = math_PALIGNR_XMM( sV, dV, imm8 ); in dis_ESC_0F3A__VEX()
30334 UInt imm8; in dis_ESC_0F3A__VEX() local
30341 imm8 = getUChar(delta+1); in dis_ESC_0F3A__VEX()
30343 DIP("vpalignr $%d,%s,%s,%s\n", imm8, nameYMMReg(rE), in dis_ESC_0F3A__VEX()
30348 imm8 = getUChar(delta+alen); in dis_ESC_0F3A__VEX()
30350 DIP("vpalignr $%d,%s,%s,%s\n", imm8, dis_buf, in dis_ESC_0F3A__VEX()
30357 mkexpr( math_PALIGNR_XMM( sHi, dHi, imm8 ) ), in dis_ESC_0F3A__VEX()
30358 mkexpr( math_PALIGNR_XMM( sLo, dLo, imm8 ) ) ) in dis_ESC_0F3A__VEX()
30483 Int imm8; in dis_ESC_0F3A__VEX() local
30488 imm8 = (Int)(getUChar(delta+1) & 15); in dis_ESC_0F3A__VEX()
30492 imm8, nameIReg32(rE), nameXMMReg(rV), nameXMMReg(rG) ); in dis_ESC_0F3A__VEX()
30495 imm8 = (Int)(getUChar(delta+alen) & 15); in dis_ESC_0F3A__VEX()
30499 imm8, dis_buf, nameXMMReg(rV), nameXMMReg(rG) ); in dis_ESC_0F3A__VEX()
30504 IRTemp res_vec = math_PINSRB_128( src_vec, src_u8, imm8 ); in dis_ESC_0F3A__VEX()
30518 UInt imm8; in dis_ESC_0F3A__VEX() local
30528 imm8 = getUChar(delta+1); in dis_ESC_0F3A__VEX()
30529 d2ins = dsE[(imm8 >> 6) & 3]; /* "imm8_count_s" */ in dis_ESC_0F3A__VEX()
30532 imm8, nameXMMReg(rE), nameXMMReg(rG) ); in dis_ESC_0F3A__VEX()
30536 imm8 = getUChar(delta+alen); in dis_ESC_0F3A__VEX()
30539 imm8, dis_buf, nameXMMReg(rG) ); in dis_ESC_0F3A__VEX()
30545 putYMMRegLoAndZU( rG, mkexpr(math_INSERTPS( vV, d2ins, imm8 )) ); in dis_ESC_0F3A__VEX()
30693 Int imm8; in dis_ESC_0F3A__VEX() local
30696 imm8 = (Int)getUChar(delta+1); in dis_ESC_0F3A__VEX()
30700 imm8, nameXMMReg(rE), nameXMMReg(rV), nameXMMReg(rG) ); in dis_ESC_0F3A__VEX()
30703 imm8 = (Int)getUChar(delta+alen); in dis_ESC_0F3A__VEX()
30707 imm8, dis_buf, nameXMMReg(rV), nameXMMReg(rG) ); in dis_ESC_0F3A__VEX()
30712 IRTemp res_vec = math_DPPS_128( src_vec, dst_vec, imm8 ); in dis_ESC_0F3A__VEX()
30723 Int imm8; in dis_ESC_0F3A__VEX() local
30726 imm8 = (Int)getUChar(delta+1); in dis_ESC_0F3A__VEX()
30730 imm8, nameYMMReg(rE), nameYMMReg(rV), nameYMMReg(rG) ); in dis_ESC_0F3A__VEX()
30733 imm8 = (Int)getUChar(delta+alen); in dis_ESC_0F3A__VEX()
30737 imm8, dis_buf, nameYMMReg(rV), nameYMMReg(rG) ); in dis_ESC_0F3A__VEX()
30747 mkexpr( math_DPPS_128(s1, d1, imm8) ), in dis_ESC_0F3A__VEX()
30748 mkexpr( math_DPPS_128(s0, d0, imm8) ) ) ); in dis_ESC_0F3A__VEX()
30761 Int imm8; in dis_ESC_0F3A__VEX() local
30764 imm8 = (Int)getUChar(delta+1); in dis_ESC_0F3A__VEX()
30768 imm8, nameXMMReg(rE), nameXMMReg(rV), nameXMMReg(rG) ); in dis_ESC_0F3A__VEX()
30771 imm8 = (Int)getUChar(delta+alen); in dis_ESC_0F3A__VEX()
30775 imm8, dis_buf, nameXMMReg(rV), nameXMMReg(rG) ); in dis_ESC_0F3A__VEX()
30780 IRTemp res_vec = math_DPPD_128( src_vec, dst_vec, imm8 ); in dis_ESC_0F3A__VEX()
30792 Int imm8; in dis_ESC_0F3A__VEX() local
30803 imm8 = (Int)getUChar(delta+1); in dis_ESC_0F3A__VEX()
30806 DIP( "vmpsadbw $%d, %s,%s,%s\n", imm8, in dis_ESC_0F3A__VEX()
30812 imm8 = (Int)getUChar(delta+alen); in dis_ESC_0F3A__VEX()
30814 DIP( "vmpsadbw $%d, %s,%s,%s\n", imm8, in dis_ESC_0F3A__VEX()
30819 src_vec, imm8) ) ); in dis_ESC_0F3A__VEX()
30827 Int imm8; in dis_ESC_0F3A__VEX() local
30840 imm8 = (Int)getUChar(delta+1); in dis_ESC_0F3A__VEX()
30843 DIP( "vmpsadbw $%d, %s,%s,%s\n", imm8, in dis_ESC_0F3A__VEX()
30849 imm8 = (Int)getUChar(delta+alen); in dis_ESC_0F3A__VEX()
30851 DIP( "vmpsadbw $%d, %s,%s,%s\n", imm8, in dis_ESC_0F3A__VEX()
30858 mkexpr( math_MPSADBW_128(dHi, sHi, imm8 >> 3) ), in dis_ESC_0F3A__VEX()
30859 mkexpr( math_MPSADBW_128(dLo, sLo, imm8) ) ) ); in dis_ESC_0F3A__VEX()
30874 Int imm8; in dis_ESC_0F3A__VEX() local
30884 imm8 = (Int)getUChar(delta+1); in dis_ESC_0F3A__VEX()
30887 DIP( "vpclmulqdq $%d, %s,%s,%s\n", imm8, in dis_ESC_0F3A__VEX()
30893 imm8 = (Int)getUChar(delta+alen); in dis_ESC_0F3A__VEX()
30896 imm8, dis_buf, nameXMMReg(rV), nameXMMReg(rG) ); in dis_ESC_0F3A__VEX()
30899 putYMMRegLoAndZU( rG, mkexpr( math_PCLMULQDQ(dV, sV, imm8) ) ); in dis_ESC_0F3A__VEX()
30910 UInt imm8 = 0; in dis_ESC_0F3A__VEX() local
30922 imm8 = getUChar(delta); in dis_ESC_0F3A__VEX()
30924 imm8, nameYMMReg(rE), nameYMMReg(rV), nameYMMReg(rG)); in dis_ESC_0F3A__VEX()
30930 imm8 = getUChar(delta); in dis_ESC_0F3A__VEX()
30932 imm8, dis_buf, nameYMMReg(rV), nameYMMReg(rG)); in dis_ESC_0F3A__VEX()
30941 putYMMRegLane128(rG, 0, mkexpr(SEL((imm8 >> 0) & 3))); in dis_ESC_0F3A__VEX()
30942 putYMMRegLane128(rG, 1, mkexpr(SEL((imm8 >> 4) & 3))); in dis_ESC_0F3A__VEX()
30944 if (imm8 & (1<<3)) putYMMRegLane128(rG, 0, mkV128(0)); in dis_ESC_0F3A__VEX()
30945 if (imm8 & (1<<7)) putYMMRegLane128(rG, 1, mkV128(0)); in dis_ESC_0F3A__VEX()
31049 UChar imm8; in dis_ESC_0F3A__VEX() local
31052 imm8 = getUChar(delta+1); in dis_ESC_0F3A__VEX()
31054 DIP("rorx %d,%s,%s\n", imm8, nameIRegE(size,pfx,rm), in dis_ESC_0F3A__VEX()
31059 imm8 = getUChar(delta+alen); in dis_ESC_0F3A__VEX()
31061 DIP("rorx %d,%s,%s\n", imm8, dis_buf, nameIRegG(size,pfx,rm)); in dis_ESC_0F3A__VEX()
31064 imm8 &= 8*size-1; in dis_ESC_0F3A__VEX()
31068 imm8 == 0 ? mkexpr(src) in dis_ESC_0F3A__VEX()
31071 mkU8(imm8) ), in dis_ESC_0F3A__VEX()
31073 mkU8(8*size-imm8) ) ) ); in dis_ESC_0F3A__VEX()