Home | History | Annotate | Download | only in priv

Lines Matching refs:binop

248 static IRExpr* binop ( IROp op, IRExpr* a1, IRExpr* a2 )
1592 binop(Iop_And64,
1619 binop( mkSizedOp(tyE,Iop_CasCmpNE8),
1857 assign( guardB, binop(Iop_CmpNE8, mkexpr(guard), mkU8(0)) );
2016 assign( oldc, binop(Iop_And64,
2022 assign( tres, binop(plus,
2023 binop(plus,mkexpr(ta1),mkexpr(ta2)),
2042 stmt( IRStmt_Put( OFFB_CC_DEP2, widenUto64(binop(xor, mkexpr(ta2),
2075 assign( oldc, binop(Iop_And64,
2081 assign( tres, binop(minus,
2082 binop(minus,mkexpr(ta1),mkexpr(ta2)),
2101 stmt( IRStmt_Put( OFFB_CC_DEP2, widenUto64(binop(xor, mkexpr(ta2),
2294 binop(Iop_Sub64, mkexpr(new_rsp), mkU64(szB)),
2334 virtual = binop(Iop_Add64, virtual,
2344 virtual = binop(Iop_Add64, virtual,
2411 //.. binop(Iop_CmpNE32, unop(Iop_64HIto32, mkexpr(r64)), mkU32(0)),
2493 binop(Iop_Add64,getIRegRexB(8,pfx,rm),mkU64(d))));
2507 binop(Iop_Add64,getIRegRexB(8,pfx,rm),mkU64(d))));
2532 binop(Iop_Add64, mkU64(guest_RIP_next_assumed),
2576 binop(Iop_Add64,
2578 binop(Iop_Shl64, getIReg64rexX(pfx,index_r),
2590 binop(Iop_Add64,
2591 binop(Iop_Shl64, getIReg64rexX(pfx,index_r),
2636 binop(Iop_Add64, getIRegRexB(8,pfx,base_r), mkU64(d)) ));
2651 binop(Iop_Add64,
2652 binop(Iop_Add64,
2654 binop(Iop_Shl64,
2683 binop(Iop_Add64, getIRegRexB(8,pfx,base_r), mkU64(d)) ));
2698 binop(Iop_Add64,
2699 binop(Iop_Add64,
2701 binop(Iop_Shl64,
2792 return disAMode_copy2tmp( binop(Iop_Add64, getIRegRexB(8,pfx,base_r),
2958 assign( dst1, binop(mkSizedOp(ty,op8), mkexpr(dst0), mkexpr(src)) );
2987 assign( dst1, binop(mkSizedOp(ty,op8), mkexpr(dst0), mkexpr(src)) );
3072 assign(dst1, binop(mkSizedOp(ty,op8), mkexpr(dst0), mkexpr(src)));
3115 assign(dst1, binop(mkSizedOp(ty,op8), mkexpr(dst0), mkexpr(src)));
3258 assign(dst1, binop(mkSizedOp(ty,op8), mkexpr(dst0), mkexpr(src)) );
3264 assign(dst1, binop(mkSizedOp(ty,op8), mkexpr(dst0), mkexpr(src)) );
3339 assign( src128, binop(Iop_64HLto128,
3342 assign( dst128, binop(op, mkexpr(src128), mkexpr(t)) );
3353 binop(Iop_32HLto64, getIRegRDX(4), getIRegRAX(4)) );
3355 binop(op, mkexpr(src64), mkexpr(t)) );
3363 binop(Iop_16HLto32,
3366 assign( dst64, binop(op, mkexpr(src64), unop(widen1632,mkexpr(t))) );
3378 binop(op, mkexpr(src64),
3434 assign(dst1, binop(mkSizedOp(ty,op8), mkexpr(dst0), mkexpr(src)));
3476 assign(dst1, binop(mkSizedOp(ty,op8), mkexpr(dst0), mkexpr(src)));
3637 assign( shift_amt, binop(Iop_And8, shift_expr, mkU8(mask)) );
3644 assign( res64, binop(op64, mkexpr(pre64), mkexpr(shift_amt)) );
3648 binop(op64,
3650 binop(Iop_And8,
3651 binop(Iop_Sub8,
3677 assign(rot_amt64, binop(Iop_And8, shift_expr, mkU8(mask)));
3682 assign(rot_amt, binop(Iop_And8, mkexpr(rot_amt64), mkU8(8*sz-1)));
3688 binop( mkSizedOp(ty,Iop_Or8),
3689 binop( mkSizedOp(ty,Iop_Shl8),
3693 binop( mkSizedOp(ty,Iop_Shr8),
3695 binop(Iop_Sub8,mkU8(8*sz), mkexpr(rot_amt))
3705 binop( mkSizedOp(ty,Iop_Or8),
3706 binop( mkSizedOp(ty,Iop_Shr8),
3710 binop( mkSizedOp(ty,Iop_Shl8),
3712 binop(Iop_Sub8,mkU8(8*sz), mkexpr(rot_amt))
3728 assign(rot_amt64b, binop(Iop_CmpNE8, mkexpr(rot_amt64), mkU8(0)) );
3863 assign( t2m, binop(Iop_Or64, mkU64(mask), mkexpr(t2)) );
3866 assign( t2m, binop(Iop_And64, mkU64(mask), mkexpr(t2)) );
3869 assign( t2m, binop(Iop_Xor64, mkU64(mask), mkexpr(t2)) );
3898 binop(Iop_And64,
3899 binop(Iop_Shr64, mkexpr(t2), mkU8(src_val)),
3930 assign( res128, binop(mulOp, mkexpr(t1), mkexpr(tmp)) );
3944 assign( res64, binop(mulOp, mkexpr(t1), mkexpr(tmp)) );
3958 binop(mulOp, mkexpr(t1), mkexpr(tmp)) );
3972 assign( res16, binop(mulOp, mkexpr(t1), mkexpr(tmp)) );
4011 assign(dst1, binop(mkSizedOp(ty,Iop_And8),
4038 assign(dst1, binop(mkSizedOp(ty,Iop_Sub8), mkexpr(dst0),
4100 assign(dst1, binop(mkSizedOp(ty,Iop_And8),
4127 assign(dst1, binop(mkSizedOp(ty,Iop_Sub8), mkexpr(dst0),
4186 assign(t2, binop(Iop_Add8, mkexpr(t1), mkU8(1)));
4191 assign(t2, binop(Iop_Sub8, mkexpr(t1), mkU8(1)));
4215 assign(t2, binop(Iop_Add8, mkexpr(t1), mkU8(1)));
4225 assign(t2, binop(Iop_Sub8, mkexpr(t1), mkU8(1)));
4279 assign(t2, binop(mkSizedOp(ty,Iop_Add8),
4286 assign(t2, binop(mkSizedOp(ty,Iop_Sub8),
4299 assign(t2, binop(Iop_Sub64, getIReg64(R_RSP), mkU64(8)));
4326 assign( t2, binop(Iop_Sub64,getIReg64(R_RSP),mkU64(sz)) );
4362 assign(t2, binop(mkSizedOp(ty,Iop_Add8),
4374 assign(t2, binop(mkSizedOp(ty,Iop_Sub8),
4392 assign(t2, binop(Iop_Sub64, getIReg64(R_RSP), mkU64(8)));
4419 assign( t2, binop(Iop_Sub64,getIReg64(R_RSP),mkU64(sz)) );
4454 binop(Iop_Shl64, IRExpr_Get( OFFB_DFLAG, Ity_I64 ),
4493 incd = binop(Iop_Add64, mkexpr(td), mkexpr(t_inc));
4494 incs = binop(Iop_Add64, mkexpr(ts), mkexpr(t_inc));
4517 incs = binop(Iop_Add64, mkexpr(ts), mkexpr(t_inc));
4540 incd = binop(Iop_Add64, mkexpr(td), mkexpr(t_inc));
4570 incd = binop(Iop_Add64, mkexpr(td), mkexpr(t_inc));
4571 incs = binop(Iop_Add64, mkexpr(ts), mkexpr(t_inc));
4600 incd = binop(Iop_Add64, mkexpr(td), mkexpr(t_inc));
4628 cmp = binop(Iop_CmpEQ32, mkexpr(tc), mkU32(0));
4632 cmp = binop(Iop_CmpEQ64, mkexpr(tc), mkU64(0));
4639 putIReg32(R_RCX, binop(Iop_Sub32, mkexpr(tc), mkU32(1)) );
4641 putIReg64(R_RCX, binop(Iop_Sub64, mkexpr(tc), mkU64(1)) );
4690 assign( resLo, binop( mkSizedOp(ty, Iop_Mul8), mkexpr(te), mkexpr(tg) ) );
4742 assign( resLo, binop( mkSizedOp(ty, Iop_Mul8), mkexpr(te), mkexpr(tl) ));
4778 binop(Iop_Add16,
4779 binop(Iop_And16,
4782 binop(Iop_And16,
4783 binop(Iop_Shr16, mkexpr(old), mkU8(shift[i])),
4806 binop(Iop_Add32,
4807 binop(Iop_And32,
4810 binop(Iop_And32,
4811 binop(Iop_Shr32, mkexpr(old), mkU8(shift[i])),
4835 binop(Iop_Add64,
4836 binop(Iop_And64,
4839 binop(Iop_And64,
4840 binop(Iop_Shr64, mkexpr(old), mkU8(shift[i])),
4865 binop(Iop_Shl64, mkexpr(src64),
4873 binop(Iop_CmpEQ64, mkexpr(src64x), mkU64(0)),
4901 binop(Iop_CmpEQ64, mkexpr(src64), mkU64(0)),
4986 return binop( Iop_And32, get_fpround(), mkU32(3) );
5042 IRExpr_ITE( binop(Iop_CmpNE8, get_ST_TAG(i), mkU8(0)),
5068 IRExpr_ITE( binop(Iop_CmpNE8, get_ST_TAG(i), mkU8(0)),
5099 IRExpr_ITE(binop(Iop_CmpNE8, mkexpr(old_tag), mkU8(0)),
5116 put_ftop( binop(Iop_Sub32, get_ftop(), mkU32(1)) );
5124 put_ftop( binop(Iop_Sub32, get_ftop(), unop(Iop_1Uto32,mkexpr(cond))) );
5133 put_ftop( binop(Iop_Add32, get_ftop(), mkU32(1)) );
5141 IRExpr* cleared = binop(Iop_And64, get_C3210(), mkU64(~AMD64G_FC_MASK_C2));
5142 put_C3210( binop(Iop_Or64,
5144 binop(Iop_Shl64, e, mkU8(AMD64G_FC_SHIFT_C2))) );
5172 binop(Iop_And32,
5173 binop(Iop_Shr32, unop(Iop_64HIto32, mkexpr(i64)), mkU8(20)),
5177 binop(Iop_CmpLE32U, mkexpr(exponent), mkU32(0x43D)));
5188 binop(Iop_Or32,
5189 binop(Iop_Shl32,
5190 binop(Iop_And32, get_ftop(), mkU32(7)),
5192 binop(Iop_And32, unop(Iop_64to32, get_C3210()),
5307 binop( Iop_And64,
5309 binop(Iop_CmpF64, get_ST(0), get_ST(i))),
5326 binop(Iop_CmpLT64U,
5328 binop(Iop_Add32, mkexpr(t32), mkU32(32768))),
5376 binop( Iop_And32,
5377 binop(Iop_Shl32,
5378 binop(Iop_CmpF64,
5394 binop( Iop_And32,
5395 binop(Iop_Shl32,
5396 binop(Iop_CmpF64,
5446 binop( Iop_And32,
5447 binop(Iop_Shl32,
5448 binop(Iop_CmpF64, get_ST(0), get_ST(r_dst)),
5461 binop( Iop_And32,
5462 binop(Iop_Shl32,
5463 binop(Iop_CmpF64, get_ST(0), get_ST(r_dst)),
5514 binop(Iop_F64toF32, get_roundingmode(), get_ST(0)));
5520 binop(Iop_F64toF32, get_roundingmode(), get_ST(0)));
5571 binop(Iop_CmpNE32, mkexpr(ew), mkU32(0)),
5614 binop(Iop_CmpNE32, mkexpr(ew), mkU32(0)),
5793 binop(Iop_2xm1F64,
5817 binop(Iop_TanF64,
5828 set_C2( binop(Iop_Xor64,
5904 put_ftop( binop(Iop_Add32, get_ftop(), mkU32(1)) );
5942 binop(Iop_SqrtF64,
5956 binop(Iop_SinF64,
5966 binop(Iop_CosF64,
5969 set_C2( binop(Iop_Xor64,
5978 binop(Iop_RoundF64toInt, get_roundingmode(), get_ST(0)) );
6001 binop(isSIN ? Iop_SinF64 : Iop_CosF64,
6007 set_C2( binop(Iop_Xor64,
6132 binop( Iop_And32,
6133 binop(Iop_Shl32,
6134 binop(Iop_CmpF64, get_ST(0), get_ST(1)),
6171 binop(Iop_F64toI32S, mkU32(Irrm_ZERO), get_ST(0)) );
6178 binop(Iop_F64toI32S, get_roundingmode(), get_ST(0)) );
6184 binop(Iop_F64toI32S, get_roundingmode(), get_ST(0)) );
6385 //.. binop( Iop_And32,
6386 //.. binop(Iop_Shl32,
6387 //.. binop(Iop_CmpF64,
6400 binop( Iop_And32,
6401 binop(Iop_Shl32,
6402 binop(Iop_CmpF64,
6491 binop(Iop_F64toI64S, mkU32(Irrm_ZERO), get_ST(0)) );
6574 binop(Iop_CmpNE32, mkexpr(ew), mkU32(0)),
6702 binop( Iop_And32,
6703 binop(Iop_Shl32,
6704 binop(Iop_CmpF64, get_ST(0), get_ST(r_dst)),
6716 binop( Iop_And32,
6717 binop(Iop_Shl32,
6718 binop(Iop_CmpF64, get_ST(0), get_ST(r_dst)),
6819 binop( Iop_And32,
6820 binop(Iop_Shl32,
6821 binop(Iop_CmpF64, get_ST(0), get_ST(1)),
6877 binop(Iop_F64toI32S, mkU32(Irrm_ZERO), get_ST(0)) ));
6885 binop(Iop_F64toI32S, get_roundingmode(), get_ST(0)) ));
6892 binop(Iop_F64toI32S, get_roundingmode(), get_ST(0)) ));
6899 put_ST(0, binop(Iop_I64StoF64,
6907 binop(Iop_F64toI64S, get_roundingmode(), get_ST(0)) );
6937 binop(Iop_Or32,
6938 binop(Iop_Shl32,
6939 binop(Iop_And32, get_ftop(), mkU32(7)),
6941 binop(Iop_And32,
7159 assign(res, binop(op, argL, argR));
7235 binop(Iop_CmpLT64U,mkexpr(amt),mkU64(size)),
7236 binop(op, mkexpr(g0), mkexpr(amt8)),
7245 binop(Iop_CmpLT64U,mkexpr(amt),mkU64(size)),
7246 binop(op, mkexpr(g0), mkexpr(amt8)),
7247 binop(op, mkexpr(g0), mkU8(size-1))
7298 : binop(op, mkexpr(e0), mkU8(amt))
7303 ? binop(op, mkexpr(e0), mkU8(size-1))
7304 : binop(op, mkexpr(e0), mkU8(amt))
7340 binop( Iop_32HLto64,
7351 binop( Iop_32HLto64,
7678 assign( mask, binop(Iop_SarN8x8, mkexpr(regM), mkU8(7)) );
7681 binop(Iop_Or64,
7682 binop(Iop_And64,
7685 binop(Iop_And64,
7722 binop(Iop_CmpNE8, mkexpr(amt), mkU8(0)),
7723 binop(Iop_Or64,
7724 binop(Iop_Shl64, mkexpr(base), mkexpr(amt)),
7725 binop(Iop_Shr64, mkexpr(xtra),
7726 binop(Iop_Sub8, mkU8(64), mkexpr(amt)))
7743 binop(Iop_CmpNE8, mkexpr(amt), mkU8(0)),
7744 binop(Iop_Or64,
7745 binop(Iop_Shr64, mkexpr(base), mkexpr(amt)),
7746 binop(Iop_Shl64, mkexpr(xtra),
7747 binop(Iop_Sub8, mkU8(64), mkexpr(amt)))
7824 assign( tmpSH, binop(Iop_And8, shift_amt, mkU8(mask)) );
7825 assign( tmpSS, binop(Iop_And8,
7826 binop(Iop_Sub8, mkexpr(tmpSH), mkU8(1) ),
7838 assign( tmp64, binop(Iop_32HLto64, mkexpr(esrc), mkexpr(gsrc)) );
7840 binop(Iop_Shr64,
7841 binop(Iop_Shl64, mkexpr(tmp64), mkexpr(tmpSH)),
7844 binop(Iop_Shr64,
7845 binop(Iop_Shl64, mkexpr(tmp64), mkexpr(tmpSS)),
7850 assign( tmp64, binop(Iop_32HLto64, mkexpr(gsrc), mkexpr(esrc)) );
7851 assign( res64, binop(Iop_Shr64, mkexpr(tmp64), mkexpr(tmpSH)) );
7852 assign( rss64, binop(Iop_Shr64, mkexpr(tmp64), mkexpr(tmpSS)) );
7857 binop(Iop_32HLto64,
7858 binop(Iop_16HLto32, mkexpr(esrc), mkexpr(gsrc)),
7859 binop(Iop_16HLto32, mkexpr(gsrc), mkexpr(gsrc))
7863 binop(Iop_Shr64,
7864 binop(Iop_Shl64, mkexpr(tmp64), mkexpr(tmpSH)),
7868 binop(Iop_Shr64,
7869 binop(Iop_Shl64,
7870 binop(Iop_Shl64, unop(Iop_16Uto64, mkexpr(esrc)),
7878 binop(Iop_32HLto64,
7879 binop(Iop_16HLto32, mkexpr(gsrc), mkexpr(gsrc)),
7880 binop(Iop_16HLto32, mkexpr(gsrc), mkexpr(esrc))
7883 assign( res64, binop(Iop_Shr64, mkexpr(tmp64), mkexpr(tmpSH)) );
7885 assign( rss64, binop(Iop_Shr64,
8005 assign( t_rsp, binop(Iop_Sub64, getIReg64(R_RSP), mkU64(288)) );
8015 assign( t_bitno1, binop(Iop_And64,
8032 binop(Iop_Add64,
8034 binop(Iop_Sar64, mkexpr(t_bitno1), mkU8(3))) );
8040 binop(Iop_And64, mkexpr(t_bitno1), mkU64(7))) );
8046 assign( t_mask, binop(Iop_Shl8, mkU8(1), mkexpr(t_bitno2)) );
8057 binop(Iop_Or8, mkexpr(t_fetched), mkexpr(t_mask)) );
8061 binop(Iop_Xor8, mkexpr(t_fetched), mkexpr(t_mask)) );
8065 binop(Iop_And8, mkexpr(t_fetched),
8086 binop(Iop_And64,
8087 binop(Iop_Shr64,
8104 putIReg64(R_RSP, binop(Iop_Add64, mkexpr(t_rsp), mkU64(288)) );
8160 assign( srcB, binop(Iop_ExpCmpNE64, mkexpr(src64), mkU64(0)) );
8211 : binop(Iop_Sub64,
8282 binop(Iop_Or64,
8283 binop(Iop_And64, mkexpr(oldflags), mkU64(AMD64G_CC_MASK_O)),
8284 binop(Iop_And64,
8285 binop(Iop_Shr64, getIReg64(R_RAX), mkU8(8)),
8306 = binop(Iop_And64, getIReg64(R_RAX), mkU64(~0xFF00ULL));
8308 = binop(Iop_Or64, binop(Iop_And64, mkexpr(flags), mkU64(mask_SZACP)),
8311 = binop(Iop_Or64, rax_with_hole,
8312 binop(Iop_Shl64, new_byte, mkU8(8)));
8521 assign( tmpt1, binop(mkSizedOp(ty,Iop_Add8),
8536 assign( tmpt1, binop(mkSizedOp(ty,Iop_Add8),
8551 assign( tmpt1, binop(mkSizedOp(ty,Iop_Add8),
8628 //.. assign( ta, binop(Iop_Sub32, getIReg(4, R_ESP), mkU32(sz)) );
8645 //.. putIReg(4, R_ESP, binop(Iop_Add32, mkexpr(ta), mkU32(sz)) );
8658 assign(t3, binop(Iop_Add64, mkexpr(t1), mkU64(8+d64)));
8722 : binop(op, gpart,
8737 : binop(op, gpart,
8782 binop(op, gpart,
8796 binop(op, gpart, mkexpr(epart)) );
8818 binop(op, gpart,
8832 binop(op, gpart, mkexpr(epart)) );
8859 IRExpr* res = needsIRRM ? binop(op, get_FAKE_roundingmode(), src)
8870 IRExpr* res = needsIRRM ? binop(op, get_FAKE_roundingmode(), src)
8902 binop( Iop_SetV128lo32,
8913 binop( Iop_SetV128lo32,
8946 binop( Iop_SetV128lo64,
8957 binop( Iop_SetV128lo64,
9001 eLeft ? binop(op, epart, gpart)
9002 : binop(op, gpart, epart) );
9151 assign( plain, binop(op, getXMMReg(gregOfRexRM(pfx,rm)),
9166 binop(
9192 binop(Iop_XorV128, mkexpr(plain), mkV128(mask)) );
9253 binop(Iop_CmpLT64U, mkexpr(amt), mkU64(size)),
9254 binop(op, mkexpr(g0), mkexpr(amt8)),
9263 binop(Iop_CmpLT64U, mkexpr(amt), mkU64(size)),
9264 binop(op, mkexpr(g0), mkexpr(amt8)),
9265 binop(op, mkexpr(g0), mkU8(size-1))
9315 : binop(op, mkexpr(e0), mkU8(amt))
9320 ? binop(op, mkexpr(e0), mkU8(size-1))
9321 : binop(op, mkexpr(e0), mkU8(amt))
9338 binop( Iop_And64,
9383 binop( Iop_64HLtoV128,
9384 binop(Iop_32HLto64, mkexpr(t3), mkexpr(t2)),
9385 binop(Iop_32HLto64, mkexpr(t1), mkexpr(t0))
9422 binop( Iop_32HLto64,
9423 binop(Iop_16HLto32, mkexpr(t3), mkexpr(t2)),
9424 binop(Iop_16HLto32, mkexpr(t1), mkexpr(t0))
9501 binop( Iop_V128HLtoV256,
9502 binop( Iop_64HLtoV128,
9503 binop(Iop_32HLto64, mkexpr(t7), mkexpr(t6)),
9504 binop(Iop_32HLto64, mkexpr(t5), mkexpr(t4)) ),
9505 binop( Iop_64HLtoV128,
9506 binop(Iop_32HLto64, mkexpr(t3), mkexpr(t2)),
9507 binop(Iop_32HLto64, mkexpr(t1), mkexpr(t0)) )
9517 binop( Iop_V128HLtoV256,
9518 binop(Iop_64HLtoV128, mkexpr(t3), mkexpr(t2)),
9519 binop(Iop_64HLtoV128, mkexpr(t1), mkexpr(t0))
9542 binop(Iop_SarN32x2,
9543 binop(Iop_InterleaveHI16x4, mkexpr(aa), mkexpr(aa)),
9546 binop(Iop_SarN32x2,
9547 binop(Iop_InterleaveLO16x4, mkexpr(aa), mkexpr(aa)),
9550 binop(Iop_SarN32x2,
9551 binop(Iop_InterleaveHI16x4, mkexpr(bb), mkexpr(bb)),
9554 binop(Iop_SarN32x2,
9555 binop(Iop_InterleaveLO16x4, mkexpr(bb), mkexpr(bb)),
9560 binop(
9562 binop(
9564 binop(
9566 binop(Iop_Mul32x2, mkexpr(aahi32s), mkexpr(bbhi32s)),
9576 binop(
9578 binop(
9580 binop(
9582 binop(Iop_Mul32x2, mkexpr(aalo32s), mkexpr(bblo32s)),
9591 binop(Iop_CatEvenLanes16x4, mkexpr(rHi), mkexpr(rLo));
9622 assign( bbNeg, binop(opSub, mkexpr(zero), mkexpr(bb)) );
9623 assign( negMask, binop(opCmpGTS, mkexpr(zero), mkexpr(aa)) );
9624 assign( posMask, binop(opCmpGTS, mkexpr(aa), mkexpr(zero)) );
9627 binop(Iop_Or64,
9628 binop(Iop_And64, mkexpr(bb), mkexpr(posMask)),
9629 binop(Iop_And64, mkexpr(bbNeg), mkexpr(negMask)) );
9660 assign( negMask, binop(opSarN, mkexpr(aa), mkU8(8*laneszB-1)) );
9663 assign( aaNeg, binop(opSub, mkexpr(zero), mkexpr(aa)) );
9665 binop(Iop_Or64,
9666 binop(Iop_And64, mkexpr(aa), mkexpr(posMask)),
9667 binop(Iop_And64, mkexpr(aaNeg), mkexpr(negMask)) ));
9679 assign(res, binop(Iop_64HLtoV128,
9706 assign(res, binop(Iop_V128HLtoV256,
9729 binop(Iop_Or64,
9730 binop(Iop_Shl64, mkexpr(hi64), mkU8(8*(8-byteShift))),
9731 binop(Iop_Shr64, mkexpr(lo64), mkU8(8*byteShift))
9771 assign( rHi, binop(Iop_Shr64, mkexpr(dHi), mkU8(8*(imm8-16))) );
9780 assign( rLo, binop(Iop_Shr64, mkexpr(dHi), mkU8(8*(imm8-24))) );
9789 assign( res, binop(Iop_64HLtoV128, mkexpr(rHi), mkexpr(rLo)));
9803 binop(Iop_CmpNE64,
9804 binop(Iop_And64,mkexpr(effective_addr),mkU64(mask)),
9991 binop( Iop_And64,
9993 binop(Iop_CmpF64, mkexpr(argL), mkexpr(argR)) ),
10034 binop( Iop_And64,
10036 binop(Iop_CmpF64,
10161 assign( lo64r, binop( Iop_Shr64, mkexpr(hi64), mkU8( 8*(imm-8) ) ));
10163 assign( hi64r, binop( Iop_Shr64, mkexpr(hi64), mkU8(8 * imm) ));
10165 binop( Iop_Or64,
10166 binop(Iop_Shr64, mkexpr(lo64),
10168 binop(Iop_Shl64, mkexpr(hi64),
10174 assign( dV, binop(Iop_64HLtoV128, mkexpr(hi64r), mkexpr(lo64r)) );
10208 assign( hi64r, binop( Iop_Shl64, mkexpr(lo64), mkU8( 8*(imm-8) ) ));
10210 assign( lo64r, binop( Iop_Shl64, mkexpr(lo64), mkU8(8 * imm) ));
10212 binop( Iop_Or64,
10213 binop(Iop_Shl64, mkexpr(hi64),
10215 binop(Iop_Shr64, mkexpr(lo64),
10221 assign( dV, binop(Iop_64HLtoV128, mkexpr(hi64r), mkexpr(lo64r)) );
10263 binop( Iop_F64toI32S, mkexpr(rmode), mkexpr(f64lo)) );
10267 binop( Iop_F64toI64S, mkexpr(rmode), mkexpr(f64lo)) );
10311 binop( Iop_F64toI32S,
10317 binop( Iop_F64toI64S,
10347 binop(Iop_Add64,mkexpr(addr),mkU64(4))) );
10385 binop(Iop_Add64,mkexpr(addr),mkU64(4))) );
10387 binop(Iop_Add64,mkexpr(addr),mkU64(8))) );
10389 binop(Iop_Add64,mkexpr(addr),mkU64(12))) );
10434 # define CVT(_t) binop( Iop_F64toF32, mkexpr(rmode), mkexpr(_t) )
10480 binop( Iop_F64toI32S, \
10530 binop( Iop_F64toI32S, \
10588 # define CVT(_t) binop( Iop_F64toI32S, \
10642 # define CVT(_t) binop( Iop_F64toI32S, \
10691 # define CVT(_t) binop( Iop_F64toF32, \
10741 # define CVT(_t) binop( Iop_F64toF32, \
10793 putIReg32(rG, binop(Iop_16HLto32, mkexpr(t3), mkexpr(t2)));
10829 assign(res, xIsH ? binop(Iop_64HLtoV128, mkexpr(s1), mkexpr(d1))
10830 : binop(Iop_64HLtoV128, mkexpr(s0), mkexpr(d0)));
10870 assign(rV, binop(Iop_V128HLtoV256, mkexpr(rVhi), mkexpr(rVlo)));
10908 assign(rV, binop(Iop_V128HLtoV256, mkexpr(rVhi), mkexpr(rVlo)));
10929 assign(res, binop( Iop_64HLtoV128,
10947 assign(rV, binop(Iop_V128HLtoV256, mkexpr(rVhi), mkexpr(rVlo)));
10967 assign ( res, binop( Iop_OrV128,
10968 binop( Iop_AndV128, mkexpr(sV),
10970 binop( Iop_AndV128, mkexpr(dV),
10985 assign(rV, binop(Iop_V128HLtoV256, mkexpr(rVhi), mkexpr(rVlo)));
11000 assign ( res, binop( Iop_OrV128,
11001 binop( Iop_AndV128, mkexpr(sV),
11003 binop( Iop_AndV128, mkexpr(dV),
11018 assign(rV, binop(Iop_V128HLtoV256, mkexpr(rVhi), mkexpr(rVlo)));
11037 assign ( res, binop( Iop_OrV128,
11038 binop( Iop_AndV128, mkexpr(sV),
11040 binop( Iop_AndV128, mkexpr(dV),
11055 assign(res, binop(Iop_64HLtoV128,
11056 binop( Iop_MullU32, mkexpr(d2), mkexpr(s2)),
11057 binop( Iop_MullU32, mkexpr(d0), mkexpr(s0)) ));
11071 assign(res, binop(Iop_V128HLtoV256,
11087 assign(res, binop(Iop_64HLtoV128,
11088 binop( Iop_MullS32, mkexpr(d2), mkexpr(s2)),
11089 binop( Iop_MullS32, mkexpr(d0), mkexpr(s0)) ));
11103 assign(res, binop(Iop_V128HLtoV256,
11127 assign( res, binop(Iop_64HLtoV128, mkexpr(resHi), mkexpr(resLo))) ;
11139 assign(res, binop(Iop_V128HLtoV256,
11162 assign( res, binop(Iop_64HLtoV128, mkexpr(a1), mkexpr(s0)) );
11279 assign(dV, xIsH ? binop(Iop_64HLtoV128, mkexpr(dVmut), mkexpr(sVcon))
11280 : binop(Iop_64HLtoV128, mkexpr(sVcon), mkexpr(dVmut)) );
11486 binop(Iop_CmpNE64, unop(Iop_32Uto64,mkexpr(ew)), mkU64(0)),
11504 assign(halfshift, binop(Iop_Shl64,
11508 assign(tmp128, binop(Iop_64HLtoV128, mkU64(0), mkexpr(halfshift)));
11510 assign(tmp128, binop(Iop_64HLtoV128, mkexpr(halfshift), mkU64(0)));
11515 assign( res, binop(Iop_OrV128,
11517 binop(Iop_AndV128, mkexpr(v128), mkV128(mask))) );
11532 binop(Iop_64HLtoV128,
11552 assign(res, binop(Iop_V128HLtoV256,
11578 binop(Iop_64HLtoV128,
11579 binop(Iop_SarN8x8,
11582 binop(Iop_SarN8x8,
11586 assign( newdata, binop(Iop_OrV128,
11587 binop(Iop_AndV128,
11590 binop(Iop_AndV128,
11613 assign( t0, binop( Iop_And32,
11614 binop(Iop_Shr32, getXMMRegLane32(rE,0), mkU8(31)),
11616 assign( t1, binop( Iop_And32,
11617 binop(Iop_Shr32, getXMMRegLane32(rE,1), mkU8(30)),
11619 assign( t2, binop( Iop_And32,
11620 binop(Iop_Shr32, getXMMRegLane32(rE,2), mkU8(29)),
11622 assign( t3, binop( Iop_And32,
11623 binop(Iop_Shr32, getXMMRegLane32(rE,3), mkU8(28)),
11625 putIReg32( rG, binop(Iop_Or32,
11626 binop(Iop_Or32, mkexpr(t0), mkexpr(t1)),
11627 binop(Iop_Or32, mkexpr(t2), mkexpr(t3)) ) );
11648 assign( t0, binop( Iop_And32,
11649 binop(Iop_Shr32, getYMMRegLane32(rE,0), mkU8(31)),
11651 assign( t1, binop( Iop_And32,
11652 binop(Iop_Shr32, getYMMRegLane32(rE,1), mkU8(30)),
11654 assign( t2, binop( Iop_And32,
11655 binop(Iop_Shr32, getYMMRegLane32(rE,2), mkU8(29)),
11657 assign( t3, binop( Iop_And32,
11658 binop(Iop_Shr32, getYMMRegLane32(rE,3), mkU8(28)),
11660 assign( t4, binop( Iop_And32,
11661 binop(Iop_Shr32, getYMMRegLane32(rE,4), mkU8(27)),
11663 assign( t5, binop( Iop_And32,
11664 binop(Iop_Shr32, getYMMRegLane32(rE,5), mkU8(26)),
11666 assign( t6, binop( Iop_And32,
11667 binop(Iop_Shr32, getYMMRegLane32(rE,6), mkU8(25)),
11669 assign( t7, binop( Iop_And32,
11670 binop(Iop_Shr32, getYMMRegLane32(rE,7), mkU8(24)),
11672 putIReg32( rG, binop(Iop_Or32,
11673 binop(Iop_Or32,
11674 binop(Iop_Or32, mkexpr(t0), mkexpr(t1)),
11675 binop(Iop_Or32, mkexpr(t2), mkexpr(t3)) ),
11676 binop(Iop_Or32,
11677 binop(Iop_Or32, mkexpr(t4), mkexpr(t5)),
11678 binop(Iop_Or32, mkexpr(t6), mkexpr(t7)) ) ) );
11693 assign( t0, binop( Iop_And32,
11694 binop(Iop_Shr32, getXMMRegLane32(rE,1), mkU8(31)),
11696 assign( t1, binop( Iop_And32,
11697 binop(Iop_Shr32, getXMMRegLane32(rE,3), mkU8(30)),
11699 putIReg32( rG, binop(Iop_Or32, mkexpr(t0), mkexpr(t1) ) );
11716 assign( t0, binop( Iop_And32,
11717 binop(Iop_Shr32, getYMMRegLane32(rE,1), mkU8(31)),
11719 assign( t1, binop( Iop_And32,
11720 binop(Iop_Shr32, getYMMRegLane32(rE,3), mkU8(30)),
11722 assign( t2, binop( Iop_And32,
11723 binop(Iop_Shr32, getYMMRegLane32(rE,5), mkU8(29)),
11725 assign( t3, binop( Iop_And32,
11726 binop(Iop_Shr32, getYMMRegLane32(rE,7), mkU8(28)),
11728 putIReg32( rG, binop(Iop_Or32,
11729 binop(Iop_Or32, mkexpr(t0), mkexpr(t1)),
11730 binop(Iop_Or32, mkexpr(t2), mkexpr(t3)) ) );
12285 binop(Iop_F64toF32,
12292 binop(Iop_F64toF32,
12322 binop(Iop_F64toF32,
12342 binop(Iop_F64toF32,
12344 binop(Iop_I64StoF64, mkexpr(rmode), mkexpr(arg64)) ) );
12389 binop( Iop_I64StoF64,
12483 assign(f32hi, loadLE(Ity_F32, binop( Iop_Add64,
12500 binop( Iop_32HLto64,
12501 binop( Iop_F64toI32S,
12504 binop( Iop_F64toI32S,
12569 assign(f64hi, loadLE(Ity_F64, binop( Iop_Add64,
12586 binop( Iop_32HLto64,
12587 binop( Iop_F64toI32S, mkexpr(rmode), mkexpr(f64hi) ),
12588 binop( Iop_F64toI32S, mkexpr(rmode), mkexpr(f64lo) )
12867 binop( Iop_F64toF32, mkexpr(rmode), mkexpr(f64lo) )
13540 binop( Iop_And64,
13641 storeLE( binop(Iop_Add64, mkexpr(addr), mkU64(160 + xmm * 16)),
13722 binop(Iop_Add64, mkexpr(addr),
14472 binop( Iop_MullU32, mkexpr(t0), mkexpr(t1) ) );
14668 ( rG, binop(Iop_64HLtoV128,mkexpr(d0),mkexpr(d0)) );
14692 assign( d1, loadLE(Ity_I64, binop(Iop_Add64,
14805 assign( leftV, binop(Iop_64HLtoV128, mkexpr(s0), mkexpr(d0)) );
14806 assign( rightV, binop(Iop_64HLtoV128, mkexpr(s1), mkexpr(d1)) );
15039 unop(Iop_Not64, binop(Iop_SarN8x8,mkexpr(sHi),mkU8(7))));
15043 binop(Iop_SarN8x8,
15044 binop(Iop_ShlN8x8,mkexpr(sHi),mkU8(4)),
15047 assign(sAnd7hi, binop(Iop_And64,mkexpr(sHi),mkexpr(sevens)));
15051 binop(
15053 binop(Iop_And64,
15054 binop(Iop_Perm8x8,mkexpr(dHi),mkexpr(sAnd7hi)),
15056 binop(Iop_And64,
15057 binop(Iop_Perm8x8,mkexpr(dLo),mkexpr(sAnd7hi)),
15060 assign(rHi, binop(Iop_And64,mkexpr(permdHi),mkexpr(mask0x80hi)) );
15066 unop(Iop_Not64, binop(Iop_SarN8x8,mkexpr(sLo),mkU8(7))));
15070 binop(Iop_SarN8x8,
15071 binop(Iop_ShlN8x8,mkexpr(sLo),mkU8(4)),
15074 assign(sAnd7lo, binop(Iop_And64,mkexpr(sLo),mkexpr(sevens)));
15078 binop(
15080 binop(Iop_And64,
15081 binop(Iop_Perm8x8,mkexpr(dHi),mkexpr(sAnd7lo)),
15083 binop(Iop_And64,
15084 binop(Iop_Perm8x8,mkexpr(dLo),mkexpr(sAnd7lo)),
15087 assign(rLo, binop(Iop_And64,mkexpr(permdLo),mkexpr(mask0x80lo)) );
15089 assign(res, binop(Iop_64HLtoV128, mkexpr(rHi), mkexpr(rLo)));
15102 assign(res, binop(Iop_V128HLtoV256,
15172 binop(Iop_64HLtoV128,
15173 binop(opV64,
15174 binop(opCatE,mkexpr(sHi),mkexpr(sLo)),
15175 binop(opCatO,mkexpr(sHi),mkexpr(sLo)) ),
15176 binop(opV64,
15177 binop(opCatE,mkexpr(dHi),mkexpr(dLo)),
15178 binop(opCatO,mkexpr(dHi),mkexpr(dLo)) ) ) );
15237 binop(Iop_V128HLtoV256,
15238 binop(Iop_64HLtoV128,
15239 binop(opV64,
15240 binop(opCatE,mkexpr(s3),mkexpr(s2)),
15241 binop(opCatO,mkexpr(s3),mkexpr(s2)) ),
15242 binop(opV64,
15243 binop(opCatE,mkexpr(d3),mkexpr(d2)),
15244 binop(opCatO,mkexpr(d3),mkexpr(d2)) ) ),
15245 binop(Iop_64HLtoV128,
15246 binop(opV64,
15247 binop(opCatE,mkexpr(s1),mkexpr(s0)),
15248 binop(opCatO,mkexpr(s1),mkexpr(s0)) ),
15249 binop(opV64,
15250 binop(opCatE,mkexpr(d1),mkexpr(d0)),
15251 binop(opCatO,mkexpr(d1),mkexpr(d0)) ) ) ) );
15263 assign( sVoddsSX, binop(Iop_SarN16x8, mkexpr(sV), mkU8(8)) );
15264 assign( sVevensSX, binop(Iop_SarN16x8,
15265 binop(Iop_ShlN16x8, mkexpr(sV), mkU8(8)),
15267 assign( dVoddsZX, binop(Iop_ShrN16x8, mkexpr(dV), mkU8(8)) );
15268 assign( dVevensZX, binop(Iop_ShrN16x8,
15269 binop(Iop_ShlN16x8, mkexpr(dV), mkU8(8)),
15273 assign( res, binop(Iop_QAdd16Sx8,
15274 binop(Iop_Mul16x8, mkexpr(sVoddsSX), mkexpr(dVoddsZX)),
15275 binop(Iop_Mul16x8, mkexpr(sVevensSX), mkexpr(dVevensZX))
15290 assign(res, binop(Iop_V128HLtoV256,
15367 binop(
15370 binop(
15373 binop(Iop_And64, mkexpr(sV), mkU64(0x0707070707070707ULL))
15376 unop(Iop_Not64, binop(Iop_SarN8x8, mkexpr(sV), mkU8(7)))
15461 binop(opV64,
15462 binop(opCatE,mkexpr(sV),mkexpr(dV)),
15463 binop(opCatO,mkexpr(sV),mkexpr(dV))
15527 binop(Iop_SarN16x4, mkexpr(sV), mkU8(8)) );
15529 binop(Iop_SarN16x4,
15530 binop(Iop_ShlN16x4, mkexpr(sV), mkU8(8)),
15533 binop(Iop_ShrN16x4, mkexpr(dV), mkU8(8)) );
15535 binop(Iop_ShrN16x4,
15536 binop(Iop_ShlN16x4, mkexpr(dV), mkU8(8)),
15541 binop(Iop_QAdd16Sx4,
15542 binop(Iop_Mul16x4, mkexpr(sVoddsSX), mkexpr(dVoddsZX)),
15543 binop(Iop_Mul16x4, mkexpr(sVevensSX), mkexpr(dVevensZX))
15598 binop(Iop_64HLtoV128,
15682 binop(Iop_64HLtoV128,
15899 binop(Iop_Or64,
15900 binop(Iop_Shr64, mkexpr(sV), mkU8(8*d64)),
15901 binop(Iop_Shl64, mkexpr(dV), mkU8(8*(8-d64))
15908 assign( res, binop(Iop_Shr64, mkexpr(dV), mkU8(8*(d64-8))) );
15994 binop(Iop_Shl64,
15996 binop(Iop_CmpEQ64,
16044 binop(Iop_Or64,
16045 binop(Iop_Shl64,
16047 binop(Iop_CmpEQ64, mkexpr(res64), mkU64(0))),
16049 binop(Iop_Shl64,
16051 binop(Iop_CmpEQ64, mkexpr(src64), mkU64(0))),
16105 binop(Iop_Or64,
16106 binop(Iop_Shl64,
16108 binop(Iop_CmpEQ64, mkexpr(res64), mkU64(0))),
16110 binop(Iop_Shl64,
16112 binop(Iop_CmpEQ64, mkexpr(src64), mkU64(0))),
16158 assign(mask, binop(opSAR, mkexpr(vec0), mkexpr(sh)));
16164 assign(res, binop(Iop_OrV128,
16165 binop(Iop_AndV128, mkexpr(vecE), mkexpr(mask)),
16166 binop(Iop_AndV128, mkexpr(vecG), mkexpr(notmask))));
16185 assign(mask, binop(Iop_V128HLtoV256,
16186 binop(opSAR128, mkexpr(vec0Hi), mkexpr(sh)),
16187 binop(opSAR128, mkexpr(vec0Lo), mkexpr(sh))));
16193 assign(res, binop(Iop_OrV256,
16194 binop(Iop_AndV256, mkexpr(vecE), mkexpr(mask)),
16195 binop(Iop_AndV256, mkexpr(vecG), mkexpr(notmask))));
16301 binop(Iop_OrV128,
16302 binop(Iop_InterleaveLO64x2,
16304 binop(Iop_InterleaveHI64x2,
16309 binop(Iop_OrV128,
16310 binop(Iop_InterleaveLO64x2,
16312 binop(Iop_InterleaveHI64x2,
16322 binop(Iop_Sar64, mkexpr(and64), mkU8(63))));
16326 binop(Iop_Sar64, mkexpr(andn64), mkU8(63))));
16335 assign(t1, binop(Iop_And64, mkexpr(and64), mkexpr(t0)));
16336 assign(t2, binop(Iop_And64, mkexpr(andn64), mkexpr(t0)));
16347 binop(Iop_Sar64,
16348 binop(Iop_Or64,
16349 binop(Iop_Sub64, mkU64(0), mkexpr(and64)),
16354 binop(Iop_Sar64,
16355 binop(Iop_Or64,
16356 binop(Iop_Sub64, mkU64(0), mkexpr(andn64)),
16364 binop(Iop_Or64,
16365 binop(Iop_And64, mkexpr(z64), mkU64(AMD64G_CC_MASK_Z)),
16366 binop(Iop_And64, mkexpr(c64), mkU64(AMD64G_CC_MASK_C))));
16417 assign(andV, binop(Iop_AndV128, mkexpr(vecE), mkexpr(vecG)));
16418 assign(andnV, binop(Iop_AndV128,
16420 binop(Iop_XorV128, mkexpr(vecG),
16466 assign(andV, binop(Iop_AndV256, mkexpr(vecE), mkexpr(vecG)));
16467 assign(andnV, binop(Iop_AndV256,
16479 assign( andV128, binop( Iop_OrV128, mkexpr(andVhi), mkexpr(andVlo) ) );
16480 assign( andnV128, binop( Iop_OrV128, mkexpr(andnVhi), mkexpr(andnVlo) ) );
16514 ? binop( Iop_InterleaveLO8x16,
16516 : binop( Iop_SarN16x8,
16517 binop( Iop_ShlN16x8,
16518 binop( Iop_InterleaveLO8x16,
16555 = binop( Iop_V128HLtoV256,
16556 binop( Iop_InterleaveHI8x16,
16558 binop( Iop_InterleaveLO8x16,
16562 res = binop( Iop_SarN16x16,
16563 binop( Iop_ShlN16x16, res, mkU8(8) ), mkU8(8) );
16597 = binop( Iop_InterleaveLO16x8,
16600 res = binop(Iop_SarN32x4,
16601 binop(Iop_ShlN32x4, res, mkU8(16)), mkU8(16));
16634 = binop( Iop_V128HLtoV256,
16635 binop( Iop_InterleaveHI16x8,
16637 binop( Iop_InterleaveLO16x8,
16640 res = binop(Iop_SarN32x8,
16641 binop(Iop_ShlN32x8, res, mkU8(16)), mkU8(16));
16673 ( rG, binop( Iop_64HLtoV128,
16706 putYMMReg( rG, binop( Iop_V128HLtoV256,
16707 binop( Iop_64HLtoV128,
16710 binop( Iop_64HLtoV128,
16745 ( rG, binop( Iop_InterleaveLO16x8,
16747 binop( Iop_InterleaveLO16x8,
16779 putYMMReg( rG, binop( Iop_V128HLtoV256,
16780 binop( Iop_InterleaveHI16x8,
16782 binop( Iop_InterleaveLO16x8,
16784 binop( Iop_InterleaveLO16x8,
16786 binop( Iop_InterleaveLO16x8,
16825 ? binop( Iop_InterleaveLO32x4,
16827 : binop( Iop_64HLtoV128,
16868 res = binop( Iop_V128HLtoV256,
16869 binop( Iop_InterleaveHI32x4,
16871 binop( Iop_InterleaveLO32x4,
16877 res = binop( Iop_V128HLtoV256,
16878 binop( Iop_64HLtoV128,
16881 binop( Iop_64HLtoV128,
16921 = binop(Iop_InterleaveLO8x16,
16923 binop(Iop_InterleaveLO8x16,
16926 res = binop(Iop_SarN32x4,
16927 binop(Iop_ShlN32x4, res, mkU8(24)), mkU8(24));
16963 = binop( Iop_V128HLtoV256,
16964 binop(Iop_InterleaveHI8x16,
16966 binop(Iop_InterleaveLO8x16,
16968 binop(Iop_InterleaveLO8x16,
16970 binop(Iop_InterleaveLO8x16,
16973 res = binop(Iop_SarN32x8,
16974 binop(Iop_ShlN32x8, res, mkU8(24)), mkU8(24));
17006 ( rG, binop( Iop_64HLtoV128,
17038 ( rG, binop( Iop_V128HLtoV256,
17039 binop( Iop_64HLtoV128,
17048 binop( Iop_64HLtoV128,
17090 ( rG, binop( Iop_InterleaveLO8x16,
17092 binop( Iop_InterleaveLO8x16,
17094 binop( Iop_InterleaveLO8x16,
17127 ( rG, binop( Iop_V128HLtoV256,
17128 binop( Iop_InterleaveHI8x16,
17130 binop( Iop_InterleaveLO8x16,
17132 binop( Iop_InterleaveLO8x16,
17134 binop( Iop_InterleaveLO8x16,
17136 binop( Iop_InterleaveLO8x16,
17138 binop( Iop_InterleaveLO8x16,
17572 binop( Iop_QNarrowBin32Sto16Ux8,
17755 binop( Iop_Mul32x4, mkexpr(argL), mkexpr(argR)) );
17823 assign(valG0, binop(Iop_And64, getIRegG(8, pfx, modrm),
18050 binop(Iop_CmpEQ8x16, mkexpr(argL), mkV128(0)))));
18054 binop(Iop_CmpEQ8x16, mkexpr(argR), mkV128(0)))));
18071 assign(zmaskL_zero, binop(Iop_ExpCmpNE32, mkexpr(zmaskL), mkU32(0)));
18074 assign(validL, binop(Iop_Sub32,
18076 binop(Iop_Shl32, mkU32(1), ctzL),
18083 assign(zmaskR_zero, binop(Iop_ExpCmpNE32, mkexpr(zmaskR), mkU32(0)));
18085 assign(validR, binop(Iop_Sub32,
18087 binop(Iop_Shl32, mkU32(1), ctzR),
18094 binop(Iop_CmpEQ8x16, mkexpr(argL),
18099 IRExpr *intRes1_a = binop(Iop_And32, boolResII,
18100 binop(Iop_And32,
18104 IRExpr *intRes1_b = unop(Iop_Not32, binop(Iop_Or32,
18107 IRExpr *intRes1 = binop(Iop_And32, mkU32(0xFFFF),
18108 binop(Iop_Or32, intRes1_a, intRes1_b));
18113 assign(intRes2, binop(Iop_And32, mkU32(0xFFFF),
18114 binop(Iop_Xor32, intRes1, mkexpr(validL))));
18119 IRExpr *newECX = math_CTZ32(binop(Iop_Or32,
18128 IRExpr *c_bit = IRExpr_ITE( binop(Iop_ExpCmpNE32, mkexpr(intRes2),
18141 IRExpr *o_bit = binop(Iop_Shl32, binop(Iop_And32, mkexpr(intRes2),
18147 assign(cc, widenUto64(binop(Iop_Or32,
18148 binop(Iop_Or32, c_bit, z_bit),
18149 binop(Iop_Or32, s_bit, o_bit))));
18278 putIReg64(R_RCX, binop(Iop_And64,
18279 binop(Iop_Shr64, mkexpr(resT), mkU8(16)),
18289 binop(Iop_And64, mkexpr(resT), mkU64(0xFFFF))
18307 assign(halfshift, binop(Iop_Shl64,
18311 assign(tmp128, binop(Iop_64HLtoV128, mkU64(0), mkexpr(halfshift)));
18313 assign(tmp128, binop(Iop_64HLtoV128, mkexpr(halfshift), mkU64(0)));
18318 assign( res, binop(Iop_OrV128,
18320 binop(Iop_AndV128, mkexpr(v128), mkV128(mask))) );
18351 assign(res, binop( Iop_OrV128,
18353 binop( Iop_AndV128, mkexpr(v128), mkV128(mask) ) ) );
18366 assign(withZs, binop(Iop_64HLtoV128, mkU64(0), mkexpr(u64)));
18370 assign( withZs, binop(Iop_64HLtoV128, mkexpr(u64), mkU64(0)));
18374 assign( res, binop( Iop_OrV128,
18376 binop( Iop_AndV128, mkexpr(v128), mkV128(mask) ) ) );
18434 binop( Iop_Shr32, mkexpr(sel_lane), mkU8(((imm8 & 3)*8)) ) );
18439 binop(Iop_And32, mkexpr(shr_lane), mkU32(255)) ) );
18463 assign( and_vec, binop( Iop_AndV128,
18469 assign( sum_vec, binop( Iop_Add64F0x2,
18470 binop( Iop_InterleaveHI64x2,
18472 binop( Iop_InterleaveLO64x2,
18475 assign(res, binop( Iop_AndV128,
18476 binop( Iop_InterleaveLO64x2,
18499 binop( Iop_AndV128,
18508 binop( Iop_InterleaveHI32x4,
18510 binop( Iop_InterleaveLO32x4,
18514 assign( res, binop( Iop_AndV128,
18517 binop( Iop_InterleaveHI32x4,
18519 binop( Iop_InterleaveLO32x4,
18542 assign(src_masked, binop(Iop_AndV128, mkexpr(src_vec), mkexpr(src_maskV)));
18543 assign(dst_masked, binop(Iop_AndV128, mkexpr(dst_vec), mkexpr(dst_maskV)));
18575 assign(res, binop(Iop_64HLtoV128, mkexpr(resHi), mkexpr(resLo)));
18650 assign(res, binop(Iop_64HLtoV128, mkexpr(t3), mkexpr(t2)));
18709 binop(Iop_Add64, mkexpr(addr), mkU64(0) )));
18711 binop(Iop_Add64, mkexpr(addr), mkU64(4) )));
18713 binop(Iop_Add64, mkexpr(addr), mkU64(8) )));
18715 binop(Iop_Add64, mkexpr(addr), mkU64(12) )));
18729 assign(res0, binop(Iop_RoundF32toInt, mkexpr(rm), mkexpr(src0)) );
18730 assign(res1, binop(Iop_RoundF32toInt, mkexpr(rm), mkexpr(src1)) );
18731 assign(res2, binop(Iop_RoundF32toInt, mkexpr(rm), mkexpr(src2)) );
18732 assign(res3, binop(Iop_RoundF32toInt, mkexpr(rm), mkexpr(src3)) );
18771 binop(Iop_Add64, mkexpr(addr), mkU64(0) )));
18773 binop(Iop_Add64, mkexpr(addr), mkU64(8) )));
18787 assign(res0, binop(Iop_RoundF64toInt, mkexpr(rm), mkexpr(src0)) );
18788 assign(res1, binop(Iop_RoundF64toInt, mkexpr(rm), mkexpr(src1)) );
18837 assign(res, binop(isD ? Iop_RoundF64toInt : Iop_RoundF32toInt,
19636 assign(t2, binop(Iop_Sub64, getIReg64(R_RSP), mkU64(sz)));
19658 putIReg64(R_RSP, binop(Iop_Add64, mkexpr(t2), mkU64(sz)));
19715 assign( t1, binop(Iop_Sub64,getIReg64(R_RSP),mkU64(sz)) );
19981 putIReg64(R_RSP, binop(Iop_Add64, mkexpr(t1), mkU64(sz)) );
20047 binop(mkSizedOp(ty,Iop_Sar8),
20071 assign( t1, binop(Iop_Sub64,getIReg64(R_RSP),mkU64(sz)) );
20080 assign( t3, binop(Iop_Or64,
20082 binop(Iop_And64,
20089 assign( t4, binop(Iop_Or64,
20091 binop(Iop_And64,
20092 binop(Iop_Shl64, IRExpr_Get(OFFB_IDFLAG,Ity_I64),
20099 assign( t5, binop(Iop_Or64,
20101 binop(Iop_And64,
20102 binop(Iop_Shl64, IRExpr_Get(OFFB_ACFLAG,Ity_I64),
20128 putIReg64(R_RSP, binop(Iop_Add64, mkexpr(t2), mkU64(sz)));
20134 binop(Iop_And64,
20149 binop(Iop_And64,
20150 binop(Iop_Shr64, mkexpr(t1), mkU8(10)),
20161 binop(Iop_And64,
20162 binop(Iop_Shr64, mkexpr(t1), mkU8(21)),
20173 binop(Iop_And64,
20174 binop(Iop_Shr64, mkexpr(t1), mkU8(18)),
20503 assign(t2, binop(Iop_Sub64, getIReg64(R_RSP), mkU64(8)));
20508 putIReg64(R_RSP, binop(Iop_Sub64, mkexpr(t2), mkU64(d64)));
20527 putIReg64(R_RSP, binop(Iop_Add64, mkexpr(t1), mkU64(8)) );
20655 putIReg32(R_RCX, binop(Iop_Sub32,
20659 putIReg64(R_RCX, binop(Iop_Sub64, getIReg64(R_RCX), mkU64(1)));
20667 cond = binop(Iop_CmpNE64, count, mkU64(0));
20698 stmt( IRStmt_Exit( binop(Iop_CmpEQ64,
20708 stmt( IRStmt_Exit( binop(Iop_CmpEQ64,
20822 assign(t1, binop(Iop_Sub64, getIReg64(R_RSP), mkU64(8)));
20881 assign( t2, binop(Iop_Xor64, mkexpr(t1),
20886 assign( t2, binop(Iop_And64, mkexpr(t1),
20891 assign( t2, binop(Iop_Or64, mkexpr(t1),
20981 binop(Iop_Or64,
20982 binop(Iop_Shr64,
20983 binop(Iop_And64,mkexpr(t1),mkexpr(m8)),
20985 binop(Iop_And64,
20986 binop(Iop_Shl64,mkexpr(t1),mkU8(8)),
20993 binop(Iop_Or64,
20994 binop(Iop_Shr64,
20995 binop(Iop_And64,mkexpr(s8),mkexpr(m16)),
20997 binop(Iop_And64,
20998 binop(Iop_Shl64,mkexpr(s8),mkU8(16)),
21005 binop(Iop_Or64,
21006 binop(Iop_Shr64,
21007 binop(Iop_And64,mkexpr(s16),mkexpr(m32)),
21009 binop(Iop_And64,
21010 binop(Iop_Shl64,mkexpr(s16),mkU8(32)),
21018 binop(
21020 binop(Iop_Shl32, mkexpr(t1), mkU8(24)),
21021 binop(
21023 binop(Iop_And32, binop(Iop_Shl32, mkexpr(t1), mkU8(8)),
21025 binop(Iop_Or32,
21026 binop(Iop_And32, binop(Iop_Shr32, mkexpr(t1), mkU8(8)),
21028 binop(Iop_And32, binop(Iop_Shr32, mkexpr(t1), mkU8(24)),
21036 binop(Iop_Or16,
21037 binop(Iop_Shl16, mkexpr(t1), mkU8(8)),
21038 binop(Iop_Shr16, mkexpr(t1), mkU8(8)) ));
21116 stmt( IRStmt_Exit(binop(Iop_CmpNE32, mkexpr(t1), mkU32(0)),
21769 binop(opCasCmpEQ,
21770 binop(opOR,
21771 binop(opXOR, mkexpr(oldHi), mkexpr(expdHi)),
21772 binop(opXOR, mkexpr(oldLo), mkexpr(expdLo))
21811 binop(Iop_Or64,
21812 binop(Iop_And64, mkexpr(flags_old),
21814 binop(Iop_Shl64,
21815 binop(Iop_And64,
22202 ? binop(op, mkexpr(tSR), mkexpr(tSL))
22203 : binop(op, mkexpr(tSL), mkexpr(tSR)));
22298 binop(Iop_CmpLT64U, mkexpr(amt), mkU64(size)),
22299 binop(op, mkexpr(g0), mkexpr(amt8)),
22308 binop(Iop_CmpLT64U, mkexpr(amt), mkU64(size)),
22309 binop(op, mkexpr(g0), mkexpr(amt8)),
22310 binop(op, mkexpr(g0), mkU8(size-1))
22372 binop(Iop_CmpLT64U, mkexpr(amt), mkU64(size)),
22373 binop(op, mkexpr(g0), mkexpr(amt8)),
22374 binop(Iop_V128HLtoV256, mkV128(0), mkV128(0))
22382 binop(Iop_CmpLT64U, mkexpr(amt), mkU64(size)),
22383 binop(op, mkexpr(g0), mkexpr(amt8)),
22384 binop(op, mkexpr(g0), mkU8(size-1))
22480 binop(size == 32 ? Iop_CmpLT32U : Iop_CmpLT64U,
22483 binop(op, mkexpr(sVs[i]),
22486 op == Iop_Sar32 ? binop(op, mkexpr(sVs[i]), mkU8(size-1))
22548 : binop(op, mkexpr(e0), mkU8(amt))
22553 ? binop(op, mkexpr(e0), mkU8(size-1))
22554 : binop(op, mkexpr(e0), mkU8(amt))
22605 ? binop(Iop_V128HLtoV256, mkV128(0), mkV128(0))
22606 : binop(op, mkexpr(e0), mkU8(amt))
22611 ? binop(op, mkexpr(e0), mkU8(size-1))
22612 : binop(op, mkexpr(e0), mkU8(amt))
22644 putXMMReg( rG, binop(op, vpart, getXMMReg(rE)) );
22655 putXMMReg( rG, binop(op, vpart, mkexpr(epart)) );
22704 binop(Iop_SetV128lo64,
22751 binop(Iop_SetV128lo32,
22781 putXMMReg( rG, binop(op, vpart, getXMMReg(rE)) );
22792 putXMMReg( rG, binop(op, vpart, mkexpr(epart)) );
22869 assign(plain, preSwap ? binop(op, mkexpr(argR), mkexpr(argL))
22870 : binop(op, mkexpr(argL), mkexpr(argR)));
22889 putYMMRegLoAndZU( rG, binop(Iop_XorV128, mkexpr(plain),
22908 binop(Iop_OrV128,
22909 binop(Iop_AndV128,
22912 binop(Iop_AndV128, mkexpr(argL), mkexpr(notMask))));
22915 binop(Iop_OrV128,
22916 binop(Iop_AndV128,
22919 binop(Iop_AndV128, mkexpr(argL), mkexpr(notMask))));
22984 assign(plain, binop( Iop_V128HLtoV256,
22985 binop(op, mkexpr(argLhi), mkexpr(argRhi)),
22986 binop(op, mkexpr(argLlo), mkexpr(argRlo)) ) );
23062 IRExpr* res = needsIRRM ? binop(op, get_FAKE_roundingmode(), mkexpr(arg))
23121 ? binop(op, mkexpr(tSR), mkexpr(tSL))
23122 : binop(op, mkexpr(tSL), mkexpr(tSR)));
23309 # define CVT(_t) binop( Iop_F64toF32, mkexpr(rmode), \
23328 assign( res, binop( Iop_V128HLtoV256,
23329 binop( op, mkexpr(tRhi), mkexpr(tLhi) ),
23330 binop( op, mkexpr(tRlo), mkexpr(tLlo) ) ) );
23459 assign(res, binop(Iop_64HLtoV128,
23494 assign( res, binop( Iop_64HLtoV128,
23496 binop(Iop_32HLto64,
23597 assign(res, binop(Iop_64HLtoV128,
23627 assign( res, binop( Iop_64HLtoV128,
23629 binop(Iop_32HLto64,
23729 assign(res, binop(Iop_64HLtoV128,
23750 assign(res, binop(Iop_64HLtoV128,
23916 assign(res, binop(Iop_64HLtoV128,
23937 assign(res, binop(Iop_64HLtoV128,
24176 binop( Iop_I64StoF64,
24204 binop(Iop_F64toF32,
24206 binop(Iop_I64StoF64, mkexpr(rmode),
24234 binop(Iop_F64toF32,
24692 binop( Iop_F64toF32, mkexpr(rmode),
25669 putYMMReg( rG, binop(Iop_V128HLtoV256,
25731 putYMMReg( rG, binop(Iop_V128HLtoV256,
26960 IRExpr* cv1 = binop(Iop_ShrN32x4,
26961 binop(Iop_ShlN32x4, mkexpr(ctrlV), mkU8(30)),
26966 assign(res, binop(Iop_Perm32x4, mkexpr(dataV), cv1));
26979 assign(res, binop(Iop_V128HLtoV256, mkexpr(rHi), mkexpr(rLo)));
26992 binop(Iop_Shr64, mkexpr(cHi), mkU8(1))),
26996 binop(Iop_Shr64, mkexpr(cLo), mkU8(1))),
26999 assign(res, binop(Iop_64HLtoV128, rHi, rLo));
27012 assign(res, binop(Iop_V128HLtoV256, mkexpr(rHi), mkexpr(rLo)));
27020 IRExpr* cv1 = binop(Iop_ShrN32x8,
27021 binop(Iop_ShlN32x8, mkexpr(ctrlV), mkU8(29)),
27026 assign(res, binop(Iop_Perm32x8, mkexpr(dataV), cv1));
27057 binop
27058 narrowTo(Ity_I8, binop(mkSizedOp(ty,Iop_And8), mkexpr(amt),
27297 assign(cond, binop(opEQ, binop(opSHR, lane, shAmt), one));
27300 IRExpr* ea = binop(Iop_Add64, mkexpr(addr),
27360 putYMMReg( rV, binop(Iop_SarN32x8, getYMMReg( rV ), mkU8(31)) );
27362 putYMMRegLoAndZU( rV, binop(Iop_SarN32x4, getXMMReg( rV ), mkU8(31)) );
27365 putYMMRegLane64( rV, i, binop(Iop_Sar64, getYMMRegLane64( rV, i ),
27376 binop(ty == Ity_I32 ? Iop_CmpLT32S : Iop_CmpLT64S,
27385 case 2: addr_expr = binop(Iop_Shl64, addr_expr, mkU8(1)); break;
27386 case 4: addr_expr = binop(Iop_Shl64, addr_expr, mkU8(2)); break;
27387 case 8: addr_expr = binop(Iop_Shl64, addr_expr, mkU8(3)); break;
27390 addr_expr = binop(Iop_Add64, mkexpr(addr), addr_expr);
27562 binop(Iop_64HLtoV128,
27613 binop( Iop_V128HLtoV256,
27614 binop(Iop_64HLtoV128,
27618 binop(Iop_64HLtoV128,
27661 binop(Iop_64HLtoV128,
27700 binop(Iop_V128HLtoV256,
27701 binop(Iop_64HLtoV128,
27704 binop(Iop_64HLtoV128,
27890 assign(t64, binop(Iop_32HLto64, mkexpr(t32), mkexpr(t32)));
27891 IRExpr* res = binop(Iop_64HLtoV128, mkexpr(t64), mkexpr(t64));
27907 assign(t64, binop(Iop_32HLto64, mkexpr(t32), mkexpr(t32)));
27924 assign(t64, binop(Iop_32HLto64, mkexpr(t32), mkexpr(t32)));
27925 IRExpr* res = binop(Iop_64HLtoV128, mkexpr(t64), mkexpr(t64));
27941 assign(t64, binop(Iop_32HLto64, mkexpr(t32), mkexpr(t32)));
27997 putYMMReg( rG, binop(Iop_V128HLtoV256, mkexpr(t128), mkexpr(t128)) );
28648 assign(t64, binop(Iop_32HLto64, mkexpr(t32), mkexpr(t32)));
28649 IRExpr* res = binop(Iop_64HLtoV128, mkexpr(t64), mkexpr(t64));
28671 assign(t64, binop(Iop_32HLto64, mkexpr(t32), mkexpr(t32)));
28697 IRExpr* res = binop(Iop_64HLtoV128, mkexpr(t64), mkexpr(t64));
28737 putYMMReg( rG, binop(Iop_V128HLtoV256, mkexpr(t128), mkexpr(t128)) );
28761 assign(t16, binop(Iop_8HLto16, mkexpr(t8), mkexpr(t8)));
28763 assign(t32, binop(Iop_16HLto32, mkexpr(t16), mkexpr(t16)));
28765 assign(t64, binop(Iop_32HLto64, mkexpr(t32), mkexpr(t32)));
28766 IRExpr* res = binop(Iop_64HLtoV128, mkexpr(t64), mkexpr(t64));
28788 assign(t16, binop(Iop_8HLto16, mkexpr(t8), mkexpr(t8)));
28790 assign(t32, binop(Iop_16HLto32, mkexpr(t16), mkexpr(t16)));
28792 assign(t64, binop(Iop_32HLto64, mkexpr(t32), mkexpr(t32)));
28819 assign(t32, binop(Iop_16HLto32, mkexpr(t16), mkexpr(t16)));
28821 assign(t64, binop(Iop_32HLto64, mkexpr(t32), mkexpr(t32)));
28822 IRExpr* res = binop(Iop_64HLtoV128, mkexpr(t64), mkexpr(t64));
28844 assign(t32, binop(Iop_16HLto32, mkexpr(t16), mkexpr(t16)));
28846 assign(t64, binop(Iop_32HLto64, mkexpr(t32), mkexpr(t32)));
29220 assign( dst, binop( mkSizedOp(ty,Iop_And8),
29257 assign( dst, binop(mkSizedOp(ty,Iop_And8),
29258 binop(mkSizedOp(ty,Iop_Sub8), mkU(ty, 0),
29291 assign( dst, binop(mkSizedOp(ty,Iop_Xor8),
29292 binop(mkSizedOp(ty,Iop_Sub8), mkexpr(src),
29325 assign( dst, binop(mkSizedOp(ty,Iop_And8),
29326 binop(mkSizedOp(ty,Iop_Sub8), mkexpr(src),
29367 assign( cond, binop(Iop_CmpLT32U,
29382 binop(Iop_CmpEQ8, mkexpr(start), mkU8(0)),
29384 binop(
29386 binop(
29389 binop(Iop_Sub8, mkU8(8*size), mkexpr(start))
29391 binop(Iop_Sub8, mkU8(8*size), mkexpr(start))
29464 IRExpr* masked = binop(mkSizedOp(ty,Iop_And8),
29503 assign( res, binop(size == 8 ? Iop_MullU64 : Iop_MullU32,
29578 binop(Iop_CmpLT32U,
29579 binop(Iop_Add32,
29584 binop(Iop_CmpEQ8, mkexpr(len), mkU8(0)),
29586 binop(mkSizedOp(ty,Iop_Shr8),
29587 binop(mkSizedOp(ty,Iop_Shl8), mkexpr(src1),
29588 binop(Iop_Sub8,
29589 binop(Iop_Sub8, mkU8(8*size),
29592 binop(Iop_Sub8, mkU8(8*size),
29596 binop(Iop_CmpLT32U,
29599 binop(mkSizedOp(ty,Iop_Shr8), mkexpr(src1),
29827 IRExpr* res = binop(Iop_V128HLtoV256, mkexpr(dVhi), mkexpr(dVlo));
29886 assign(dV, binop(Iop_64HLtoV128,
29956 assign(s10, loadLE(Ity_V128, binop(Iop_Add64,
29958 assign(s11, loadLE(Ity_V128, binop(Iop_Add64,
30014 # define CVT(s) binop(Iop_RoundF32toInt, mkexpr(rm), \
30065 # define CVT(s) binop(Iop_RoundF32toInt, mkexpr(rm), \
30117 # define CVT(s) binop(Iop_RoundF64toInt, mkexpr(rm), \
30162 # define CVT(s) binop(Iop_RoundF64toInt, mkexpr(rm), \
30212 assign(res, binop(isD ? Iop_RoundF64toInt : Iop_RoundF32toInt,
30422 putYMMReg( rG, binop( Iop_V128HLtoV256,
30496 putYMMReg( rG, binop( Iop_V128HLtoV256,
30886 putYMMReg( rG, binop( Iop_V128HLtoV256,
30997 putYMMReg( rG, binop( Iop_V128HLtoV256,
31073 assign(s10, loadLE(Ity_V128, binop(Iop_Add64,
31075 assign(s11, loadLE(Ity_V128, binop(Iop_Add64,
31209 : binop( mkSizedOp(ty,Iop_Or8),
31210 binop( mkSizedOp(ty,Iop_Shr8), mkexpr(src),
31212 binop( mkSizedOp(ty,Iop_Shl8), mkexpr(src),
31335 assign(t2, binop(Iop_Sub64, getIReg64(R_RSP), mkU64(8)));
31982 // assign(t[0], binop(Iop_Or64, mkexpr(src),
31983 // binop(Iop_Shr64, mkexpr(src), mkU8(1))));
31984 // assign(t[1], binop(Iop_Or64, mkexpr(t[0]),
31985 // binop(Iop_Shr64, mkexpr(t[0]), mkU8(2))));
31986 // assign(t[2], binop(Iop_Or64, mkexpr(t[1]),
31987 binop(Iop_Shr64, mkexpr(t[1]), mkU8(4))));
31988 // assign(t[3], binop(Iop_Or64, mkexpr(t[2]),
31989 // binop(Iop_Shr64, mkexpr(t[2]), mkU8(8))));
31990 // assign(t[4], binop(Iop_Or64, mkexpr(t[3]),
31991 // binop(Iop_Shr64, mkexpr(t[3]), mkU8(16))));
31992 // assign(t[5], binop(Iop_Or64, mkexpr(t[4]),
31993 // binop(Iop_Shr64, mkexpr(t[4]), mkU8(32))));
31998 // assign(t[0], binop(Iop_Or32, mkexpr(src),
31999 // binop(Iop_Shr32, mkexpr(src), mkU8(1))));
32000 // assign(t[1], binop(Iop_Or32, mkexpr(t[0]),
32001 // binop(Iop_Shr32, mkexpr(t[0]), mkU8(2))));
32002 // assign(t[2], binop(Iop_Or32, mkexpr(t[1]),
32003 // binop(Iop_Shr32, mkexpr(t[1]), mkU8(4))));
32004 // assign(t[3], binop(Iop_Or32, mkexpr(t[2]),
32005 // binop(Iop_Shr32, mkexpr(t[2]), mkU8(8))));
32006 // assign(t[4], binop(Iop_Or32, mkexpr(t[3]),
32007 // binop(Iop_Shr32, mkexpr(t[3]), mkU8(16))));
32012 // assign(t[0], binop(Iop_Or16, mkexpr(src),
32013 // binop(Iop_Shr16, mkexpr(src), mkU8(1))));
32014 // assign(t[1], binop(Iop_Or16, mkexpr(t[0]),
32015 // binop(Iop_Shr16, mkexpr(t[0]), mkU8(2))));
32016 // assign(t[2], binop(Iop_Or16, mkexpr(t[1]),
32017 // binop(Iop_Shr16, mkexpr(t[1]), mkU8(4))));
32018 // assign(t[3], binop(Iop_Or16, mkexpr(t[2]),
32019 // binop(Iop_Shr16, mkexpr(t[2]), mkU8(8))));