• Home
  • Raw
  • Download

Lines Matching refs:assign

636 static void assign ( IRTemp dst, IRExpr* e )  in assign()  function
763 assign(expTmp, expVal); in casLE()
1138 assign( oldc, binop(Iop_And32, in helper_ADC()
1142 assign( oldcn, narrowTo(ty, mkexpr(oldc)) ); in helper_ADC()
1144 assign( tres, binop(plus, in helper_ADC()
1192 assign( oldc, binop(Iop_And32, in helper_SBB()
1196 assign( oldcn, narrowTo(ty, mkexpr(oldc)) ); in helper_SBB()
1198 assign( tres, binop(minus, in helper_SBB()
1424 assign( seg_selector, unop(Iop_16Uto32, getSReg(sreg)) ); in handleSegOverride()
1425 assign( ldt_ptr, IRExpr_Get( OFFB_LDT, hWordTy )); in handleSegOverride()
1426 assign( gdt_ptr, IRExpr_Get( OFFB_GDT, hWordTy )); in handleSegOverride()
1433 assign( in handleSegOverride()
1475 assign( tmp, addr32 ); in disAMode_copy2tmp()
1834 assign( dst0, getIReg(size,gregOfRM(rm)) ); in dis_op2_E_G()
1835 assign( src, getIReg(size,eregOfRM(rm)) ); in dis_op2_E_G()
1847 assign( dst1, binop(mkSizedOp(ty,op8), mkexpr(dst0), mkexpr(src)) ); in dis_op2_E_G()
1863 assign( dst0, getIReg(size,gregOfRM(rm)) ); in dis_op2_E_G()
1864 assign( src, loadLE(szToITy(size), mkexpr(addr)) ); in dis_op2_E_G()
1876 assign( dst1, binop(mkSizedOp(ty,op8), mkexpr(dst0), mkexpr(src)) ); in dis_op2_E_G()
1947 assign(dst0, getIReg(size,eregOfRM(rm))); in dis_op2_G_E()
1948 assign(src, getIReg(size,gregOfRM(rm))); in dis_op2_G_E()
1960 assign(dst1, binop(mkSizedOp(ty,op8), mkexpr(dst0), mkexpr(src))); in dis_op2_G_E()
1978 assign(dst0, loadLE(ty,mkexpr(addr))); in dis_op2_G_E()
1979 assign(src, getIReg(size,gregOfRM(rm))); in dis_op2_G_E()
2003 assign(dst1, binop(mkSizedOp(ty,op8), mkexpr(dst0), mkexpr(src))); in dis_op2_G_E()
2130 assign(dst0, getIReg(size,R_EAX)); in dis_op_imm_A()
2131 assign(src, mkU(ty,lit)); in dis_op_imm_A()
2134 assign(dst1, binop(mkSizedOp(ty,op8), mkexpr(dst0), mkexpr(src)) ); in dis_op_imm_A()
2140 assign(dst1, binop(mkSizedOp(ty,op8), mkexpr(dst0), mkexpr(src)) ); in dis_op_imm_A()
2222 assign( src64, binop(Iop_32HLto64, in codegen_div()
2224 assign( dst64, binop(op, mkexpr(src64), mkexpr(t)) ); in codegen_div()
2231 assign( src64, unop(widen3264, in codegen_div()
2234 assign( dst64, binop(op, mkexpr(src64), unop(widen1632,mkexpr(t))) ); in codegen_div()
2243 assign( src64, unop(widen3264, unop(widen1632, getIReg(2,R_EAX))) ); in codegen_div()
2244 assign( dst64, in codegen_div()
2286 assign(dst0, getIReg(sz,eregOfRM(modrm))); in dis_Grp1()
2287 assign(src, mkU(ty,d32 & mask)); in dis_Grp1()
2297 assign(dst1, binop(mkSizedOp(ty,op8), mkexpr(dst0), mkexpr(src))); in dis_Grp1()
2313 assign(dst0, loadLE(ty,mkexpr(addr))); in dis_Grp1()
2314 assign(src, mkU(ty,d32 & mask)); in dis_Grp1()
2338 assign(dst1, binop(mkSizedOp(ty,op8), mkexpr(dst0), mkexpr(src))); in dis_Grp1()
2386 assign(dst0, getIReg(sz, eregOfRM(modrm))); in dis_Grp2()
2390 assign(dst0, loadLE(ty,mkexpr(addr))); in dis_Grp2()
2418 assign( r64, mkIRExprCCall( in dis_Grp2()
2427 assign( dst1, narrowTo(ty, unop(Iop_64to32, mkexpr(r64))) ); in dis_Grp2()
2464 assign( shift_amt, binop(Iop_And8, shift_expr, mkU8(31)) ); in dis_Grp2()
2467 assign( pre32, op32==Iop_Sar32 ? widenSto32(mkexpr(dst0)) in dis_Grp2()
2471 assign( res32, binop(op32, mkexpr(pre32), mkexpr(shift_amt)) ); in dis_Grp2()
2474 assign( res32ss, in dis_Grp2()
2486 assign( dst1, narrowTo(ty, mkexpr(res32)) ); in dis_Grp2()
2502 assign(rot_amt32, binop(Iop_And8, shift_expr, mkU8(31))); in dis_Grp2()
2505 assign(rot_amt, mkexpr(rot_amt32)); in dis_Grp2()
2507 assign(rot_amt, binop(Iop_And8, mkexpr(rot_amt32), mkU8(8*sz-1))); in dis_Grp2()
2512 assign(dst1, in dis_Grp2()
2529 assign(dst1, in dis_Grp2()
2549 assign(oldFlags, mk_x86g_calculate_eflags_all()); in dis_Grp2()
2645 assign( t2, widenUto32(getIReg(sz, eregOfRM(modrm))) ); in dis_Grp8_Imm()
2653 assign( t2, widenUto32(loadLE(ty, mkexpr(t_addr))) ); in dis_Grp8_Imm()
2663 assign( t2m, binop(Iop_Or32, mkU32(mask), mkexpr(t2)) ); in dis_Grp8_Imm()
2666 assign( t2m, binop(Iop_And32, mkU32(mask), mkexpr(t2)) ); in dis_Grp8_Imm()
2669 assign( t2m, binop(Iop_Xor32, mkU32(mask), mkexpr(t2)) ); in dis_Grp8_Imm()
2722 assign( t1, getIReg(sz, R_EAX) ); in codegen_mulL_A_D()
2732 assign( res64, binop(mulOp, mkexpr(t1), mkexpr(tmp)) ); in codegen_mulL_A_D()
2733 assign( resHi, unop(Iop_64HIto32,mkexpr(res64))); in codegen_mulL_A_D()
2734 assign( resLo, unop(Iop_64to32,mkexpr(res64))); in codegen_mulL_A_D()
2746 assign( res32, binop(mulOp, mkexpr(t1), mkexpr(tmp)) ); in codegen_mulL_A_D()
2747 assign( resHi, unop(Iop_32HIto16,mkexpr(res32))); in codegen_mulL_A_D()
2748 assign( resLo, unop(Iop_32to16,mkexpr(res32))); in codegen_mulL_A_D()
2760 assign( res16, binop(mulOp, mkexpr(t1), mkexpr(tmp)) ); in codegen_mulL_A_D()
2761 assign( resHi, unop(Iop_16HIto8,mkexpr(res16))); in codegen_mulL_A_D()
2762 assign( resLo, unop(Iop_16to8,mkexpr(res16))); in codegen_mulL_A_D()
2801 assign(dst1, binop(mkSizedOp(ty,Iop_And8), in dis_Grp3()
2828 assign(dst0, mkU(ty,0)); in dis_Grp3()
2829 assign(src, getIReg(sz,eregOfRM(modrm))); in dis_Grp3()
2830 assign(dst1, binop(mkSizedOp(ty,Iop_Sub8), mkexpr(dst0), mkexpr(src))); in dis_Grp3()
2838 assign(src, getIReg(sz,eregOfRM(modrm))); in dis_Grp3()
2844 assign(src, getIReg(sz,eregOfRM(modrm))); in dis_Grp3()
2849 assign( t1, getIReg(sz, eregOfRM(modrm)) ); in dis_Grp3()
2855 assign( t1, getIReg(sz, eregOfRM(modrm)) ); in dis_Grp3()
2867 assign(t1, loadLE(ty,mkexpr(addr))); in dis_Grp3()
2872 assign(dst1, binop(mkSizedOp(ty,Iop_And8), in dis_Grp3()
2884 assign(dst1, unop(mkSizedOp(ty,Iop_Not8), mkexpr(t1))); in dis_Grp3()
2897 assign(dst0, mkU(ty,0)); in dis_Grp3()
2898 assign(src, mkexpr(t1)); in dis_Grp3()
2899 assign(dst1, binop(mkSizedOp(ty,Iop_Sub8), in dis_Grp3()
2955 assign(t1, getIReg(1, eregOfRM(modrm))); in dis_Grp4()
2958 assign(t2, binop(Iop_Add8, mkexpr(t1), mkU8(1))); in dis_Grp4()
2963 assign(t2, binop(Iop_Sub8, mkexpr(t1), mkU8(1))); in dis_Grp4()
2976 assign( t1, loadLE(ty, mkexpr(addr)) ); in dis_Grp4()
2979 assign(t2, binop(Iop_Add8, mkexpr(t1), mkU8(1))); in dis_Grp4()
2989 assign(t2, binop(Iop_Sub8, mkexpr(t1), mkU8(1))); in dis_Grp4()
3033 assign(t1, getIReg(sz,eregOfRM(modrm))); in dis_Grp5()
3038 assign(t2, binop(mkSizedOp(ty,Iop_Add8), in dis_Grp5()
3046 assign(t2, binop(mkSizedOp(ty,Iop_Sub8), in dis_Grp5()
3054 assign(t2, binop(Iop_Sub32, getIReg(4,R_ESP), mkU32(4))); in dis_Grp5()
3068 assign( t2, binop(Iop_Sub32,getIReg(4,R_ESP),mkU32(sz)) ); in dis_Grp5()
3081 assign(t1, loadLE(ty,mkexpr(addr))); in dis_Grp5()
3085 assign(t2, binop(mkSizedOp(ty,Iop_Add8), in dis_Grp5()
3097 assign(t2, binop(mkSizedOp(ty,Iop_Sub8), in dis_Grp5()
3110 assign(t2, binop(Iop_Sub32, getIReg(4,R_ESP), mkU32(4))); in dis_Grp5()
3124 assign( t2, binop(Iop_Sub32,getIReg(4,R_ESP),mkU32(sz)) ); in dis_Grp5()
3149 assign( t_inc, in dis_string_op_increment()
3153 assign( t_inc, in dis_string_op_increment()
3176 assign( td, getIReg(4, R_EDI) ); in dis_MOVS()
3177 assign( ts, getIReg(4, R_ESI) ); in dis_MOVS()
3191 assign( ts, getIReg(4, R_ESI) ); in dis_LODS()
3205 assign( ta, getIReg(sz, R_EAX) ); in dis_STOS()
3206 assign( td, getIReg(4, R_EDI) ); in dis_STOS()
3222 assign( td, getIReg(4, R_EDI) ); in dis_CMPS()
3223 assign( ts, getIReg(4, R_ESI) ); in dis_CMPS()
3225 assign( tdv, loadLE(ty,mkexpr(td)) ); in dis_CMPS()
3226 assign( tsv, loadLE(ty,mkexpr(ts)) ); in dis_CMPS()
3242 assign( ta, getIReg(sz, R_EAX) ); in dis_SCAS()
3243 assign( td, getIReg(4, R_EDI) ); in dis_SCAS()
3245 assign( tdv, loadLE(ty,mkexpr(td)) ); in dis_SCAS()
3263 assign( tc, getIReg(4,R_ECX) ); in dis_REP_op()
3304 assign( tg, getIReg(size, gregOfRM(rm)) ); in dis_mul_E_G()
3306 assign( te, getIReg(size, eregOfRM(rm)) ); in dis_mul_E_G()
3309 assign( te, loadLE(ty,mkexpr(addr)) ); in dis_mul_E_G()
3314 assign( resLo, binop( mkSizedOp(ty, Iop_Mul8), mkexpr(te), mkexpr(tg) ) ); in dis_mul_E_G()
3349 assign(te, getIReg(size, eregOfRM(rm))); in dis_imul_I_E_G()
3353 assign(te, loadLE(ty, mkexpr(addr))); in dis_imul_I_E_G()
3362 assign(tl, mkU(ty,d32)); in dis_imul_I_E_G()
3364 assign( resLo, binop( mkSizedOp(ty, Iop_Mul8), mkexpr(te), mkexpr(tl) )); in dis_imul_I_E_G()
3387 assign(src32, widenUto32( mkexpr(src) )); in gen_LZCNT()
3390 assign(src32x, in gen_LZCNT()
3397 assign(res32, in gen_LZCNT()
3406 assign(res, narrowTo(ty, mkexpr(res32))); in gen_LZCNT()
3982 assign( t64, mkIRExprCCall( in dis_FPU()
3994 assign( ew, unop(Iop_64HIto32, mkexpr(t64) ) ); in dis_FPU()
4081 assign(t1, get_ST(r_src)); in dis_FPU()
4091 assign(t1, get_ST(0)); in dis_FPU()
4092 assign(t2, get_ST(r_src)); in dis_FPU()
4241 assign( argF, get_ST(0) ); in dis_FPU()
4242 assign( argI, unop(Iop_ReinterpF64asI64, mkexpr(argF))); in dis_FPU()
4243 assign( sigI, in dis_FPU()
4251 assign( expI, in dis_FPU()
4259 assign( sigF, unop(Iop_ReinterpI64asF64, mkexpr(sigI)) ); in dis_FPU()
4260 assign( expF, unop(Iop_ReinterpI64asF64, mkexpr(expI)) ); in dis_FPU()
4275 assign( a1, get_ST(0) ); in dis_FPU()
4276 assign( a2, get_ST(1) ); in dis_FPU()
4301 assign( a1, get_ST(0) ); in dis_FPU()
4302 assign( a2, get_ST(1) ); in dis_FPU()
4336 assign( a1, get_ST(0) ); in dis_FPU()
5322 assign(t16, get_FPU_sw()); in dis_FPU()
5539 assign(res, binop(op, argL, argR)); in dis_MMXop_regmem_to_reg()
5543 assign( res, in dis_MMXop_regmem_to_reg()
5580 assign( amt, unop(Iop_64to32, getMMXReg(eregOfRM(rm))) ); in dis_MMX_shiftG_byE()
5587 assign( amt, loadLE(Ity_I32, mkexpr(addr)) ); in dis_MMX_shiftG_byE()
5593 assign( g0, getMMXReg(gregOfRM(rm)) ); in dis_MMX_shiftG_byE()
5594 assign( amt8, unop(Iop_32to8, mkexpr(amt)) ); in dis_MMX_shiftG_byE()
5611 assign( in dis_MMX_shiftG_byE()
5621 assign( in dis_MMX_shiftG_byE()
5659 assign( e0, getMMXReg(eregOfRM(rm)) ); in dis_MMX_shiftE_imm()
5676 assign( e1, amt >= size in dis_MMX_shiftE_imm()
5682 assign( e1, amt >= size in dis_MMX_shiftE_imm()
6002 assign( addr, handleSegOverride( sorb, getIReg(4, R_EDI) )); in dis_MMX()
6003 assign( regM, getMMXReg( eregOfRM(modrm) )); in dis_MMX()
6004 assign( regD, getMMXReg( gregOfRM(modrm) )); in dis_MMX()
6005 assign( mask, binop(Iop_SarN8x8, mkexpr(regM), mkU8(7)) ); in dis_MMX()
6006 assign( olddata, loadLE( Ity_I64, mkexpr(addr) )); in dis_MMX()
6007 assign( newdata, in dis_MMX()
6083 assign( gsrc, getIReg(sz, gregOfRM(modrm)) ); in dis_SHLRD_Gv_Ev()
6087 assign( esrc, getIReg(sz, eregOfRM(modrm)) ); in dis_SHLRD_Gv_Ev()
6095 assign( esrc, loadLE(ty, mkexpr(addr)) ); in dis_SHLRD_Gv_Ev()
6126 assign( tmpSH, binop(Iop_And8, shift_amt, mask) ); in dis_SHLRD_Gv_Ev()
6129 assign( tmpL, binop(mkpair, mkexpr(esrc), mkexpr(gsrc)) ); in dis_SHLRD_Gv_Ev()
6131 assign( tmpL, binop(mkpair, mkexpr(gsrc), mkexpr(esrc)) ); in dis_SHLRD_Gv_Ev()
6133 assign( tmpRes, unop(getres, binop(shift, mkexpr(tmpL), mkexpr(tmpSH)) ) ); in dis_SHLRD_Gv_Ev()
6134 assign( tmpSubSh, in dis_SHLRD_Gv_Ev()
6199 assign( t_bitno0, widenSto32(getIReg(sz, gregOfRM(modrm))) ); in dis_bt_G_E()
6212 assign( t_esp, binop(Iop_Sub32, getIReg(4, R_ESP), mkU32(128)) ); in dis_bt_G_E()
6218 assign( t_addr0, mkexpr(t_esp) ); in dis_bt_G_E()
6222 assign( t_bitno1, binop(Iop_And32, in dis_bt_G_E()
6229 assign( t_bitno1, mkexpr(t_bitno0) ); in dis_bt_G_E()
6238 assign( t_addr1, in dis_bt_G_E()
6245 assign( t_bitno2, in dis_bt_G_E()
6253 assign( t_mask, binop(Iop_Shl8, mkU8(1), mkexpr(t_bitno2)) ); in dis_bt_G_E()
6258 assign( t_fetched, loadLE(Ity_I8, mkexpr(t_addr1)) ); in dis_bt_G_E()
6263 assign( t_new, in dis_bt_G_E()
6267 assign( t_new, in dis_bt_G_E()
6271 assign( t_new, in dis_bt_G_E()
6342 assign( src, getIReg(sz, eregOfRM(modrm)) ); in dis_bs_E_G()
6347 assign( src, loadLE(ty, mkexpr(addr)) ); in dis_bs_E_G()
6357 assign( src8, in dis_bs_E_G()
6397 assign( src32, unop(Iop_16Uto32, mkexpr(src)) ); in dis_bs_E_G()
6399 assign( src32, mkexpr(src) ); in dis_bs_E_G()
6402 assign( dst32, in dis_bs_E_G()
6416 assign( dst, unop(Iop_32to16, mkexpr(dst32)) ); in dis_bs_E_G()
6418 assign( dst, mkexpr(dst32) ); in dis_bs_E_G()
6434 assign( t1, getIReg(sz, R_EAX) ); in codegen_xchg_eAX_Reg()
6435 assign( t2, getIReg(sz, reg) ); in codegen_xchg_eAX_Reg()
6454 assign( oldflags, mk_x86g_calculate_eflags_all() ); in codegen_SAHF()
6483 assign( flags, mk_x86g_calculate_eflags_all() ); in codegen_LAHF()
6528 assign( dest, getIReg(size, eregOfRM(rm)) ); in dis_cmpxchg_G_E()
6530 assign( src, getIReg(size, gregOfRM(rm)) ); in dis_cmpxchg_G_E()
6531 assign( acc, getIReg(size, R_EAX) ); in dis_cmpxchg_G_E()
6533 assign( cond8, unop(Iop_1Uto8, mk_x86g_calculate_condition(X86CondZ)) ); in dis_cmpxchg_G_E()
6534 assign( dest2, IRExpr_Mux0X(mkexpr(cond8), mkexpr(dest), mkexpr(src)) ); in dis_cmpxchg_G_E()
6535 assign( acc2, IRExpr_Mux0X(mkexpr(cond8), mkexpr(dest), mkexpr(acc)) ); in dis_cmpxchg_G_E()
6545 assign( dest, loadLE(ty, mkexpr(addr)) ); in dis_cmpxchg_G_E()
6547 assign( src, getIReg(size, gregOfRM(rm)) ); in dis_cmpxchg_G_E()
6548 assign( acc, getIReg(size, R_EAX) ); in dis_cmpxchg_G_E()
6550 assign( cond8, unop(Iop_1Uto8, mk_x86g_calculate_condition(X86CondZ)) ); in dis_cmpxchg_G_E()
6551 assign( dest2, IRExpr_Mux0X(mkexpr(cond8), mkexpr(dest), mkexpr(src)) ); in dis_cmpxchg_G_E()
6552 assign( acc2, IRExpr_Mux0X(mkexpr(cond8), mkexpr(dest), mkexpr(acc)) ); in dis_cmpxchg_G_E()
6566 assign( src, getIReg(size, gregOfRM(rm)) ); in dis_cmpxchg_G_E()
6567 assign( acc, getIReg(size, R_EAX) ); in dis_cmpxchg_G_E()
6573 assign( cond8, unop(Iop_1Uto8, mk_x86g_calculate_condition(X86CondZ)) ); in dis_cmpxchg_G_E()
6574 assign( acc2, IRExpr_Mux0X(mkexpr(cond8), mkexpr(dest), mkexpr(acc)) ); in dis_cmpxchg_G_E()
6617 assign( tmps, getIReg(sz, eregOfRM(rm)) ); in dis_cmov_E_G()
6618 assign( tmpd, getIReg(sz, gregOfRM(rm)) ); in dis_cmov_E_G()
6636 assign( tmps, loadLE(ty, mkexpr(addr)) ); in dis_cmov_E_G()
6637 assign( tmpd, getIReg(sz, gregOfRM(rm)) ); in dis_cmov_E_G()
6681 assign( tmpd, getIReg(sz, eregOfRM(rm))); in dis_xadd_G_E()
6682 assign( tmpt0, getIReg(sz, gregOfRM(rm)) ); in dis_xadd_G_E()
6683 assign( tmpt1, binop(mkSizedOp(ty,Iop_Add8), in dis_xadd_G_E()
6697 assign( tmpd, loadLE(ty, mkexpr(addr)) ); in dis_xadd_G_E()
6698 assign( tmpt0, getIReg(sz, gregOfRM(rm)) ); in dis_xadd_G_E()
6699 assign( tmpt1, binop(mkSizedOp(ty,Iop_Add8), in dis_xadd_G_E()
6712 assign( tmpd, loadLE(ty, mkexpr(addr)) ); in dis_xadd_G_E()
6713 assign( tmpt0, getIReg(sz, gregOfRM(rm)) ); in dis_xadd_G_E()
6714 assign( tmpt1, binop(mkSizedOp(ty,Iop_Add8), in dis_xadd_G_E()
6790 assign( t1, getSReg(sreg) ); in dis_push_segreg()
6791 assign( ta, binop(Iop_Sub32, getIReg(4, R_ESP), mkU32(sz)) ); in dis_push_segreg()
6805 assign( ta, getIReg(4, R_ESP) ); in dis_pop_segreg()
6806 assign( t1, loadLE(Ity_I16, mkexpr(ta)) ); in dis_pop_segreg()
6817 assign(t1, getIReg(4,R_ESP)); in dis_ret()
6818 assign(t2, loadLE(Ity_I32,mkexpr(t1))); in dis_ret()
6906 assign( epart, unop( Iop_32UtoV128, in dis_SSE_E_to_G_lo32()
6941 assign( epart, unop( Iop_64UtoV128, in dis_SSE_E_to_G_lo64()
6999 assign( oldG0, getXMMReg(gregOfRM(rm)) ); in dis_SSE_E_to_G_unary_lo32()
7002 assign( oldG1, in dis_SSE_E_to_G_unary_lo32()
7013 assign( oldG1, in dis_SSE_E_to_G_unary_lo32()
7042 assign( oldG0, getXMMReg(gregOfRM(rm)) ); in dis_SSE_E_to_G_unary_lo64()
7045 assign( oldG1, in dis_SSE_E_to_G_unary_lo64()
7056 assign( oldG1, in dis_SSE_E_to_G_unary_lo64()
7175 assign( plain, binop(op, getXMMReg(gregOfRM(rm)), in dis_SSEcmp_E_to_G()
7186 assign( plain, in dis_SSEcmp_E_to_G()
7236 assign( amt, getXMMRegLane32(eregOfRM(rm), 0) ); in dis_SSE_shiftG_byE()
7243 assign( amt, loadLE(Ity_I32, mkexpr(addr)) ); in dis_SSE_shiftG_byE()
7249 assign( g0, getXMMReg(gregOfRM(rm)) ); in dis_SSE_shiftG_byE()
7250 assign( amt8, unop(Iop_32to8, mkexpr(amt)) ); in dis_SSE_shiftG_byE()
7267 assign( in dis_SSE_shiftG_byE()
7277 assign( in dis_SSE_shiftG_byE()
7313 assign( e0, getXMMReg(eregOfRM(rm)) ); in dis_SSE_shiftE_imm()
7330 assign( e1, amt >= size in dis_SSE_shiftE_imm()
7336 assign( e1, amt >= size in dis_SSE_shiftE_imm()
7374 assign( hi64, unop(Iop_V128HIto64, mkexpr(t128)) ); in breakup128to32s()
7375 assign( lo64, unop(Iop_V128to64, mkexpr(t128)) ); in breakup128to32s()
7386 assign( *t0, unop(Iop_64to32, mkexpr(lo64)) ); in breakup128to32s()
7387 assign( *t1, unop(Iop_64HIto32, mkexpr(lo64)) ); in breakup128to32s()
7388 assign( *t2, unop(Iop_64to32, mkexpr(hi64)) ); in breakup128to32s()
7389 assign( *t3, unop(Iop_64HIto32, mkexpr(hi64)) ); in breakup128to32s()
7413 assign( hi32, unop(Iop_64HIto32, mkexpr(t64)) ); in breakup64to16s()
7414 assign( lo32, unop(Iop_64to32, mkexpr(t64)) ); in breakup64to16s()
7425 assign( *t0, unop(Iop_32to16, mkexpr(lo32)) ); in breakup64to16s()
7426 assign( *t1, unop(Iop_32HIto16, mkexpr(lo32)) ); in breakup64to16s()
7427 assign( *t2, unop(Iop_32to16, mkexpr(hi32)) ); in breakup64to16s()
7428 assign( *t3, unop(Iop_32HIto16, mkexpr(hi32)) ); in breakup64to16s()
7549 assign(aa, aax); in dis_PMULHRSW_helper()
7550 assign(bb, bbx); in dis_PMULHRSW_helper()
7551 assign( aahi32s, in dis_PMULHRSW_helper()
7555 assign( aalo32s, in dis_PMULHRSW_helper()
7559 assign( bbhi32s, in dis_PMULHRSW_helper()
7563 assign( bblo32s, in dis_PMULHRSW_helper()
7567 assign(one32x2, mkU64( (1ULL << 32) + 1 )); in dis_PMULHRSW_helper()
7568 assign( in dis_PMULHRSW_helper()
7584 assign( in dis_PMULHRSW_helper()
7629 assign( aa, aax ); in dis_PSIGN_helper()
7630 assign( bb, bbx ); in dis_PSIGN_helper()
7631 assign( zero, mkU64(0) ); in dis_PSIGN_helper()
7632 assign( bbNeg, binop(opSub, mkexpr(zero), mkexpr(bb)) ); in dis_PSIGN_helper()
7633 assign( negMask, binop(opCmpGTS, mkexpr(zero), mkexpr(aa)) ); in dis_PSIGN_helper()
7634 assign( posMask, binop(opCmpGTS, mkexpr(aa), mkexpr(zero)) ); in dis_PSIGN_helper()
7669 assign( aa, aax ); in dis_PABS_helper()
7670 assign( negMask, binop(opSarN, mkexpr(aa), mkU8(8*laneszB-1)) ); in dis_PABS_helper()
7671 assign( posMask, unop(Iop_Not64, mkexpr(negMask)) ); in dis_PABS_helper()
7672 assign( zero, mkU64(0) ); in dis_PABS_helper()
7673 assign( aaNeg, binop(opSub, mkexpr(zero), mkexpr(aa)) ); in dis_PABS_helper()
7951 assign(t1, getIReg(4,R_EAX)); in disInstr_X86_WRK()
7953 assign(t2, binop(Iop_Sub32, getIReg(4,R_ESP), mkU32(4))); in disInstr_X86_WRK()
8291 assign( argR, getXMMRegLane32F( eregOfRM(modrm), 0/*lowest lane*/ ) ); in disInstr_X86_WRK()
8297 assign( argR, loadLE(Ity_F32, mkexpr(addr)) ); in disInstr_X86_WRK()
8302 assign( argL, getXMMRegLane32F( gregOfRM(modrm), 0/*lowest lane*/ ) ); in disInstr_X86_WRK()
8330 assign( arg64, getMMXReg(eregOfRM(modrm)) ); in disInstr_X86_WRK()
8336 assign( arg64, loadLE(Ity_I64, mkexpr(addr)) ); in disInstr_X86_WRK()
8342 assign( rmode, get_sse_roundingmode() ); in disInstr_X86_WRK()
8370 assign( arg32, getIReg(4, eregOfRM(modrm)) ); in disInstr_X86_WRK()
8376 assign( arg32, loadLE(Ity_I32, mkexpr(addr)) ); in disInstr_X86_WRK()
8382 assign( rmode, get_sse_roundingmode() ); in disInstr_X86_WRK()
8409 assign(f32lo, getXMMRegLane32F(eregOfRM(modrm), 0)); in disInstr_X86_WRK()
8410 assign(f32hi, getXMMRegLane32F(eregOfRM(modrm), 1)); in disInstr_X86_WRK()
8416 assign(f32lo, loadLE(Ity_F32, mkexpr(addr))); in disInstr_X86_WRK()
8417 assign(f32hi, loadLE(Ity_F32, binop( Iop_Add32, in disInstr_X86_WRK()
8427 assign(rmode, mkU32((UInt)Irrm_ZERO) ); in disInstr_X86_WRK()
8429 assign( rmode, get_sse_roundingmode() ); in disInstr_X86_WRK()
8432 assign( in disInstr_X86_WRK()
8462 assign(f32lo, getXMMRegLane32F(eregOfRM(modrm), 0)); in disInstr_X86_WRK()
8468 assign(f32lo, loadLE(Ity_F32, mkexpr(addr))); in disInstr_X86_WRK()
8476 assign( rmode, mkU32((UInt)Irrm_ZERO) ); in disInstr_X86_WRK()
8478 assign( rmode, get_sse_roundingmode() ); in disInstr_X86_WRK()
8526 assign( t64, mkIRExprCCall( in disInstr_X86_WRK()
8535 assign( ew, unop(Iop_64HIto32, mkexpr(t64) ) ); in disInstr_X86_WRK()
8715 assign( t0, binop( Iop_And32, in disInstr_X86_WRK()
8718 assign( t1, binop( Iop_And32, in disInstr_X86_WRK()
8721 assign( t2, binop( Iop_And32, in disInstr_X86_WRK()
8724 assign( t3, binop( Iop_And32, in disInstr_X86_WRK()
8868 assign(sV, getMMXReg(eregOfRM(modrm))); in disInstr_X86_WRK()
8871 case 0: assign(t5, mkexpr(t0)); break; in disInstr_X86_WRK()
8872 case 1: assign(t5, mkexpr(t1)); break; in disInstr_X86_WRK()
8873 case 2: assign(t5, mkexpr(t2)); break; in disInstr_X86_WRK()
8874 case 3: assign(t5, mkexpr(t3)); break; in disInstr_X86_WRK()
8901 assign(t5, getMMXReg(gregOfRM(modrm))); in disInstr_X86_WRK()
8905 assign(t4, getIReg(2, eregOfRM(modrm))); in disInstr_X86_WRK()
8915 assign(t4, loadLE(Ity_I16, mkexpr(addr))); in disInstr_X86_WRK()
8922 case 0: assign(t6, mk64from16s(t3,t2,t1,t4)); break; in disInstr_X86_WRK()
8923 case 1: assign(t6, mk64from16s(t3,t2,t4,t0)); break; in disInstr_X86_WRK()
8924 case 2: assign(t6, mk64from16s(t3,t4,t1,t0)); break; in disInstr_X86_WRK()
8925 case 3: assign(t6, mk64from16s(t4,t2,t1,t0)); break; in disInstr_X86_WRK()
8978 assign(t0, getMMXReg(eregOfRM(modrm))); in disInstr_X86_WRK()
8979 assign(t1, mkIRExprCCall( in disInstr_X86_WRK()
9072 assign( sV, getMMXReg(eregOfRM(modrm)) ); in disInstr_X86_WRK()
9080 assign( sV, loadLE(Ity_I64, mkexpr(addr)) ); in disInstr_X86_WRK()
9091 assign(dV, in disInstr_X86_WRK()
9153 assign( dV, getXMMReg(gregOfRM(modrm)) ); in disInstr_X86_WRK()
9156 assign( sV, getXMMReg(eregOfRM(modrm)) ); in disInstr_X86_WRK()
9164 assign( sV, loadLE(Ity_V128, mkexpr(addr)) ); in disInstr_X86_WRK()
9254 assign( dV, getXMMReg(gregOfRM(modrm)) ); in disInstr_X86_WRK()
9257 assign( sV, getXMMReg(eregOfRM(modrm)) ); in disInstr_X86_WRK()
9264 assign( sV, loadLE(Ity_V128, mkexpr(addr)) ); in disInstr_X86_WRK()
9349 assign( argR, getXMMRegLane64F( eregOfRM(modrm), 0/*lowest lane*/ ) ); in disInstr_X86_WRK()
9355 assign( argR, loadLE(Ity_F64, mkexpr(addr)) ); in disInstr_X86_WRK()
9360 assign( argL, getXMMRegLane64F( gregOfRM(modrm), 0/*lowest lane*/ ) ); in disInstr_X86_WRK()
9384 assign( arg64, getXMMRegLane64(eregOfRM(modrm), 0) ); in disInstr_X86_WRK()
9390 assign( arg64, loadLE(Ity_I64, mkexpr(addr)) ); in disInstr_X86_WRK()
9417 assign( argV, getXMMReg(eregOfRM(modrm)) ); in disInstr_X86_WRK()
9423 assign( argV, loadLE(Ity_V128, mkexpr(addr)) ); in disInstr_X86_WRK()
9429 assign( rmode, get_sse_roundingmode() ); in disInstr_X86_WRK()
9455 assign( argV, getXMMReg(eregOfRM(modrm)) ); in disInstr_X86_WRK()
9461 assign( argV, loadLE(Ity_V128, mkexpr(addr)) ); in disInstr_X86_WRK()
9467 assign( rmode, get_sse_roundingmode() ); in disInstr_X86_WRK()
9470 assign( t0, unop(Iop_ReinterpI64asF64, in disInstr_X86_WRK()
9472 assign( t1, unop(Iop_ReinterpI64asF64, in disInstr_X86_WRK()
9505 assign(f64lo, getXMMRegLane64F(eregOfRM(modrm), 0)); in disInstr_X86_WRK()
9506 assign(f64hi, getXMMRegLane64F(eregOfRM(modrm), 1)); in disInstr_X86_WRK()
9512 assign(f64lo, loadLE(Ity_F64, mkexpr(addr))); in disInstr_X86_WRK()
9513 assign(f64hi, loadLE(Ity_F64, binop( Iop_Add32, in disInstr_X86_WRK()
9523 assign(rmode, mkU32((UInt)Irrm_ZERO) ); in disInstr_X86_WRK()
9525 assign( rmode, get_sse_roundingmode() ); in disInstr_X86_WRK()
9528 assign( in disInstr_X86_WRK()
9551 assign( argV, getXMMReg(eregOfRM(modrm)) ); in disInstr_X86_WRK()
9557 assign( argV, loadLE(Ity_V128, mkexpr(addr)) ); in disInstr_X86_WRK()
9563 assign( rmode, get_sse_roundingmode() ); in disInstr_X86_WRK()
9566 assign( t0, unop(Iop_ReinterpI64asF64, in disInstr_X86_WRK()
9568 assign( t1, unop(Iop_ReinterpI64asF64, in disInstr_X86_WRK()
9599 assign( arg64, getMMXReg(eregOfRM(modrm)) ); in disInstr_X86_WRK()
9605 assign( arg64, loadLE(Ity_I64, mkexpr(addr)) ); in disInstr_X86_WRK()
9632 assign( argV, getXMMReg(eregOfRM(modrm)) ); in disInstr_X86_WRK()
9638 assign( argV, loadLE(Ity_V128, mkexpr(addr)) ); in disInstr_X86_WRK()
9644 assign( rmode, get_sse_roundingmode() ); in disInstr_X86_WRK()
9673 assign( f32lo, getXMMRegLane32F(eregOfRM(modrm), 0) ); in disInstr_X86_WRK()
9674 assign( f32hi, getXMMRegLane32F(eregOfRM(modrm), 1) ); in disInstr_X86_WRK()
9680 assign( f32lo, loadLE(Ity_F32, mkexpr(addr)) ); in disInstr_X86_WRK()
9681 assign( f32hi, loadLE(Ity_F32, in disInstr_X86_WRK()
9710 assign(f64lo, getXMMRegLane64F(eregOfRM(modrm), 0)); in disInstr_X86_WRK()
9716 assign(f64lo, loadLE(Ity_F64, mkexpr(addr))); in disInstr_X86_WRK()
9724 assign( rmode, mkU32((UInt)Irrm_ZERO) ); in disInstr_X86_WRK()
9726 assign( rmode, get_sse_roundingmode() ); in disInstr_X86_WRK()
9745 assign(f64lo, getXMMRegLane64F(eregOfRM(modrm), 0)); in disInstr_X86_WRK()
9750 assign(f64lo, loadLE(Ity_F64, mkexpr(addr))); in disInstr_X86_WRK()
9756 assign( rmode, get_sse_roundingmode() ); in disInstr_X86_WRK()
9773 assign( arg32, getIReg(4, eregOfRM(modrm)) ); in disInstr_X86_WRK()
9779 assign( arg32, loadLE(Ity_I32, mkexpr(addr)) ); in disInstr_X86_WRK()
9801 assign(f32lo, getXMMRegLane32F(eregOfRM(modrm), 0)); in disInstr_X86_WRK()
9806 assign(f32lo, loadLE(Ity_F32, mkexpr(addr))); in disInstr_X86_WRK()
9826 assign( argV, getXMMReg(eregOfRM(modrm)) ); in disInstr_X86_WRK()
9832 assign( argV, loadLE(Ity_V128, mkexpr(addr)) ); in disInstr_X86_WRK()
9838 assign( rmode, mkU32((UInt)Irrm_ZERO) ); in disInstr_X86_WRK()
9842 assign( t0, unop(Iop_ReinterpI64asF64, in disInstr_X86_WRK()
9844 assign( t1, unop(Iop_ReinterpI64asF64, in disInstr_X86_WRK()
9870 assign( argV, getXMMReg(eregOfRM(modrm)) ); in disInstr_X86_WRK()
9876 assign( argV, loadLE(Ity_V128, mkexpr(addr)) ); in disInstr_X86_WRK()
9882 assign( rmode, mkU32((UInt)Irrm_ZERO) ); in disInstr_X86_WRK()
10204 assign( t0, binop( Iop_And32, in disInstr_X86_WRK()
10207 assign( t1, binop( Iop_And32, in disInstr_X86_WRK()
10230 assign( addr, handleSegOverride( sorb, getIReg(4, R_EDI) )); in disInstr_X86_WRK()
10231 assign( regD, getXMMReg( gregOfRM(modrm) )); in disInstr_X86_WRK()
10236 assign( in disInstr_X86_WRK()
10245 assign( olddata, loadLE( Ity_V128, mkexpr(addr) )); in disInstr_X86_WRK()
10246 assign( newdata, in disInstr_X86_WRK()
10414 assign( dV, getXMMReg(gregOfRM(modrm)) ); in disInstr_X86_WRK()
10417 assign( sV, getXMMReg(eregOfRM(modrm)) ); in disInstr_X86_WRK()
10425 assign( sV, loadLE(Ity_V128, mkexpr(addr)) ); in disInstr_X86_WRK()
10433 assign( d1, unop(Iop_V128HIto64, mkexpr(dV)) ); in disInstr_X86_WRK()
10434 assign( d0, unop(Iop_V128to64, mkexpr(dV)) ); in disInstr_X86_WRK()
10435 assign( s1, unop(Iop_V128HIto64, mkexpr(sV)) ); in disInstr_X86_WRK()
10436 assign( s0, unop(Iop_V128to64, mkexpr(sV)) ); in disInstr_X86_WRK()
10493 assign( dV, getXMMReg(gregOfRM(modrm)) ); in disInstr_X86_WRK()
10496 assign( sV, getXMMReg(eregOfRM(modrm)) ); in disInstr_X86_WRK()
10503 assign( sV, loadLE(Ity_V128, mkexpr(addr)) ); in disInstr_X86_WRK()
10510 assign( d1, unop(Iop_V128HIto64, mkexpr(dV)) ); in disInstr_X86_WRK()
10511 assign( d0, unop(Iop_V128to64, mkexpr(dV)) ); in disInstr_X86_WRK()
10512 assign( s1, unop(Iop_V128HIto64, mkexpr(sV)) ); in disInstr_X86_WRK()
10513 assign( s0, unop(Iop_V128to64, mkexpr(sV)) ); in disInstr_X86_WRK()
10696 assign(t5, getXMMReg(eregOfRM(modrm))); in disInstr_X86_WRK()
10699 case 0: assign(t4, unop(Iop_32to16, mkexpr(t0))); break; in disInstr_X86_WRK()
10700 case 1: assign(t4, unop(Iop_32HIto16, mkexpr(t0))); break; in disInstr_X86_WRK()
10701 case 2: assign(t4, unop(Iop_32to16, mkexpr(t1))); break; in disInstr_X86_WRK()
10702 case 3: assign(t4, unop(Iop_32HIto16, mkexpr(t1))); break; in disInstr_X86_WRK()
10703 case 4: assign(t4, unop(Iop_32to16, mkexpr(t2))); break; in disInstr_X86_WRK()
10704 case 5: assign(t4, unop(Iop_32HIto16, mkexpr(t2))); break; in disInstr_X86_WRK()
10705 case 6: assign(t4, unop(Iop_32to16, mkexpr(t3))); break; in disInstr_X86_WRK()
10706 case 7: assign(t4, unop(Iop_32HIto16, mkexpr(t3))); break; in disInstr_X86_WRK()
10727 assign(t4, getIReg(2, eregOfRM(modrm))); in disInstr_X86_WRK()
10737 assign(t4, loadLE(Ity_I16, mkexpr(addr))); in disInstr_X86_WRK()
10761 assign( s1V, getXMMReg(eregOfRM(modrm)) ); in disInstr_X86_WRK()
10767 assign( s1V, loadLE(Ity_V128, mkexpr(addr)) ); in disInstr_X86_WRK()
10772 assign( s2V, getXMMReg(gregOfRM(modrm)) ); in disInstr_X86_WRK()
10773 assign( s1Hi, unop(Iop_V128HIto64, mkexpr(s1V)) ); in disInstr_X86_WRK()
10774 assign( s1Lo, unop(Iop_V128to64, mkexpr(s1V)) ); in disInstr_X86_WRK()
10775 assign( s2Hi, unop(Iop_V128HIto64, mkexpr(s2V)) ); in disInstr_X86_WRK()
10776 assign( s2Lo, unop(Iop_V128to64, mkexpr(s2V)) ); in disInstr_X86_WRK()
10777 assign( dHi, mkIRExprCCall( in disInstr_X86_WRK()
10783 assign( dLo, mkIRExprCCall( in disInstr_X86_WRK()
10789 assign( dV, binop(Iop_64HLtoV128, mkexpr(dHi), mkexpr(dLo))) ; in disInstr_X86_WRK()
10832 assign(t0, getXMMRegLane64(eregOfRM(modrm), 0)); in disInstr_X86_WRK()
10833 assign(t1, getXMMRegLane64(eregOfRM(modrm), 1)); in disInstr_X86_WRK()
10835 assign(t5, mkIRExprCCall( in disInstr_X86_WRK()
10881 assign( dV, getMMXReg(gregOfRM(modrm)) ); in disInstr_X86_WRK()
10884 assign( sV, getMMXReg(eregOfRM(modrm)) ); in disInstr_X86_WRK()
10890 assign( sV, loadLE(Ity_I64, mkexpr(addr)) ); in disInstr_X86_WRK()
10896 assign( t0, unop(Iop_64to32, mkexpr(dV)) ); in disInstr_X86_WRK()
10897 assign( t1, unop(Iop_64to32, mkexpr(sV)) ); in disInstr_X86_WRK()
10917 assign( dV, getXMMReg(gregOfRM(modrm)) ); in disInstr_X86_WRK()
10920 assign( sV, getXMMReg(eregOfRM(modrm)) ); in disInstr_X86_WRK()
10926 assign( sV, loadLE(Ity_V128, mkexpr(addr)) ); in disInstr_X86_WRK()
10935 assign( t0, binop( Iop_MullU32, mkexpr(d0), mkexpr(s0)) ); in disInstr_X86_WRK()
10937 assign( t1, binop( Iop_MullU32, mkexpr(d2), mkexpr(s2)) ); in disInstr_X86_WRK()
10962 assign( s1V, getXMMReg(eregOfRM(modrm)) ); in disInstr_X86_WRK()
10968 assign( s1V, loadLE(Ity_V128, mkexpr(addr)) ); in disInstr_X86_WRK()
10973 assign( s2V, getXMMReg(gregOfRM(modrm)) ); in disInstr_X86_WRK()
10974 assign( s1Hi, unop(Iop_V128HIto64, mkexpr(s1V)) ); in disInstr_X86_WRK()
10975 assign( s1Lo, unop(Iop_V128to64, mkexpr(s1V)) ); in disInstr_X86_WRK()
10976 assign( s2Hi, unop(Iop_V128HIto64, mkexpr(s2V)) ); in disInstr_X86_WRK()
10977 assign( s2Lo, unop(Iop_V128to64, mkexpr(s2V)) ); in disInstr_X86_WRK()
10978 assign( dHi, mkIRExprCCall( in disInstr_X86_WRK()
10984 assign( dLo, mkIRExprCCall( in disInstr_X86_WRK()
10990 assign( dV, binop(Iop_64HLtoV128, mkexpr(dHi), mkexpr(dLo))) ; in disInstr_X86_WRK()
11004 assign( sV, getXMMReg(eregOfRM(modrm)) ); in disInstr_X86_WRK()
11012 assign( sV, loadLE(Ity_V128, mkexpr(addr)) ); in disInstr_X86_WRK()
11023 assign(dV, in disInstr_X86_WRK()
11044 assign( sV, getXMMReg(eregOfRM(modrm)) ); in disInstr_X86_WRK()
11052 assign( sV, loadLE(Ity_V128, mkexpr(addr)) ); in disInstr_X86_WRK()
11059 assign( sVhi, unop(Iop_V128HIto64, mkexpr(sV)) ); in disInstr_X86_WRK()
11064 assign(dVhi, in disInstr_X86_WRK()
11068 assign(dV, binop( Iop_64HLtoV128, in disInstr_X86_WRK()
11088 assign( sV, getXMMReg(eregOfRM(modrm)) ); in disInstr_X86_WRK()
11096 assign( sV, loadLE(Ity_V128, mkexpr(addr)) ); in disInstr_X86_WRK()
11103 assign( sVlo, unop(Iop_V128to64, mkexpr(sV)) ); in disInstr_X86_WRK()
11108 assign(dVlo, in disInstr_X86_WRK()
11112 assign(dV, binop( Iop_64HLtoV128, in disInstr_X86_WRK()
11157 assign( sV, getXMMReg(reg) ); in disInstr_X86_WRK()
11158 assign( hi64, unop(Iop_V128HIto64, mkexpr(sV)) ); in disInstr_X86_WRK()
11159 assign( lo64, unop(Iop_V128to64, mkexpr(sV)) ); in disInstr_X86_WRK()
11162 assign( lo64r, mkexpr(lo64) ); in disInstr_X86_WRK()
11163 assign( hi64r, mkexpr(hi64) ); in disInstr_X86_WRK()
11167 assign( lo64r, mkU64(0) ); in disInstr_X86_WRK()
11168 assign( hi64r, mkexpr(lo64) ); in disInstr_X86_WRK()
11172 assign( lo64r, mkU64(0) ); in disInstr_X86_WRK()
11173 assign( hi64r, binop( Iop_Shl64, in disInstr_X86_WRK()
11177 assign( lo64r, binop( Iop_Shl64, in disInstr_X86_WRK()
11180 assign( hi64r, in disInstr_X86_WRK()
11189 assign( dV, binop(Iop_64HLtoV128, mkexpr(hi64r), mkexpr(lo64r)) ); in disInstr_X86_WRK()
11287 assign( sV, getXMMReg(reg) ); in disInstr_X86_WRK()
11288 assign( hi64, unop(Iop_V128HIto64, mkexpr(sV)) ); in disInstr_X86_WRK()
11289 assign( lo64, unop(Iop_V128to64, mkexpr(sV)) ); in disInstr_X86_WRK()
11292 assign( lo64r, mkexpr(lo64) ); in disInstr_X86_WRK()
11293 assign( hi64r, mkexpr(hi64) ); in disInstr_X86_WRK()
11297 assign( hi64r, mkU64(0) ); in disInstr_X86_WRK()
11298 assign( lo64r, mkexpr(hi64) ); in disInstr_X86_WRK()
11302 assign( hi64r, mkU64(0) ); in disInstr_X86_WRK()
11303 assign( lo64r, binop( Iop_Shr64, in disInstr_X86_WRK()
11307 assign( hi64r, binop( Iop_Shr64, in disInstr_X86_WRK()
11310 assign( lo64r, in disInstr_X86_WRK()
11320 assign( dV, binop(Iop_64HLtoV128, mkexpr(hi64r), mkexpr(lo64r)) ); in disInstr_X86_WRK()
11568 assign( sV, getXMMReg( eregOfRM(modrm)) ); in disInstr_X86_WRK()
11576 assign( sV, loadLE(Ity_V128, mkexpr(addr)) ); in disInstr_X86_WRK()
11598 assign( sV, getXMMReg( eregOfRM(modrm)) ); in disInstr_X86_WRK()
11602 assign ( d0, unop(Iop_V128to64, mkexpr(sV)) ); in disInstr_X86_WRK()
11605 assign( d0, loadLE(Ity_I64, mkexpr(addr)) ); in disInstr_X86_WRK()
11626 assign( eV, getXMMReg( eregOfRM(modrm)) ); in disInstr_X86_WRK()
11632 assign( eV, loadLE(Ity_V128, mkexpr(addr)) ); in disInstr_X86_WRK()
11638 assign( gV, getXMMReg(gregOfRM(modrm)) ); in disInstr_X86_WRK()
11640 assign( addV, binop(Iop_Add32Fx4, mkexpr(gV), mkexpr(eV)) ); in disInstr_X86_WRK()
11641 assign( subV, binop(Iop_Sub32Fx4, mkexpr(gV), mkexpr(eV)) ); in disInstr_X86_WRK()
11661 assign( eV, getXMMReg( eregOfRM(modrm)) ); in disInstr_X86_WRK()
11667 assign( eV, loadLE(Ity_V128, mkexpr(addr)) ); in disInstr_X86_WRK()
11673 assign( gV, getXMMReg(gregOfRM(modrm)) ); in disInstr_X86_WRK()
11675 assign( addV, binop(Iop_Add64Fx2, mkexpr(gV), mkexpr(eV)) ); in disInstr_X86_WRK()
11676 assign( subV, binop(Iop_Sub64Fx2, mkexpr(gV), mkexpr(eV)) ); in disInstr_X86_WRK()
11678 assign( a1, unop(Iop_V128HIto64, mkexpr(addV) )); in disInstr_X86_WRK()
11679 assign( s0, unop(Iop_V128to64, mkexpr(subV) )); in disInstr_X86_WRK()
11701 assign( eV, getXMMReg( eregOfRM(modrm)) ); in disInstr_X86_WRK()
11707 assign( eV, loadLE(Ity_V128, mkexpr(addr)) ); in disInstr_X86_WRK()
11713 assign( gV, getXMMReg(gregOfRM(modrm)) ); in disInstr_X86_WRK()
11718 assign( leftV, mk128from32s( e2, e0, g2, g0 ) ); in disInstr_X86_WRK()
11719 assign( rightV, mk128from32s( e3, e1, g3, g1 ) ); in disInstr_X86_WRK()
11743 assign( eV, getXMMReg( eregOfRM(modrm)) ); in disInstr_X86_WRK()
11749 assign( eV, loadLE(Ity_V128, mkexpr(addr)) ); in disInstr_X86_WRK()
11755 assign( gV, getXMMReg(gregOfRM(modrm)) ); in disInstr_X86_WRK()
11757 assign( e1, unop(Iop_V128HIto64, mkexpr(eV) )); in disInstr_X86_WRK()
11758 assign( e0, unop(Iop_V128to64, mkexpr(eV) )); in disInstr_X86_WRK()
11759 assign( g1, unop(Iop_V128HIto64, mkexpr(gV) )); in disInstr_X86_WRK()
11760 assign( g0, unop(Iop_V128to64, mkexpr(gV) )); in disInstr_X86_WRK()
11762 assign( leftV, binop(Iop_64HLtoV128, mkexpr(e0),mkexpr(g0)) ); in disInstr_X86_WRK()
11763 assign( rightV, binop(Iop_64HLtoV128, mkexpr(e1),mkexpr(g1)) ); in disInstr_X86_WRK()
11808 assign( dV, getMMXReg(gregOfRM(modrm)) ); in disInstr_X86_WRK()
11811 assign( sV, getMMXReg(eregOfRM(modrm)) ); in disInstr_X86_WRK()
11817 assign( sV, loadLE(Ity_I64, mkexpr(addr)) ); in disInstr_X86_WRK()
11824 assign( sVoddsSX, in disInstr_X86_WRK()
11826 assign( sVevensSX, in disInstr_X86_WRK()
11830 assign( dVoddsZX, in disInstr_X86_WRK()
11832 assign( dVevensZX, in disInstr_X86_WRK()
11859 assign( dV, getXMMReg(gregOfRM(modrm)) ); in disInstr_X86_WRK()
11862 assign( sV, getXMMReg(eregOfRM(modrm)) ); in disInstr_X86_WRK()
11869 assign( sV, loadLE(Ity_V128, mkexpr(addr)) ); in disInstr_X86_WRK()
11876 assign( sVoddsSX, in disInstr_X86_WRK()
11878 assign( sVevensSX, in disInstr_X86_WRK()
11882 assign( dVoddsZX, in disInstr_X86_WRK()
11884 assign( dVevensZX, in disInstr_X86_WRK()
11941 assign( dV, getMMXReg(gregOfRM(modrm)) ); in disInstr_X86_WRK()
11944 assign( sV, getMMXReg(eregOfRM(modrm)) ); in disInstr_X86_WRK()
11950 assign( sV, loadLE(Ity_I64, mkexpr(addr)) ); in disInstr_X86_WRK()
12010 assign( dV, getXMMReg(gregOfRM(modrm)) ); in disInstr_X86_WRK()
12013 assign( sV, getXMMReg( eregOfRM(modrm)) ); in disInstr_X86_WRK()
12020 assign( sV, loadLE(Ity_V128, mkexpr(addr)) ); in disInstr_X86_WRK()
12026 assign( dHi, unop(Iop_V128HIto64, mkexpr(dV)) ); in disInstr_X86_WRK()
12027 assign( dLo, unop(Iop_V128to64, mkexpr(dV)) ); in disInstr_X86_WRK()
12028 assign( sHi, unop(Iop_V128HIto64, mkexpr(sV)) ); in disInstr_X86_WRK()
12029 assign( sLo, unop(Iop_V128to64, mkexpr(sV)) ); in disInstr_X86_WRK()
12059 assign( dV, getMMXReg(gregOfRM(modrm)) ); in disInstr_X86_WRK()
12062 assign( sV, getMMXReg(eregOfRM(modrm)) ); in disInstr_X86_WRK()
12068 assign( sV, loadLE(Ity_I64, mkexpr(addr)) ); in disInstr_X86_WRK()
12093 assign( dV, getXMMReg(gregOfRM(modrm)) ); in disInstr_X86_WRK()
12096 assign( sV, getXMMReg(eregOfRM(modrm)) ); in disInstr_X86_WRK()
12103 assign( sV, loadLE(Ity_V128, mkexpr(addr)) ); in disInstr_X86_WRK()
12109 assign( dHi, unop(Iop_V128HIto64, mkexpr(dV)) ); in disInstr_X86_WRK()
12110 assign( dLo, unop(Iop_V128to64, mkexpr(dV)) ); in disInstr_X86_WRK()
12111 assign( sHi, unop(Iop_V128HIto64, mkexpr(sV)) ); in disInstr_X86_WRK()
12112 assign( sLo, unop(Iop_V128to64, mkexpr(sV)) ); in disInstr_X86_WRK()
12144 assign( dV, getMMXReg(gregOfRM(modrm)) ); in disInstr_X86_WRK()
12147 assign( sV, getMMXReg(eregOfRM(modrm)) ); in disInstr_X86_WRK()
12153 assign( sV, loadLE(Ity_I64, mkexpr(addr)) ); in disInstr_X86_WRK()
12189 assign( dV, getXMMReg(gregOfRM(modrm)) ); in disInstr_X86_WRK()
12192 assign( sV, getXMMReg(eregOfRM(modrm)) ); in disInstr_X86_WRK()
12199 assign( sV, loadLE(Ity_V128, mkexpr(addr)) ); in disInstr_X86_WRK()
12205 assign( dHi, unop(Iop_V128HIto64, mkexpr(dV)) ); in disInstr_X86_WRK()
12206 assign( dLo, unop(Iop_V128to64, mkexpr(dV)) ); in disInstr_X86_WRK()
12207 assign( sHi, unop(Iop_V128HIto64, mkexpr(sV)) ); in disInstr_X86_WRK()
12208 assign( sLo, unop(Iop_V128to64, mkexpr(sV)) ); in disInstr_X86_WRK()
12241 assign( sV, getMMXReg(eregOfRM(modrm)) ); in disInstr_X86_WRK()
12247 assign( sV, loadLE(Ity_I64, mkexpr(addr)) ); in disInstr_X86_WRK()
12282 assign( sV, getXMMReg(eregOfRM(modrm)) ); in disInstr_X86_WRK()
12289 assign( sV, loadLE(Ity_V128, mkexpr(addr)) ); in disInstr_X86_WRK()
12295 assign( sHi, unop(Iop_V128HIto64, mkexpr(sV)) ); in disInstr_X86_WRK()
12296 assign( sLo, unop(Iop_V128to64, mkexpr(sV)) ); in disInstr_X86_WRK()
12317 assign( dV, getMMXReg(gregOfRM(modrm)) ); in disInstr_X86_WRK()
12320 assign( sV, getMMXReg(eregOfRM(modrm)) ); in disInstr_X86_WRK()
12328 assign( sV, loadLE(Ity_I64, mkexpr(addr)) ); in disInstr_X86_WRK()
12337 assign( res, mkexpr(sV) ); in disInstr_X86_WRK()
12340 assign(res, in disInstr_X86_WRK()
12347 assign( res, mkexpr(dV) ); in disInstr_X86_WRK()
12350 assign( res, binop(Iop_Shr64, mkexpr(dV), mkU8(8*(d32-8))) ); in disInstr_X86_WRK()
12353 assign( res, mkU64(0) ); in disInstr_X86_WRK()
12375 assign( dV, getXMMReg(gregOfRM(modrm)) ); in disInstr_X86_WRK()
12378 assign( sV, getXMMReg(eregOfRM(modrm)) ); in disInstr_X86_WRK()
12387 assign( sV, loadLE(Ity_V128, mkexpr(addr)) ); in disInstr_X86_WRK()
12395 assign( dHi, unop(Iop_V128HIto64, mkexpr(dV)) ); in disInstr_X86_WRK()
12396 assign( dLo, unop(Iop_V128to64, mkexpr(dV)) ); in disInstr_X86_WRK()
12397 assign( sHi, unop(Iop_V128HIto64, mkexpr(sV)) ); in disInstr_X86_WRK()
12398 assign( sLo, unop(Iop_V128to64, mkexpr(sV)) ); in disInstr_X86_WRK()
12401 assign( rHi, mkexpr(sHi) ); in disInstr_X86_WRK()
12402 assign( rLo, mkexpr(sLo) ); in disInstr_X86_WRK()
12405 assign( rHi, dis_PALIGNR_XMM_helper(dLo, sHi, d32) ); in disInstr_X86_WRK()
12406 assign( rLo, dis_PALIGNR_XMM_helper(sHi, sLo, d32) ); in disInstr_X86_WRK()
12409 assign( rHi, mkexpr(dLo) ); in disInstr_X86_WRK()
12410 assign( rLo, mkexpr(sHi) ); in disInstr_X86_WRK()
12413 assign( rHi, dis_PALIGNR_XMM_helper(dHi, dLo, d32-8) ); in disInstr_X86_WRK()
12414 assign( rLo, dis_PALIGNR_XMM_helper(dLo, sHi, d32-8) ); in disInstr_X86_WRK()
12417 assign( rHi, mkexpr(dHi) ); in disInstr_X86_WRK()
12418 assign( rLo, mkexpr(dLo) ); in disInstr_X86_WRK()
12421 assign( rHi, binop(Iop_Shr64, mkexpr(dHi), mkU8(8*(d32-16))) ); in disInstr_X86_WRK()
12422 assign( rLo, dis_PALIGNR_XMM_helper(dHi, dLo, d32-16) ); in disInstr_X86_WRK()
12425 assign( rHi, mkU64(0) ); in disInstr_X86_WRK()
12426 assign( rLo, mkexpr(dHi) ); in disInstr_X86_WRK()
12429 assign( rHi, mkU64(0) ); in disInstr_X86_WRK()
12430 assign( rLo, binop(Iop_Shr64, mkexpr(dHi), mkU8(8*(d32-24))) ); in disInstr_X86_WRK()
12433 assign( rHi, mkU64(0) ); in disInstr_X86_WRK()
12434 assign( rLo, mkU64(0) ); in disInstr_X86_WRK()
12454 assign( dV, getMMXReg(gregOfRM(modrm)) ); in disInstr_X86_WRK()
12457 assign( sV, getMMXReg(eregOfRM(modrm)) ); in disInstr_X86_WRK()
12463 assign( sV, loadLE(Ity_I64, mkexpr(addr)) ); in disInstr_X86_WRK()
12508 assign( dV, getXMMReg(gregOfRM(modrm)) ); in disInstr_X86_WRK()
12511 assign( sV, getXMMReg(eregOfRM(modrm)) ); in disInstr_X86_WRK()
12518 assign( sV, loadLE(Ity_V128, mkexpr(addr)) ); in disInstr_X86_WRK()
12524 assign( dHi, unop(Iop_V128HIto64, mkexpr(dV)) ); in disInstr_X86_WRK()
12525 assign( dLo, unop(Iop_V128to64, mkexpr(dV)) ); in disInstr_X86_WRK()
12526 assign( sHi, unop(Iop_V128HIto64, mkexpr(sV)) ); in disInstr_X86_WRK()
12527 assign( sLo, unop(Iop_V128to64, mkexpr(sV)) ); in disInstr_X86_WRK()
12529 assign( sevens, mkU64(0x0707070707070707ULL) ); in disInstr_X86_WRK()
12539 assign( in disInstr_X86_WRK()
12543 assign( in disInstr_X86_WRK()
12549 assign(sAnd7hi, binop(Iop_And64,mkexpr(sHi),mkexpr(sevens))); in disInstr_X86_WRK()
12551 assign( in disInstr_X86_WRK()
12562 assign(rHi, binop(Iop_And64,mkexpr(permdHi),mkexpr(mask0x80hi)) ); in disInstr_X86_WRK()
12566 assign( in disInstr_X86_WRK()
12570 assign( in disInstr_X86_WRK()
12576 assign(sAnd7lo, binop(Iop_And64,mkexpr(sLo),mkexpr(sevens))); in disInstr_X86_WRK()
12578 assign( in disInstr_X86_WRK()
12589 assign(rLo, binop(Iop_And64,mkexpr(permdLo),mkexpr(mask0x80lo)) ); in disInstr_X86_WRK()
12624 assign( src, in disInstr_X86_WRK()
12636 assign( src, loadLE( isD ? Ity_F64 : Ity_F32, mkexpr(addr) )); in disInstr_X86_WRK()
12648 assign(res, binop(isD ? Iop_RoundF64toInt : Iop_RoundF32toInt, in disInstr_X86_WRK()
12670 assign(src, getIReg(sz, eregOfRM(modrm))); in disInstr_X86_WRK()
12677 assign(src, loadLE(ty, mkexpr(addr))); in disInstr_X86_WRK()
12692 assign(src32, widenUto32(mkexpr(src))); in disInstr_X86_WRK()
12693 assign(res32, widenUto32(mkexpr(res))); in disInstr_X86_WRK()
12696 assign( in disInstr_X86_WRK()
12778 assign(t1, getIReg(4,R_ESP)); in disInstr_X86_WRK()
12779 assign(t2, loadLE(Ity_I32, binop(Iop_Add32,mkexpr(t1),mkU32(0) ))); in disInstr_X86_WRK()
12780 assign(t3, loadLE(Ity_I32, binop(Iop_Add32,mkexpr(t1),mkU32(4) ))); in disInstr_X86_WRK()
12781 assign(t4, loadLE(Ity_I32, binop(Iop_Add32,mkexpr(t1),mkU32(8) ))); in disInstr_X86_WRK()
12814 assign(t1, binop(Iop_Sub32, getIReg(4,R_ESP), mkU32(4))); in disInstr_X86_WRK()
12855 assign(t1, getIReg(4,R_EBP)); in disInstr_X86_WRK()
12859 assign(t2, loadLE(Ity_I32,mkexpr(t1))); in disInstr_X86_WRK()
12879 assign(t1, in disInstr_X86_WRK()
12890 assign(t2, in disInstr_X86_WRK()
12930 assign(t1, in disInstr_X86_WRK()
12940 assign(t2, in disInstr_X86_WRK()
13037 assign( t1, binop(mkSizedOp(ty,Iop_Add8), in disInstr_X86_WRK()
13056 assign( t1, binop(mkSizedOp(ty,Iop_Sub8), in disInstr_X86_WRK()
13337 assign( addr, handleSegOverride(sorb, mkU32(d32)) ); in disInstr_X86_WRK()
13350 assign( addr, handleSegOverride(sorb, mkU32(d32)) ); in disInstr_X86_WRK()
13621 assign(t2, getIReg(4, R_ESP)); in disInstr_X86_WRK()
13622 assign(t1, loadLE(szToITy(sz),mkexpr(t2))); in disInstr_X86_WRK()
13631 assign(t2, getIReg(4, R_ESP)); in disInstr_X86_WRK()
13632 assign(t1, widenUto32(loadLE(szToITy(sz),mkexpr(t2)))); in disInstr_X86_WRK()
13649 assign( t5, getIReg(4, R_ESP) ); in disInstr_X86_WRK()
13682 assign( t1, getIReg(4, R_ESP) ); in disInstr_X86_WRK()
13684 assign( t3, loadLE(ty, mkexpr(t1)) ); in disInstr_X86_WRK()
13727 assign(t1, getIReg(sz, opc-0x50)); in disInstr_X86_WRK()
13728 assign(t2, binop(Iop_Sub32, getIReg(4, R_ESP), mkU32(sz))); in disInstr_X86_WRK()
13744 assign( t1, binop(Iop_Sub32,getIReg(4,R_ESP),mkU32(sz)) ); in disInstr_X86_WRK()
13758 assign( t1, binop(Iop_Sub32,getIReg(4,R_ESP),mkU32(sz)) ); in disInstr_X86_WRK()
13767 assign( t2, binop(Iop_Or32, in disInstr_X86_WRK()
13774 assign( t3, binop(Iop_Or32, in disInstr_X86_WRK()
13783 assign( t4, binop(Iop_Or32, in disInstr_X86_WRK()
13793 assign( t5, binop(Iop_Or32, in disInstr_X86_WRK()
13821 assign( t0, getIReg(4, R_ESP) ); in disInstr_X86_WRK()
13825 assign( t5, binop(Iop_Sub32, mkexpr(t0), mkU32(8*4)) ); in disInstr_X86_WRK()
13905 assign( t0, mk_x86g_calculate_eflags_all() ); in disInstr_X86_WRK()
13908 assign( t1, binop(Iop_And32, mkexpr(t0), in disInstr_X86_WRK()
13913 assign( t1, binop(Iop_Or32, mkexpr(t0), in disInstr_X86_WRK()
13918 assign( t1, binop(Iop_Xor32, mkexpr(t0), in disInstr_X86_WRK()
13936 assign( t0, binop(Iop_And32, in disInstr_X86_WRK()
13939 assign( t1, binop(Iop_Sar32, in disInstr_X86_WRK()
14063 assign(t1, getIReg(sz, eregOfRM(modrm))); in disInstr_X86_WRK()
14064 assign(t2, getIReg(sz, gregOfRM(modrm))); in disInstr_X86_WRK()
14074 assign( t1, loadLE(ty,mkexpr(addr)) ); in disInstr_X86_WRK()
14075 assign( t2, getIReg(sz,gregOfRM(modrm)) ); in disInstr_X86_WRK()
14121 assign(t1, mkU32( abyte & 0xFF )); in disInstr_X86_WRK()
14128 assign(t1, mkU32( abyte & 0xFF )); in disInstr_X86_WRK()
14134 assign(t1, unop(Iop_16Uto32, getIReg(2, R_EDX))); in disInstr_X86_WRK()
14141 assign(t1, unop(Iop_16Uto32, getIReg(2, R_EDX))); in disInstr_X86_WRK()
14169 assign( t1, mkU32( abyte & 0xFF ) ); in disInstr_X86_WRK()
14176 assign( t1, mkU32( abyte & 0xFF ) ); in disInstr_X86_WRK()
14182 assign( t1, unop(Iop_16Uto32, getIReg(2, R_EDX)) ); in disInstr_X86_WRK()
14189 assign( t1, unop(Iop_16Uto32, getIReg(2, R_EDX)) ); in disInstr_X86_WRK()
14397 assign( t1, getIReg(4, opc-0xC8) ); in disInstr_X86_WRK()
14399 assign( t2, in disInstr_X86_WRK()
14488 assign( expdHi, getIReg(4,R_EDX) ); in disInstr_X86_WRK()
14489 assign( expdLo, getIReg(4,R_EAX) ); in disInstr_X86_WRK()
14490 assign( dataHi, getIReg(4,R_ECX) ); in disInstr_X86_WRK()
14491 assign( dataLo, getIReg(4,R_EBX) ); in disInstr_X86_WRK()
14502 assign( success, in disInstr_X86_WRK()
14530 assign( flags_old, widenUto32(mk_x86g_calculate_eflags_all())); in disInstr_X86_WRK()
14531 assign( in disInstr_X86_WRK()
14830 assign( t1, unop(Iop_1Uto8,mk_x86g_calculate_condition(opc-0x90)) ); in disInstr_X86_WRK()