Lines Matching refs: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)) );
7143 IRExpr* res = needsIRRM ? binop(op, get_FAKE_roundingmode(), src)
7154 IRExpr* res = needsIRRM ? binop(op, get_FAKE_roundingmode(), src)
7185 binop( Iop_SetV128lo32,
7196 binop( Iop_SetV128lo32,
7228 binop( Iop_SetV128lo64,
7239 binop( Iop_SetV128lo64,
7282 eLeft ? binop(op, epart, gpart)
7283 : binop(op, gpart, epart) );
7357 assign( plain, binop(op, getXMMReg(gregOfRM(rm)),
7369 binop(
7392 binop(Iop_XorV128, mkexpr(plain), mkV128(mask)) );
7452 binop(Iop_CmpLT32U,mkexpr(amt),mkU32(size)),
7453 binop(op, mkexpr(g0), mkexpr(amt8)),
7462 binop(Iop_CmpLT32U,mkexpr(amt),mkU32(size)),
7463 binop(op, mkexpr(g0), mkexpr(amt8)),
7464 binop(op, mkexpr(g0), mkU8(size-1))
7514 : binop(op, mkexpr(e0), mkU8(amt))
7519 ? binop(op, mkexpr(e0), mkU8(size-1))
7520 : binop(op, mkexpr(e0), mkU8(amt))
7536 return binop( Iop_And32,
7580 binop( Iop_64HLtoV128,
7581 binop(Iop_32HLto64, mkexpr(t3), mkexpr(t2)),
7582 binop(Iop_32HLto64, mkexpr(t1), mkexpr(t0))
7619 binop( Iop_32HLto64,
7620 binop(Iop_16HLto32, mkexpr(t3), mkexpr(t2)),
7621 binop(Iop_16HLto32, mkexpr(t1), mkexpr(t0))
7650 binop(Iop_And32,
7668 binop(Iop_And32,
7669 binop(Iop_Shr32, mkexpr(t1), mkU8(10)),
7680 binop(Iop_And32,
7681 binop(Iop_Shr32, mkexpr(t1), mkU8(21)),
7693 binop(Iop_And32,
7694 binop(Iop_Shr32, mkexpr(t1), mkU8(18)),
7704 binop( Iop_CmpNE32,
7705 binop(Iop_And32, mkexpr(t1), mkU32(1<<18)),
7735 binop(Iop_SarN32x2,
7736 binop(Iop_InterleaveHI16x4, mkexpr(aa), mkexpr(aa)),
7739 binop(Iop_SarN32x2,
7740 binop(Iop_InterleaveLO16x4, mkexpr(aa), mkexpr(aa)),
7743 binop(Iop_SarN32x2,
7744 binop(Iop_InterleaveHI16x4, mkexpr(bb), mkexpr(bb)),
7747 binop(Iop_SarN32x2,
7748 binop(Iop_InterleaveLO16x4, mkexpr(bb), mkexpr(bb)),
7753 binop(
7755 binop(
7757 binop(
7759 binop(Iop_Mul32x2, mkexpr(aahi32s), mkexpr(bbhi32s)),
7769 binop(
7771 binop(
7773 binop(
7775 binop(Iop_Mul32x2, mkexpr(aalo32s), mkexpr(bblo32s)),
7784 binop(Iop_CatEvenLanes16x4, mkexpr(rHi), mkexpr(rLo));
7815 assign( bbNeg, binop(opSub, mkexpr(zero), mkexpr(bb)) );
7816 assign( negMask, binop(opCmpGTS, mkexpr(zero), mkexpr(aa)) );
7817 assign( posMask, binop(opCmpGTS, mkexpr(aa), mkexpr(zero)) );
7820 binop(Iop_Or64,
7821 binop(Iop_And64, mkexpr(bb), mkexpr(posMask)),
7822 binop(Iop_And64, mkexpr(bbNeg), mkexpr(negMask)) );
7853 assign( negMask, binop(opSarN, mkexpr(aa), mkU8(8*laneszB-1)) );
7856 assign( aaNeg, binop(opSub, mkexpr(zero), mkexpr(aa)) );
7858 binop(Iop_Or64,
7859 binop(Iop_And64, mkexpr(aa), mkexpr(posMask)),
7860 binop(Iop_And64, mkexpr(aaNeg), mkexpr(negMask)) );
7868 binop(Iop_Or64,
7869 binop(Iop_Shl64, mkexpr(hi64), mkU8(8*(8-byteShift))),
7870 binop(Iop_Shr64, mkexpr(lo64), mkU8(8*byteShift))
7882 binop(Iop_CmpNE32,
7883 binop(Iop_And32,mkexpr(effective_addr),mkU32(0xF)),
8027 binop(
8029 binop(Iop_Shl32, mkexpr(t1), mkU8(24)),
8030 binop(
8032 binop(Iop_And32, binop(Iop_Shl32, mkexpr(t1), mkU8(8)),
8034 binop(Iop_Or32,
8035 binop(Iop_And32, binop(Iop_Shr32, mkexpr(t1), mkU8(8)),
8037 binop(Iop_And32, binop(Iop_Shr32, mkexpr(t1), mkU8(24)),
8045 binop(Iop_Or16,
8046 binop(Iop_Shl16, mkexpr(t1), mkU8(8)),
8047 binop(Iop_Shr16, mkexpr(t1), mkU8(8)) ));
8162 assign(t2, binop(Iop_Sub32, getIReg(4,R_ESP), mkU32(4)));
8548 binop( Iop_And32,
8549 binop(Iop_CmpF64,
8586 binop(Iop_F64toF32,
8593 binop(Iop_F64toF32,
8626 binop(Iop_F64toF32,
8657 assign(f32hi, loadLE(Ity_F32, binop( Iop_Add32,
8674 binop( Iop_32HLto64,
8675 binop( Iop_F64toI32S,
8678 binop( Iop_F64toI32S,
8722 binop( Iop_F64toI32S,
8782 binop(Iop_CmpNE32, mkexpr(ew), mkU32(0)),
9253 assign( t0, binop( Iop_And32,
9254 binop(Iop_Shr32, getXMMRegLane32(src,0), mkU8(31)),
9256 assign( t1, binop( Iop_And32,
9257 binop(Iop_Shr32, getXMMRegLane32(src,1), mkU8(30)),
9259 assign( t2, binop( Iop_And32,
9260 binop(Iop_Shr32, getXMMRegLane32(src,2), mkU8(29)),
9262 assign( t3, binop( Iop_And32,
9263 binop(Iop_Shr32, getXMMRegLane32(src,3), mkU8(28)),
9266 binop(Iop_Or32,
9267 binop(Iop_Or32, mkexpr(t0), mkexpr(t1)),
9268 binop(Iop_Or32, mkexpr(t2), mkexpr(t3))
9613 binop( Iop_And32,
9614 binop(Iop_CmpF64, mkexpr(argL), mkexpr(argR)),
9679 # define CVT(_t) binop( Iop_F64toF32, \
9722 # define CVT(_t) binop( Iop_F64toI32S, \
9760 assign(f64hi, loadLE(Ity_F64, binop( Iop_Add32,
9777 binop( Iop_32HLto64,
9778 binop( Iop_F64toI32S, mkexpr(rmode), mkexpr(f64hi) ),
9779 binop( Iop_F64toI32S, mkexpr(rmode), mkexpr(f64lo) )
9818 # define CVT(_t) binop( Iop_F64toF32, \
9897 binop( Iop_F64toI32S, \
9929 binop(Iop_Add32,mkexpr(addr),mkU32(4))) );
9977 binop( Iop_F64toI32S, mkexpr(rmode), mkexpr(f64lo)) );
10006 binop( Iop_F64toF32, mkexpr(rmode), mkexpr(f64lo) )
10094 # define CVT(_t) binop( Iop_F64toI32S, \
10135 binop( Iop_F64toI32S, \
10451 assign( t0, binop( Iop_And32,
10452 binop(Iop_Shr32, getXMMRegLane32(src,1), mkU8(31)),
10454 assign( t1, binop( Iop_And32,
10455 binop(Iop_Shr32, getXMMRegLane32(src,3), mkU8(30)),
10458 binop(Iop_Or32, mkexpr(t0), mkexpr(t1))
10485 binop(Iop_64HLtoV128,
10486 binop(Iop_SarN8x8,
10489 binop(Iop_SarN8x8,
10494 binop(Iop_OrV128,
10495 binop(Iop_AndV128,
10498 binop(Iop_AndV128,
10690 binop(Iop_64HLtoV128, SELS((select>>1)&1), SELD((select>>0)&1) )
10764 binop(Iop_64HLtoV128, mkexpr(s1), mkexpr(d1)) );
10767 binop(Iop_64HLtoV128, mkexpr(s0), mkexpr(d0)) );
11036 assign( dV, binop(Iop_64HLtoV128, mkexpr(dHi), mkexpr(dLo))) ;
11082 binop(Iop_8HLto16,
11144 binop( Iop_MullU32, mkexpr(t0), mkexpr(t1) ) );
11180 assign( t0, binop( Iop_MullU32, mkexpr(d0), mkexpr(s0)) );
11182 assign( t1, binop( Iop_MullU32, mkexpr(d2), mkexpr(s2)) );
11235 assign( dV, binop(Iop_64HLtoV128, mkexpr(dHi), mkexpr(dLo))) ;
11313 assign(dV, binop( Iop_64HLtoV128,
11357 assign(dV, binop( Iop_64HLtoV128,
11418 assign( hi64r, binop( Iop_Shl64,
11422 assign( lo64r, binop( Iop_Shl64,
11426 binop( Iop_Or64,
11427 binop(Iop_Shl64, mkexpr(hi64),
11429 binop(Iop_Shr64, mkexpr(lo64),
11434 assign( dV, binop(Iop_64HLtoV128, mkexpr(hi64r), mkexpr(lo64r)) );
11548 assign( lo64r, binop( Iop_Shr64,
11552 assign( hi64r, binop( Iop_Shr64,
11556 binop( Iop_Or64,
11557 binop(Iop_Shr64, mkexpr(lo64),
11559 binop(Iop_Shl64, mkexpr(hi64),
11565 assign( dV, binop(Iop_64HLtoV128, mkexpr(hi64r), mkexpr(lo64r)) );
11767 binop( Iop_And32,
11850 putXMMReg( gregOfRM(modrm), binop(Iop_64HLtoV128,mkexpr(d0),mkexpr(d0)) );
11925 binop(Iop_64HLtoV128, mkexpr(a1), mkexpr(s0)) );
12008 assign( leftV, binop(Iop_64HLtoV128, mkexpr(e0),mkexpr(g0)) );
12009 assign( rightV, binop(Iop_64HLtoV128, mkexpr(e1),mkexpr(g1)) );
12072 binop(Iop_SarN16x4, mkexpr(sV), mkU8(8)) );
12074 binop(Iop_SarN16x4,
12075 binop(Iop_ShlN16x4, mkexpr(sV), mkU8(8)),
12078 binop(Iop_ShrN16x4, mkexpr(dV), mkU8(8)) );
12080 binop(Iop_ShrN16x4,
12081 binop(Iop_ShlN16x4, mkexpr(dV), mkU8(8)),
12086 binop(Iop_QAdd16Sx4,
12087 binop(Iop_Mul16x4, mkexpr(sVoddsSX), mkexpr(dVoddsZX)),
12088 binop(Iop_Mul16x4, mkexpr(sVevensSX), mkexpr(dVevensZX))
12124 binop(Iop_SarN16x8, mkexpr(sV), mkU8(8)) );
12126 binop(Iop_SarN16x8,
12127 binop(Iop_ShlN16x8, mkexpr(sV), mkU8(8)),
12130 binop(Iop_ShrN16x8, mkexpr(dV), mkU8(8)) );
12132 binop(Iop_ShrN16x8,
12133 binop(Iop_ShlN16x8, mkexpr(dV), mkU8(8)),
12138 binop(Iop_QAdd16Sx8,
12139 binop(Iop_Mul16x8, mkexpr(sVoddsSX), mkexpr(dVoddsZX)),
12140 binop(Iop_Mul16x8, mkexpr(sVevensSX), mkexpr(dVevensZX))
12205 binop(opV64,
12206 binop(opCatE,mkexpr(sV),mkexpr(dV)),
12207 binop(opCatO,mkexpr(sV),mkexpr(dV))
12283 binop(Iop_64HLtoV128,
12284 binop(opV64,
12285 binop(opCatE,mkexpr(sHi),mkexpr(sLo)),
12286 binop(opCatO,mkexpr(sHi),mkexpr(sLo))
12288 binop(opV64,
12289 binop(opCatE,mkexpr(dHi),mkexpr(dLo)),
12290 binop(opCatO,mkexpr(dHi),mkexpr(dLo))
12363 binop(Iop_64HLtoV128,
12459 binop(Iop_64HLtoV128,
12547 binop(Iop_64HLtoV128,
12588 binop(Iop_Or64,
12589 binop(Iop_Shr64, mkexpr(sV), mkU8(8*d32)),
12590 binop(Iop_Shl64, mkexpr(dV), mkU8(8*(8-d32))
12597 assign( res, binop(Iop_Shr64, mkexpr(dV), mkU8(8*(d32-8))) );
12668 assign( rHi, binop(Iop_Shr64, mkexpr(dHi), mkU8(8*(d32-16))) );
12677 assign( rLo, binop(Iop_Shr64, mkexpr(dHi), mkU8(8*(d32-24))) );
12688 binop(Iop_64HLtoV128, mkexpr(rHi), mkexpr(rLo))
12718 binop(
12721 binop(
12724 binop(Iop_And64, mkexpr(sV), mkU64(0x0707070707070707ULL))
12727 unop(Iop_Not64, binop(Iop_SarN8x8, mkexpr(sV), mkU8(7)))
12788 unop(Iop_Not64, binop(Iop_SarN8x8,mkexpr(sHi),mkU8(7))));
12792 binop(Iop_SarN8x8,
12793 binop(Iop_ShlN8x8,mkexpr(sHi),mkU8(4)),
12796 assign(sAnd7hi, binop(Iop_And64,mkexpr(sHi),mkexpr(sevens)));
12800 binop(
12802 binop(Iop_And64,
12803 binop(Iop_Perm8x8,mkexpr(dHi),mkexpr(sAnd7hi)),
12805 binop(Iop_And64,
12806 binop(Iop_Perm8x8,mkexpr(dLo),mkexpr(sAnd7hi)),
12809 assign(rHi, binop(Iop_And64,mkexpr(permdHi),mkexpr(mask0x80hi)) );
12815 unop(Iop_Not64, binop(Iop_SarN8x8,mkexpr(sLo),mkU8(7))));
12819 binop(Iop_SarN8x8,
12820 binop(Iop_ShlN8x8,mkexpr(sLo),mkU8(4)),
12823 assign(sAnd7lo, binop(Iop_And64,mkexpr(sLo),mkexpr(sevens)));
12827 binop(
12829 binop(Iop_And64,
12830 binop(Iop_Perm8x8,mkexpr(dHi),mkexpr(sAnd7lo)),
12832 binop(Iop_And64,
12833 binop(Iop_Perm8x8,mkexpr(dLo),mkexpr(sAnd7lo)),
12836 assign(rLo, binop(Iop_And64,mkexpr(permdLo),mkexpr(mask0x80lo)) );
12840 binop(Iop_64HLtoV128, mkexpr(rHi), mkexpr(rLo))
12922 assign(res, binop(isD ? Iop_RoundF64toInt : Iop_RoundF32toInt,
12972 binop(Iop_Or32,
12973 binop(Iop_Shl32,
12975 binop(Iop_CmpEQ32, mkexpr(res32), mkU32(0))),
12977 binop(Iop_Shl32,
12979 binop(Iop_CmpEQ32, mkexpr(src32), mkU32(0))),
13008 binop(Iop_CmpEQ16, getIReg(2,R_ECX), mkU16(0)),
13052 assign(t2, loadLE(Ity_I32, binop(Iop_Add32,mkexpr(t1),mkU32(0) )));
13053 assign(t3, loadLE(Ity_I32, binop(Iop_Add32,mkexpr(t1),mkU32(4) )));
13054 assign(t4, loadLE(Ity_I32, binop(Iop_Add32,mkexpr(t1),mkU32(8) )));
13056 putIReg(4, R_ESP,binop(Iop_Add32, mkexpr(t1), mkU32(12)));
13087 assign(t1, binop(Iop_Sub32, getIReg(4,R_ESP), mkU32(4)));
13134 putIReg(4, R_ESP, binop(Iop_Add32, mkexpr(t1), mkU32(4)) );
13153 binop(Iop_16HLto32,
13174 binop(Iop_And32,
13175 binop(Iop_Shr32, mkexpr(t2), mkU8(16)),
13204 binop(Iop_16HLto32,
13224 binop(Iop_And32,
13225 binop(Iop_Shr32, mkexpr(t2), mkU8(16)),
13256 binop(mkSizedOp(ty,Iop_Sar8),
13310 assign( t1, binop(mkSizedOp(ty,Iop_Add8),
13329 assign( t1, binop(mkSizedOp(ty,Iop_Sub8),
13509 binop(Iop_CmpEQ32, getIReg(4,R_ECX), mkU32(0)),
13532 putIReg(4, R_ECX, binop(Iop_Sub32, getIReg(4,R_ECX), mkU32(1)));
13535 cond = binop(Iop_CmpNE32, count, mkU32(0));
13906 putIReg(4, R_ESP, binop(Iop_Add32, mkexpr(t2), mkU32(sz)));
13916 putIReg(4, R_ESP, binop(Iop_Add32, mkexpr(t2), mkU32(sz)));
13935 putIReg(4,R_EAX, loadLE(Ity_I32, binop(Iop_Add32,mkexpr(t5),mkU32(28)) ));
13936 putIReg(4,R_ECX, loadLE(Ity_I32, binop(Iop_Add32,mkexpr(t5),mkU32(24)) ));
13937 putIReg(4,R_EDX, loadLE(Ity_I32, binop(Iop_Add32,mkexpr(t5),mkU32(20)) ));
13938 putIReg(4,R_EBX, loadLE(Ity_I32, binop(Iop_Add32,mkexpr(t5),mkU32(16)) ));
13940 putIReg(4,R_EBP, loadLE(Ity_I32, binop(Iop_Add32,mkexpr(t5),mkU32( 8)) ));
13941 putIReg(4,R_ESI, loadLE(Ity_I32, binop(Iop_Add32,mkexpr(t5),mkU32( 4)) ));
13942 putIReg(4,R_EDI, loadLE(Ity_I32, binop(Iop_Add32,mkexpr(t5),mkU32( 0)) ));
13945 putIReg( 4, R_ESP, binop(Iop_Add32, mkexpr(t5), mkU32(8*4)) );
13975 putIReg(4, R_ESP, binop(Iop_Add32, mkexpr(t1), mkU32(sz)) );
14011 assign(t2, binop(Iop_Sub32, getIReg(4, R_ESP), mkU32(sz)));
14027 assign( t1, binop(Iop_Sub32,getIReg(4,R_ESP),mkU32(sz)) );
14041 assign( t1, binop(Iop_Sub32,getIReg(4,R_ESP),mkU32(sz)) );
14050 assign( t2, binop(Iop_Or32,
14057 assign( t3, binop(Iop_Or32,
14059 binop(Iop_And32,
14066 assign( t4, binop(Iop_Or32,
14068 binop(Iop_And32,
14069 binop(Iop_Shl32, IRExpr_Get(OFFB_IDFLAG,Ity_I32),
14076 assign( t5, binop(Iop_Or32,
14078 binop(Iop_And32,
14079 binop(Iop_Shl32, IRExpr_Get(OFFB_ACFLAG,Ity_I32),
14108 assign( t5, binop(Iop_Sub32, mkexpr(t0), mkU32(8*4)) );
14114 storeLE( binop(Iop_Add32,mkexpr(t5),mkU32(28)), getIReg(4,R_EAX) );
14115 storeLE( binop(Iop_Add32,mkexpr(t5),mkU32(24)), getIReg(4,R_ECX) );
14116 storeLE( binop(Iop_Add32,mkexpr(t5),mkU32(20)), getIReg(4,R_EDX) );
14117 storeLE( binop(Iop_Add32,mkexpr(t5),mkU32(16)), getIReg(4,R_EBX) );
14118 storeLE( binop(Iop_Add32,mkexpr(t5),mkU32(12)), mkexpr(t0) /*esp*/);
14119 storeLE( binop(Iop_Add32,mkexpr(t5),mkU32( 8)), getIReg(4,R_EBP) );
14120 storeLE( binop(Iop_Add32,mkexpr(t5),mkU32( 4)), getIReg(4,R_ESI) );
14121 storeLE( binop(Iop_Add32,mkexpr(t5),mkU32( 0)), getIReg(4,R_EDI) );
14191 assign( t1, binop(Iop_And32, mkexpr(t0),
14196 assign( t1, binop(Iop_Or32, mkexpr(t0),
14201 assign( t1, binop(Iop_Xor32, mkexpr(t0),
14219 assign( t0, binop(Iop_And32,
14222 assign( t1, binop(Iop_Sar32,
14223 binop(Iop_Shl32, mkexpr(t0), mkU8(31)),
14404 binop(Iop_Add32,
14786 binop(Iop_CasCmpEQ32,
14787 binop(Iop_Or32,
14788 binop(Iop_Xor32, mkexpr(oldHi), mkexpr(expdHi)),
14789 binop(Iop_Xor32, mkexpr(oldLo), mkexpr(expdLo))
14814 binop(Iop_Or32,
14815 binop(Iop_And32, mkexpr(flags_old),
14817 binop(Iop_Shl32,
14818 binop(Iop_And32,