Lines Matching defs:binop
648 static IRExpr* binop ( IROp op, IRExpr* a1, IRExpr* a2 )
740 binop(Iop_And32,
766 binop( mkSizedOp(tyE,Iop_CasCmpNE8),
987 assign( guardB, binop(Iop_CmpNE8, mkexpr(guard), mkU8(0)) );
1141 assign( oldc, binop(Iop_And32,
1147 assign( tres, binop(plus,
1148 binop(plus,mkexpr(ta1),mkexpr(ta2)),
1167 stmt( IRStmt_Put( OFFB_CC_DEP2, widenUto32(binop(xor, mkexpr(ta2),
1195 assign( oldc, binop(Iop_And32,
1201 assign( tres, binop(minus,
1202 binop(minus,mkexpr(ta1),mkexpr(ta2)),
1221 stmt( IRStmt_Put( OFFB_CC_DEP2, widenUto32(binop(xor, mkexpr(ta2),
1473 binop(Iop_CmpNE32, unop(Iop_64HIto32, mkexpr(r64)), mkU32(0)),
1542 binop(Iop_Add32,getIReg(4,rm),mkU32(d))));
1556 binop(Iop_Add32,getIReg(4,rm),mkU32(d))));
1608 binop(Iop_Add32,
1610 binop(Iop_Shl32, getIReg(4,index_r),
1622 binop(Iop_Add32,
1623 binop(Iop_Shl32, getIReg(4,index_r), mkU8(scale)),
1667 binop(Iop_Add32, getIReg(4,base_r), mkU32(d)) ));
1675 binop(Iop_Add32,
1676 binop(Iop_Add32,
1678 binop(Iop_Shl32,
1708 binop(Iop_Add32, getIReg(4,base_r), mkU32(d)) ));
1716 binop(Iop_Add32,
1717 binop(Iop_Add32,
1719 binop(Iop_Shl32,
1870 assign( dst1, binop(mkSizedOp(ty,op8), mkexpr(dst0), mkexpr(src)) );
1899 assign( dst1, binop(mkSizedOp(ty,op8), mkexpr(dst0), mkexpr(src)) );
1983 assign(dst1, binop(mkSizedOp(ty,op8), mkexpr(dst0), mkexpr(src)));
2026 assign(dst1, binop(mkSizedOp(ty,op8), mkexpr(dst0), mkexpr(src)));
2157 assign(dst1, binop(mkSizedOp(ty,op8), mkexpr(dst0), mkexpr(src)) );
2163 assign(dst1, binop(mkSizedOp(ty,op8), mkexpr(dst0), mkexpr(src)) );
2245 assign( src64, binop(Iop_32HLto64,
2247 assign( dst64, binop(op, mkexpr(src64), mkexpr(t)) );
2255 binop(Iop_16HLto32,
2257 assign( dst64, binop(op, mkexpr(src64), unop(widen1632,mkexpr(t))) );
2268 binop(op, mkexpr(src64),
2320 assign(dst1, binop(mkSizedOp(ty,op8), mkexpr(dst0), mkexpr(src)));
2361 assign(dst1, binop(mkSizedOp(ty,op8), mkexpr(dst0), mkexpr(src)));
2487 assign( shift_amt, binop(Iop_And8, shift_expr, mkU8(31)) );
2494 assign( res32, binop(op32, mkexpr(pre32), mkexpr(shift_amt)) );
2498 binop(op32,
2500 binop(Iop_And8,
2501 binop(Iop_Sub8,
2525 assign(rot_amt32, binop(Iop_And8, shift_expr, mkU8(31)));
2530 assign(rot_amt, binop(Iop_And8, mkexpr(rot_amt32), mkU8(8*sz-1)));
2536 binop( mkSizedOp(ty,Iop_Or8),
2537 binop( mkSizedOp(ty,Iop_Shl8),
2541 binop( mkSizedOp(ty,Iop_Shr8),
2543 binop(Iop_Sub8,mkU8(8*sz), mkexpr(rot_amt))
2553 binop( mkSizedOp(ty,Iop_Or8),
2554 binop( mkSizedOp(ty,Iop_Shr8),
2558 binop( mkSizedOp(ty,Iop_Shl8),
2560 binop(Iop_Sub8,mkU8(8*sz), mkexpr(rot_amt))
2576 assign(rot_amt32b, binop(Iop_CmpNE8, mkexpr(rot_amt32), mkU8(0)) );
2690 assign( t2m, binop(Iop_Or32, mkU32(mask), mkexpr(t2)) );
2693 assign( t2m, binop(Iop_And32, mkU32(mask), mkexpr(t2)) );
2696 assign( t2m, binop(Iop_Xor32, mkU32(mask), mkexpr(t2)) );
2727 binop(Iop_And32,
2728 binop(Iop_Shr32, mkexpr(t2), mkU8(src_val)),
2759 assign( res64, binop(mulOp, mkexpr(t1), mkexpr(tmp)) );
2773 assign( res32, binop(mulOp, mkexpr(t1), mkexpr(tmp)) );
2787 assign( res16, binop(mulOp, mkexpr(t1), mkexpr(tmp)) );
2828 assign(dst1, binop(mkSizedOp(ty,Iop_And8),
2857 assign(dst1, binop(mkSizedOp(ty,Iop_Sub8), mkexpr(dst0), mkexpr(src)));
2899 assign(dst1, binop(mkSizedOp(ty,Iop_And8),
2926 assign(dst1, binop(mkSizedOp(ty,Iop_Sub8),
2985 assign(t2, binop(Iop_Add8, mkexpr(t1), mkU8(1)));
2990 assign(t2, binop(Iop_Sub8, mkexpr(t1), mkU8(1)));
3006 assign(t2, binop(Iop_Add8, mkexpr(t1), mkU8(1)));
3016 assign(t2, binop(Iop_Sub8, mkexpr(t1), mkU8(1)));
3065 assign(t2, binop(mkSizedOp(ty,Iop_Add8),
3073 assign(t2, binop(mkSizedOp(ty,Iop_Sub8),
3081 assign(t2, binop(Iop_Sub32, getIReg(4,R_ESP), mkU32(4)));
3095 assign( t2, binop(Iop_Sub32,getIReg(4,R_ESP),mkU32(sz)) );
3112 assign(t2, binop(mkSizedOp(ty,Iop_Add8),
3124 assign(t2, binop(mkSizedOp(ty,Iop_Sub8),
3137 assign(t2, binop(Iop_Sub32, getIReg(4,R_ESP), mkU32(4)));
3151 assign( t2, binop(Iop_Sub32,getIReg(4,R_ESP),mkU32(sz)) );
3177 binop(Iop_Shl32, IRExpr_Get( OFFB_DFLAG, Ity_I32 ),
3208 putIReg( 4, R_EDI, binop(Iop_Add32, mkexpr(td), mkexpr(t_inc)) );
3209 putIReg( 4, R_ESI, binop(Iop_Add32, mkexpr(ts), mkexpr(t_inc)) );
3222 putIReg( 4, R_ESI, binop(Iop_Add32, mkexpr(ts), mkexpr(t_inc)) );
3237 putIReg( 4, R_EDI, binop(Iop_Add32, mkexpr(td), mkexpr(t_inc)) );
3257 putIReg(4, R_EDI, binop(Iop_Add32, mkexpr(td), mkexpr(t_inc)) );
3258 putIReg(4, R_ESI, binop(Iop_Add32, mkexpr(ts), mkexpr(t_inc)) );
3275 putIReg(4, R_EDI, binop(Iop_Add32, mkexpr(td), mkexpr(t_inc)) );
3293 stmt( IRStmt_Exit( binop(Iop_CmpEQ32,mkexpr(tc),mkU32(0)),
3297 putIReg(4, R_ECX, binop(Iop_Sub32, mkexpr(tc), mkU32(1)) );
3344 assign( resLo, binop( mkSizedOp(ty, Iop_Mul8), mkexpr(te), mkexpr(tg) ) );
3394 assign( resLo, binop( mkSizedOp(ty, Iop_Mul8), mkexpr(te), mkexpr(tl) ));
3421 binop(Iop_Shl32, mkexpr(src32),
3429 binop(Iop_CmpEQ32, mkexpr(src32x), mkU32(0)),
3512 return binop( Iop_And32, get_fpround(), mkU32(3) );
3568 IRExpr_ITE( binop(Iop_CmpNE8, get_ST_TAG(i), mkU8(0)),
3594 IRExpr_ITE( binop(Iop_CmpNE8, get_ST_TAG(i), mkU8(0)),
3625 IRExpr_ITE(binop(Iop_CmpNE8, mkexpr(old_tag), mkU8(0)),
3642 put_ftop( binop(Iop_Sub32, get_ftop(), mkU32(1)) );
3650 put_ftop( binop(Iop_Sub32, get_ftop(), unop(Iop_1Uto32,mkexpr(cond))) );
3659 put_ftop( binop(Iop_Add32, get_ftop(), mkU32(1)) );
3667 IRExpr* cleared = binop(Iop_And32, get_C3210(), mkU32(~X86G_FC_MASK_C2));
3668 put_C3210( binop(Iop_Or32,
3670 binop(Iop_Shl32, e, mkU8(X86G_FC_SHIFT_C2))) );
3698 binop(Iop_And32,
3699 binop(Iop_Shr32, unop(Iop_64HIto32, mkexpr(i64)), mkU8(20)),
3703 binop(Iop_CmpLE32U, mkexpr(exponent), mkU32(0x43D)));
3714 binop(Iop_Or32,
3715 binop(Iop_Shl32,
3716 binop(Iop_And32, get_ftop(), mkU32(7)),
3718 binop(Iop_And32, get_C3210(), mkU32(0x4700))
3833 binop( Iop_And32,
3834 binop(Iop_CmpF64, get_ST(0), get_ST(i)),
3882 binop( Iop_And32,
3883 binop(Iop_Shl32,
3884 binop(Iop_CmpF64,
3897 binop( Iop_And32,
3898 binop(Iop_Shl32,
3899 binop(Iop_CmpF64,
3948 binop( Iop_And32,
3949 binop(Iop_Shl32,
3950 binop(Iop_CmpF64, get_ST(0), get_ST(r_dst)),
3962 binop( Iop_And32,
3963 binop(Iop_Shl32,
3964 binop(Iop_CmpF64, get_ST(0), get_ST(r_dst)),
4015 binop(Iop_F64toF32, get_roundingmode(), get_ST(0)));
4021 binop(Iop_F64toF32, get_roundingmode(), get_ST(0)));
4070 binop(Iop_CmpNE32, mkexpr(ew), mkU32(0)),
4113 binop(Iop_CmpNE32, mkexpr(ew), mkU32(0)),
4228 binop( Iop_And32,
4229 binop(Iop_Shl32,
4230 binop(Iop_CmpF64,
4310 binop(Iop_2xm1F64,
4334 binop(Iop_TanF64,
4345 set_C2( binop(Iop_Xor32,
4420 put_ftop( binop(Iop_Add32, get_ftop(), mkU32(1)) );
4457 binop(Iop_SqrtF64,
4471 binop(Iop_SinF64,
4481 binop(Iop_CosF64,
4484 set_C2( binop(Iop_Xor32,
4493 binop(Iop_RoundF64toInt, get_roundingmode(), get_ST(0)) );
4516 binop(isSIN ? Iop_SinF64 : Iop_CosF64,
4522 set_C2( binop(Iop_Xor32,
4561 binop( Iop_And32,
4562 binop(Iop_Shl32,
4563 binop(Iop_CmpF64,
4576 binop( Iop_And32,
4577 binop(Iop_Shl32,
4578 binop(Iop_CmpF64,
4677 binop( Iop_And32,
4678 binop(Iop_Shl32,
4679 binop(Iop_CmpF64, get_ST(0), get_ST(1)),
4716 binop(Iop_F64toI32S, mkU32(Irrm_ZERO), get_ST(0)) );
4723 binop(Iop_F64toI32S, get_roundingmode(), get_ST(0)) );
4729 binop(Iop_F64toI32S, get_roundingmode(), get_ST(0)) );
4916 binop( Iop_And32,
4917 binop(Iop_Shl32,
4918 binop(Iop_CmpF64,
4930 binop( Iop_And32,
4931 binop(Iop_Shl32,
4932 binop(Iop_CmpF64,
5021 binop(Iop_F64toI64S, mkU32(Irrm_ZERO), get_ST(0)) );
5085 binop(Iop_CmpNE32, mkexpr(ew), mkU32(0)),
5187 binop( Iop_And32,
5188 binop(Iop_Shl32,
5189 binop(Iop_CmpF64, get_ST(0), get_ST(r_dst)),
5200 binop( Iop_And32,
5201 binop(Iop_Shl32,
5202 binop(Iop_CmpF64, get_ST(0), get_ST(r_dst)),
5243 binop( Iop_And32,
5244 binop(Iop_Shl32,
5245 binop(Iop_CmpF64,
5259 binop( Iop_And32,
5260 binop(Iop_Shl32,
5261 binop(Iop_CmpF64,
5335 binop( Iop_And32,
5336 binop(Iop_Shl32,
5337 binop(Iop_CmpF64, get_ST(0), get_ST(1)),
5392 binop(Iop_F64toI16S, mkU32(Irrm_ZERO), get_ST(0)) );
5399 binop(Iop_F64toI16S, get_roundingmode(), get_ST(0)) );
5405 binop(Iop_F64toI16S, get_roundingmode(), get_ST(0)) );
5412 put_ST(0, binop(Iop_I64StoF64,
5420 binop(Iop_F64toI64S, get_roundingmode(), get_ST(0)) );
5676 assign(res, binop(op, argL, argR));
5751 binop(Iop_CmpLT32U,mkexpr(amt),mkU32(size)),
5752 binop(op, mkexpr(g0), mkexpr(amt8)),
5761 binop(Iop_CmpLT32U,mkexpr(amt),mkU32(size)),
5762 binop(op, mkexpr(g0), mkexpr(amt8)),
5763 binop(op, mkexpr(g0), mkU8(size-1))
5815 : binop(op, mkexpr(e0), mkU8(amt))
5820 ? binop(op, mkexpr(e0), mkU8(size-1))
5821 : binop(op, mkexpr(e0), mkU8(amt))
5858 binop( Iop_32HLto64,
5868 binop( Iop_32HLto64,
6142 assign( mask, binop(Iop_SarN8x8, mkexpr(regM), mkU8(7)) );
6145 binop(Iop_Or64,
6146 binop(Iop_And64,
6149 binop(Iop_And64,
6263 assign( tmpSH, binop(Iop_And8, shift_amt, mask) );
6266 assign( tmpL, binop(mkpair, mkexpr(esrc), mkexpr(gsrc)) );
6268 assign( tmpL, binop(mkpair, mkexpr(gsrc), mkexpr(esrc)) );
6270 assign( tmpRes, unop(getres, binop(shift, mkexpr(tmpL), mkexpr(tmpSH)) ) );
6273 binop(shift,
6275 binop(Iop_And8,
6276 binop(Iop_Sub8, mkexpr(tmpSH), mkU8(1) ),
6349 assign( t_esp, binop(Iop_Sub32, getIReg(4, R_ESP), mkU32(128)) );
6359 assign( t_bitno1, binop(Iop_And32,
6376 binop(Iop_Add32,
6378 binop(Iop_Sar32, mkexpr(t_bitno1), mkU8(3))) );
6384 binop(Iop_And32, mkexpr(t_bitno1), mkU32(7))) );
6390 assign( t_mask, binop(Iop_Shl8, mkU8(1), mkexpr(t_bitno2)) );
6401 binop(Iop_Or8, mkexpr(t_fetched), mkexpr(t_mask)) );
6405 binop(Iop_Xor8, mkexpr(t_fetched), mkexpr(t_mask)) );
6409 binop(Iop_And8, mkexpr(t_fetched),
6430 binop(Iop_And32,
6431 binop(Iop_Shr32,
6444 putIReg(4, R_ESP, binop(Iop_Add32, mkexpr(t_esp), mkU32(128)) );
6498 assign( srcB, binop(mkSizedOp(ty,Iop_ExpCmpNE8),
6547 : binop(Iop_Sub32,
6599 binop(Iop_Or32,
6600 binop(Iop_And32, mkexpr(oldflags), mkU32(X86G_CC_MASK_O)),
6601 binop(Iop_And32,
6602 binop(Iop_Shr32, getIReg(4, R_EAX), mkU8(8)),
6626 = binop(Iop_And32, getIReg(4, R_EAX), mkU32(0xFFFF00FF));
6628 = binop(Iop_Or32, binop(Iop_And32, mkexpr(flags), mkU32(mask_SZACP)),
6631 = binop(Iop_Or32, eax_with_hole,
6632 binop(Iop_Shl32, new_byte, mkU8(8)));
6821 assign( tmpt1, binop(mkSizedOp(ty,Iop_Add8),
6837 assign( tmpt1, binop(mkSizedOp(ty,Iop_Add8),
6852 assign( tmpt1, binop(mkSizedOp(ty,Iop_Add8),
6929 assign( ta, binop(Iop_Sub32, getIReg(4, R_ESP), mkU32(sz)) );
6946 putIReg(4, R_ESP, binop(Iop_Add32, mkexpr(ta), mkU32(sz)) );
6958 putIReg(4, R_ESP,binop(Iop_Add32, mkexpr(t1), mkU32(4+d32)));
7012 : binop(op, gpart,
7027 : binop(op, gpart,
7068 binop(op, gpart,
7082 binop(op, gpart, mkexpr(epart)) );
7103 binop(op, gpart,
7117 binop(op, gpart, mkexpr(epart)) );
7176 binop( Iop_SetV128lo32,
7187 binop( Iop_SetV128lo32,
7219 binop( Iop_SetV128lo64,
7230 binop( Iop_SetV128lo64,
7273 eLeft ? binop(op, epart, gpart)
7274 : binop(op, gpart, epart) );
7348 binop(op, getXMMReg(gregOfRM(rm)),
7360 binop(
7383 binop(Iop_XorV128, mkexpr(plain), mkV128(mask)) );
7443 binop(Iop_CmpLT32U,mkexpr(amt),mkU32(size)),
7444 binop(op, mkexpr(g0), mkexpr(amt8)),
7453 binop(Iop_CmpLT32U,mkexpr(amt),mkU32(size)),
7454 binop(op, mkexpr(g0), mkexpr(amt8)),
7455 binop(op, mkexpr(g0), mkU8(size-1))
7505 : binop(op, mkexpr(e0), mkU8(amt))
7510 ? binop(op, mkexpr(e0), mkU8(size-1))
7511 : binop(op, mkexpr(e0), mkU8(amt))
7527 return binop( Iop_And32,
7571 binop( Iop_64HLtoV128,
7572 binop(Iop_32HLto64, mkexpr(t3), mkexpr(t2)),
7573 binop(Iop_32HLto64, mkexpr(t1), mkexpr(t0))
7610 binop( Iop_32HLto64,
7611 binop(Iop_16HLto32, mkexpr(t3), mkexpr(t2)),
7612 binop(Iop_16HLto32, mkexpr(t1), mkexpr(t0))
7641 binop(Iop_And32,
7659 binop(Iop_And32,
7660 binop(Iop_Shr32, mkexpr(t1), mkU8(10)),
7671 binop(Iop_And32,
7672 binop(Iop_Shr32, mkexpr(t1), mkU8(21)),
7684 binop(Iop_And32,
7685 binop(Iop_Shr32, mkexpr(t1), mkU8(18)),
7695 binop( Iop_CmpNE32,
7696 binop(Iop_And32, mkexpr(t1), mkU32(1<<18)),
7726 binop(Iop_SarN32x2,
7727 binop(Iop_InterleaveHI16x4, mkexpr(aa), mkexpr(aa)),
7730 binop(Iop_SarN32x2,
7731 binop(Iop_InterleaveLO16x4, mkexpr(aa), mkexpr(aa)),
7734 binop(Iop_SarN32x2,
7735 binop(Iop_InterleaveHI16x4, mkexpr(bb), mkexpr(bb)),
7738 binop(Iop_SarN32x2,
7739 binop(Iop_InterleaveLO16x4, mkexpr(bb), mkexpr(bb)),
7744 binop(
7746 binop(
7748 binop(
7750 binop(Iop_Mul32x2, mkexpr(aahi32s), mkexpr(bbhi32s)),
7760 binop(
7762 binop(
7764 binop(
7766 binop(Iop_Mul32x2, mkexpr(aalo32s), mkexpr(bblo32s)),
7775 binop(Iop_CatEvenLanes16x4, mkexpr(rHi), mkexpr(rLo));
7806 assign( bbNeg, binop(opSub, mkexpr(zero), mkexpr(bb)) );
7807 assign( negMask, binop(opCmpGTS, mkexpr(zero), mkexpr(aa)) );
7808 assign( posMask, binop(opCmpGTS, mkexpr(aa), mkexpr(zero)) );
7811 binop(Iop_Or64,
7812 binop(Iop_And64, mkexpr(bb), mkexpr(posMask)),
7813 binop(Iop_And64, mkexpr(bbNeg), mkexpr(negMask)) );
7844 assign( negMask, binop(opSarN, mkexpr(aa), mkU8(8*laneszB-1)) );
7847 assign( aaNeg, binop(opSub, mkexpr(zero), mkexpr(aa)) );
7849 binop(Iop_Or64,
7850 binop(Iop_And64, mkexpr(aa), mkexpr(posMask)),
7851 binop(Iop_And64, mkexpr(aaNeg), mkexpr(negMask)) );
7859 binop(Iop_Or64,
7860 binop(Iop_Shl64, mkexpr(hi64), mkU8(8*(8-byteShift))),
7861 binop(Iop_Shr64, mkexpr(lo64), mkU8(8*byteShift))
7873 binop(Iop_CmpNE32,
7874 binop(Iop_And32,mkexpr(effective_addr),mkU32(0xF)),
8018 binop(
8020 binop(Iop_Shl32, mkexpr(t1), mkU8(24)),
8021 binop(
8023 binop(Iop_And32, binop(Iop_Shl32, mkexpr(t1), mkU8(8)),
8025 binop(Iop_Or32,
8026 binop(Iop_And32, binop(Iop_Shr32, mkexpr(t1), mkU8(8)),
8028 binop(Iop_And32, binop(Iop_Shr32, mkexpr(t1), mkU8(24)),
8036 binop(Iop_Or16,
8037 binop(Iop_Shl16, mkexpr(t1), mkU8(8)),
8038 binop(Iop_Shr16, mkexpr(t1), mkU8(8)) ));
8153 assign(t2, binop(Iop_Sub32, getIReg(4,R_ESP), mkU32(4)));
8539 binop( Iop_And32,
8540 binop(Iop_CmpF64,
8577 binop(Iop_F64toF32,
8584 binop(Iop_F64toF32,
8617 binop(Iop_F64toF32,
8648 assign(f32hi, loadLE(Ity_F32, binop( Iop_Add32,
8665 binop( Iop_32HLto64,
8666 binop( Iop_F64toI32S,
8669 binop( Iop_F64toI32S,
8713 binop( Iop_F64toI32S,
8773 binop(Iop_CmpNE32, mkexpr(ew), mkU32(0)),
9244 assign( t0, binop( Iop_And32,
9245 binop(Iop_Shr32, getXMMRegLane32(src,0), mkU8(31)),
9247 assign( t1, binop( Iop_And32,
9248 binop(Iop_Shr32, getXMMRegLane32(src,1), mkU8(30)),
9250 assign( t2, binop( Iop_And32,
9251 binop(Iop_Shr32, getXMMRegLane32(src,2), mkU8(29)),
9253 assign( t3, binop( Iop_And32,
9254 binop(Iop_Shr32, getXMMRegLane32(src,3), mkU8(28)),
9257 binop(Iop_Or32,
9258 binop(Iop_Or32, mkexpr(t0), mkexpr(t1)),
9259 binop(Iop_Or32, mkexpr(t2), mkexpr(t3))
9604 binop( Iop_And32,
9605 binop(Iop_CmpF64, mkexpr(argL), mkexpr(argR)),
9670 # define CVT(_t) binop( Iop_F64toF32, \
9713 # define CVT(_t) binop( Iop_F64toI32S, \
9751 assign(f64hi, loadLE(Ity_F64, binop( Iop_Add32,
9768 binop( Iop_32HLto64,
9769 binop( Iop_F64toI32S, mkexpr(rmode), mkexpr(f64hi) ),
9770 binop( Iop_F64toI32S, mkexpr(rmode), mkexpr(f64lo) )
9809 # define CVT(_t) binop( Iop_F64toF32, \
9888 binop( Iop_F64toI32S, \
9920 binop(Iop_Add32,mkexpr(addr),mkU32(4))) );
9968 binop( Iop_F64toI32S, mkexpr(rmode), mkexpr(f64lo)) );
9997 binop( Iop_F64toF32, mkexpr(rmode), mkexpr(f64lo) )
10085 # define CVT(_t) binop( Iop_F64toI32S, \
10126 binop( Iop_F64toI32S, \
10442 assign( t0, binop( Iop_And32,
10443 binop(Iop_Shr32, getXMMRegLane32(src,1), mkU8(31)),
10445 assign( t1, binop( Iop_And32,
10446 binop(Iop_Shr32, getXMMRegLane32(src,3), mkU8(30)),
10449 binop(Iop_Or32, mkexpr(t0), mkexpr(t1))
10476 binop(Iop_64HLtoV128,
10477 binop(Iop_SarN8x8,
10480 binop(Iop_SarN8x8,
10485 binop(Iop_OrV128,
10486 binop(Iop_AndV128,
10489 binop(Iop_AndV128,
10681 binop(Iop_64HLtoV128, SELS((select>>1)&1), SELD((select>>0)&1) )
10755 binop(Iop_64HLtoV128, mkexpr(s1), mkexpr(d1)) );
10758 binop(Iop_64HLtoV128, mkexpr(s0), mkexpr(d0)) );
11027 assign( dV, binop(Iop_64HLtoV128, mkexpr(dHi), mkexpr(dLo))) ;
11073 binop(Iop_8HLto16,
11135 binop( Iop_MullU32, mkexpr(t0), mkexpr(t1) ) );
11171 assign( t0, binop( Iop_MullU32, mkexpr(d0), mkexpr(s0)) );
11173 assign( t1, binop( Iop_MullU32, mkexpr(d2), mkexpr(s2)) );
11226 assign( dV, binop(Iop_64HLtoV128, mkexpr(dHi), mkexpr(dLo))) ;
11304 assign(dV, binop( Iop_64HLtoV128,
11348 assign(dV, binop( Iop_64HLtoV128,
11409 assign( hi64r, binop( Iop_Shl64,
11413 assign( lo64r, binop( Iop_Shl64,
11417 binop( Iop_Or64,
11418 binop(Iop_Shl64, mkexpr(hi64),
11420 binop(Iop_Shr64, mkexpr(lo64),
11425 assign( dV, binop(Iop_64HLtoV128, mkexpr(hi64r), mkexpr(lo64r)) );
11539 assign( lo64r, binop( Iop_Shr64,
11543 assign( hi64r, binop( Iop_Shr64,
11547 binop( Iop_Or64,
11548 binop(Iop_Shr64, mkexpr(lo64),
11550 binop(Iop_Shl64, mkexpr(hi64),
11556 assign( dV, binop(Iop_64HLtoV128, mkexpr(hi64r), mkexpr(lo64r)) );
11758 binop( Iop_And32,
11845 putXMMReg( gregOfRM(modrm), binop(Iop_64HLtoV128,mkexpr(d0),mkexpr(d0)) );
11920 binop(Iop_64HLtoV128, mkexpr(a1), mkexpr(s0)) );
12003 assign( leftV, binop(Iop_64HLtoV128, mkexpr(e0),mkexpr(g0)) );
12004 assign( rightV, binop(Iop_64HLtoV128, mkexpr(e1),mkexpr(g1)) );
12067 binop(Iop_SarN16x4, mkexpr(sV), mkU8(8)) );
12069 binop(Iop_SarN16x4,
12070 binop(Iop_ShlN16x4, mkexpr(sV), mkU8(8)),
12073 binop(Iop_ShrN16x4, mkexpr(dV), mkU8(8)) );
12075 binop(Iop_ShrN16x4,
12076 binop(Iop_ShlN16x4, mkexpr(dV), mkU8(8)),
12081 binop(Iop_QAdd16Sx4,
12082 binop(Iop_Mul16x4, mkexpr(sVoddsSX), mkexpr(dVoddsZX)),
12083 binop(Iop_Mul16x4, mkexpr(sVevensSX), mkexpr(dVevensZX))
12119 binop(Iop_SarN16x8, mkexpr(sV), mkU8(8)) );
12121 binop(Iop_SarN16x8,
12122 binop(Iop_ShlN16x8, mkexpr(sV), mkU8(8)),
12125 binop(Iop_ShrN16x8, mkexpr(dV), mkU8(8)) );
12127 binop(Iop_ShrN16x8,
12128 binop(Iop_ShlN16x8, mkexpr(dV), mkU8(8)),
12133 binop(Iop_QAdd16Sx8,
12134 binop(Iop_Mul16x8, mkexpr(sVoddsSX), mkexpr(dVoddsZX)),
12135 binop(Iop_Mul16x8, mkexpr(sVevensSX), mkexpr(dVevensZX))
12200 binop(opV64,
12201 binop(opCatE,mkexpr(sV),mkexpr(dV)),
12202 binop(opCatO,mkexpr(sV),mkexpr(dV))
12278 binop(Iop_64HLtoV128,
12279 binop(opV64,
12280 binop(opCatE,mkexpr(sHi),mkexpr(sLo)),
12281 binop(opCatO,mkexpr(sHi),mkexpr(sLo))
12283 binop(opV64,
12284 binop(opCatE,mkexpr(dHi),mkexpr(dLo)),
12285 binop(opCatO,mkexpr(dHi),mkexpr(dLo))
12358 binop(Iop_64HLtoV128,
12454 binop(Iop_64HLtoV128,
12542 binop(Iop_64HLtoV128,
12583 binop(Iop_Or64,
12584 binop(Iop_Shr64, mkexpr(sV), mkU8(8*d32)),
12585 binop(Iop_Shl64, mkexpr(dV), mkU8(8*(8-d32))
12592 assign( res, binop(Iop_Shr64, mkexpr(dV), mkU8(8*(d32-8))) );
12663 assign( rHi, binop(Iop_Shr64, mkexpr(dHi), mkU8(8*(d32-16))) );
12672 assign( rLo, binop(Iop_Shr64, mkexpr(dHi), mkU8(8*(d32-24))) );
12683 binop(Iop_64HLtoV128, mkexpr(rHi), mkexpr(rLo))
12713 binop(
12716 binop(
12719 binop(Iop_And64, mkexpr(sV), mkU64(0x0707070707070707ULL))
12722 unop(Iop_Not64, binop(Iop_SarN8x8, mkexpr(sV), mkU8(7)))
12783 unop(Iop_Not64, binop(Iop_SarN8x8,mkexpr(sHi),mkU8(7))));
12787 binop(Iop_SarN8x8,
12788 binop(Iop_ShlN8x8,mkexpr(sHi),mkU8(4)),
12791 assign(sAnd7hi, binop(Iop_And64,mkexpr(sHi),mkexpr(sevens)));
12795 binop(
12797 binop(Iop_And64,
12798 binop(Iop_Perm8x8,mkexpr(dHi),mkexpr(sAnd7hi)),
12800 binop(Iop_And64,
12801 binop(Iop_Perm8x8,mkexpr(dLo),mkexpr(sAnd7hi)),
12804 assign(rHi, binop(Iop_And64,mkexpr(permdHi),mkexpr(mask0x80hi)) );
12810 unop(Iop_Not64, binop(Iop_SarN8x8,mkexpr(sLo),mkU8(7))));
12814 binop(Iop_SarN8x8,
12815 binop(Iop_ShlN8x8,mkexpr(sLo),mkU8(4)),
12818 assign(sAnd7lo, binop(Iop_And64,mkexpr(sLo),mkexpr(sevens)));
12822 binop(
12824 binop(Iop_And64,
12825 binop(Iop_Perm8x8,mkexpr(dHi),mkexpr(sAnd7lo)),
12827 binop(Iop_And64,
12828 binop(Iop_Perm8x8,mkexpr(dLo),mkexpr(sAnd7lo)),
12831 assign(rLo, binop(Iop_And64,mkexpr(permdLo),mkexpr(mask0x80lo)) );
12835 binop(Iop_64HLtoV128, mkexpr(rHi), mkexpr(rLo))
12917 assign(res, binop(isD ? Iop_RoundF64toInt : Iop_RoundF32toInt,
12967 binop(Iop_Or32,
12968 binop(Iop_Shl32,
12970 binop(Iop_CmpEQ32, mkexpr(res32), mkU32(0))),
12972 binop(Iop_Shl32,
12974 binop(Iop_CmpEQ32, mkexpr(src32), mkU32(0))),
13003 binop(Iop_CmpEQ16, getIReg(2,R_ECX), mkU16(0)),
13047 assign(t2, loadLE(Ity_I32, binop(Iop_Add32,mkexpr(t1),mkU32(0) )));
13048 assign(t3, loadLE(Ity_I32, binop(Iop_Add32,mkexpr(t1),mkU32(4) )));
13049 assign(t4, loadLE(Ity_I32, binop(Iop_Add32,mkexpr(t1),mkU32(8) )));
13051 putIReg(4, R_ESP,binop(Iop_Add32, mkexpr(t1), mkU32(12)));
13082 assign(t1, binop(Iop_Sub32, getIReg(4,R_ESP), mkU32(4)));
13129 putIReg(4, R_ESP, binop(Iop_Add32, mkexpr(t1), mkU32(4)) );
13148 binop(Iop_16HLto32,
13169 binop(Iop_And32,
13170 binop(Iop_Shr32, mkexpr(t2), mkU8(16)),
13199 binop(Iop_16HLto32,
13219 binop(Iop_And32,
13220 binop(Iop_Shr32, mkexpr(t2), mkU8(16)),
13251 binop(mkSizedOp(ty,Iop_Sar8),
13305 assign( t1, binop(mkSizedOp(ty,Iop_Add8),
13324 assign( t1, binop(mkSizedOp(ty,Iop_Sub8),
13502 binop(Iop_CmpEQ32, getIReg(4,R_ECX), mkU32(0)),
13525 putIReg(4, R_ECX, binop(Iop_Sub32, getIReg(4,R_ECX), mkU32(1)));
13528 cond = binop(Iop_CmpNE32, count, mkU32(0));
13899 putIReg(4, R_ESP, binop(Iop_Add32, mkexpr(t2), mkU32(sz)));
13909 putIReg(4, R_ESP, binop(Iop_Add32, mkexpr(t2), mkU32(sz)));
13928 putIReg(4,R_EAX, loadLE(Ity_I32, binop(Iop_Add32,mkexpr(t5),mkU32(28)) ));
13929 putIReg(4,R_ECX, loadLE(Ity_I32, binop(Iop_Add32,mkexpr(t5),mkU32(24)) ));
13930 putIReg(4,R_EDX, loadLE(Ity_I32, binop(Iop_Add32,mkexpr(t5),mkU32(20)) ));
13931 putIReg(4,R_EBX, loadLE(Ity_I32, binop(Iop_Add32,mkexpr(t5),mkU32(16)) ));
13933 putIReg(4,R_EBP, loadLE(Ity_I32, binop(Iop_Add32,mkexpr(t5),mkU32( 8)) ));
13934 putIReg(4,R_ESI, loadLE(Ity_I32, binop(Iop_Add32,mkexpr(t5),mkU32( 4)) ));
13935 putIReg(4,R_EDI, loadLE(Ity_I32, binop(Iop_Add32,mkexpr(t5),mkU32( 0)) ));
13938 putIReg( 4, R_ESP, binop(Iop_Add32, mkexpr(t5), mkU32(8*4)) );
13968 putIReg(4, R_ESP, binop(Iop_Add32, mkexpr(t1), mkU32(sz)) );
14004 assign(t2, binop(Iop_Sub32, getIReg(4, R_ESP), mkU32(sz)));
14020 assign( t1, binop(Iop_Sub32,getIReg(4,R_ESP),mkU32(sz)) );
14034 assign( t1, binop(Iop_Sub32,getIReg(4,R_ESP),mkU32(sz)) );
14043 assign( t2, binop(Iop_Or32,
14050 assign( t3, binop(Iop_Or32,
14052 binop(Iop_And32,
14059 assign( t4, binop(Iop_Or32,
14061 binop(Iop_And32,
14062 binop(Iop_Shl32, IRExpr_Get(OFFB_IDFLAG,Ity_I32),
14069 assign( t5, binop(Iop_Or32,
14071 binop(Iop_And32,
14072 binop(Iop_Shl32, IRExpr_Get(OFFB_ACFLAG,Ity_I32),
14101 assign( t5, binop(Iop_Sub32, mkexpr(t0), mkU32(8*4)) );
14107 storeLE( binop(Iop_Add32,mkexpr(t5),mkU32(28)), getIReg(4,R_EAX) );
14108 storeLE( binop(Iop_Add32,mkexpr(t5),mkU32(24)), getIReg(4,R_ECX) );
14109 storeLE( binop(Iop_Add32,mkexpr(t5),mkU32(20)), getIReg(4,R_EDX) );
14110 storeLE( binop(Iop_Add32,mkexpr(t5),mkU32(16)), getIReg(4,R_EBX) );
14111 storeLE( binop(Iop_Add32,mkexpr(t5),mkU32(12)), mkexpr(t0) /*esp*/);
14112 storeLE( binop(Iop_Add32,mkexpr(t5),mkU32( 8)), getIReg(4,R_EBP) );
14113 storeLE( binop(Iop_Add32,mkexpr(t5),mkU32( 4)), getIReg(4,R_ESI) );
14114 storeLE( binop(Iop_Add32,mkexpr(t5),mkU32( 0)), getIReg(4,R_EDI) );
14184 assign( t1, binop(Iop_And32, mkexpr(t0),
14189 assign( t1, binop(Iop_Or32, mkexpr(t0),
14194 assign( t1, binop(Iop_Xor32, mkexpr(t0),
14212 assign( t0, binop(Iop_And32,
14215 assign( t1, binop(Iop_Sar32,
14216 binop(Iop_Shl32, mkexpr(t0), mkU8(31)),
14397 binop(Iop_Add32,
14779 binop(Iop_CasCmpEQ32,
14780 binop(Iop_Or32,
14781 binop(Iop_Xor32, mkexpr(oldHi), mkexpr(expdHi)),
14782 binop(Iop_Xor32, mkexpr(oldLo), mkexpr(expdLo))
14807 binop(Iop_Or32,
14808 binop(Iop_And32, mkexpr(flags_old),
14810 binop(Iop_Shl32,
14811 binop(Iop_And32,