Home | History | Annotate | Download | only in priv

Lines Matching refs:binop

166 binop(IROp kind, IRExpr *op1, IRExpr *op2)
453 return binop(Iop_F64HLtoF128, high, low);
591 dep2x = binop(Iop_Xor64, dep2, ndep);
656 lox = binop(Iop_Xor64, lo, ndep); /* convey dependency */
1563 assign(op4addr, binop(Iop_Add64, mkU64(d4), b4 != 0 ? get_gpr_dw0(b4) :
1581 assign(op4addr, binop(Iop_Add64, mkU64(d4), b4 != 0 ? get_gpr_dw0(b4) :
1752 assign(op4addr, binop(Iop_Add64, mkU64(d4), b4 != 0 ? get_gpr_dw0(b4) :
1769 assign(op2addr, binop(Iop_Add64, mkU64(d2), b2 != 0 ? get_gpr_dw0(b2) :
1785 assign(op2addr, binop(Iop_Add64, mkU64(d2), b2 != 0 ? get_gpr_dw0(b2) :
1801 assign(op2addr, binop(Iop_Add64, mkU64(d2), b2 != 0 ? get_gpr_dw0(b2) :
1817 assign(op2addr, binop(Iop_Add64, mkU64(d2), b2 != 0 ? get_gpr_dw0(b2) :
1845 assign(op2addr, binop(Iop_Add64, mkexpr(d2), b2 != 0 ? get_gpr_dw0(b2) :
1863 assign(op2addr, binop(Iop_Add64, mkexpr(d2), b2 != 0 ? get_gpr_dw0(b2) :
1881 assign(op2addr, binop(Iop_Add64, mkexpr(d2), b2 != 0 ? get_gpr_dw0(b2) :
1898 next_insn_if(binop(Iop_CmpEQ32, s390_call_calculate_cond(m3), mkU32(0)));
1901 assign(op2addr, binop(Iop_Add64, mkexpr(d2), b2 != 0 ? get_gpr_dw0(b2) :
1919 assign(op2addr, binop(Iop_Add64, binop(Iop_Add64, mkU64(d2),
1933 assign(op2addr, binop(Iop_Add64, binop(Iop_Add64, mkU64(d2),
1950 assign(op2addr, binop(Iop_Add64, binop(Iop_Add64, mkU64(d2),
1967 assign(op2addr, binop(Iop_Add64, binop(Iop_Add64, mkU64(d2),
1984 assign(op2addr, binop(Iop_Add64, binop(Iop_Add64, mkU64(d2),
2003 assign(op2addr, binop(Iop_Add64, binop(Iop_Add64, mkexpr(d2),
2022 assign(op2addr, binop(Iop_Add64, binop(Iop_Add64, mkexpr(d2),
2041 assign(op2addr, binop(Iop_Add64, binop(Iop_Add64, mkexpr(d2),
2058 assign(op2addr, binop(Iop_Add64, mkU64(d2), b2 != 0 ? get_gpr_dw0(b2) :
2074 assign(op1addr, binop(Iop_Add64, mkU64(d1), b1 != 0 ? get_gpr_dw0(b1) :
2092 assign(op1addr, binop(Iop_Add64, mkexpr(d1), b1 != 0 ? get_gpr_dw0(b1) :
2110 assign(op1addr, binop(Iop_Add64, mkexpr(d1), b1 != 0 ? get_gpr_dw0(b1) :
2127 assign(op1addr, binop(Iop_Add64, mkU64(d1), b1 != 0 ? get_gpr_dw0(b1) :
2129 assign(op2addr, binop(Iop_Add64, mkU64(d2), b2 != 0 ? get_gpr_dw0(b2) :
2145 assign(op1addr, binop(Iop_Add64, mkU64(d1), b1 != 0 ? get_gpr_dw0(b1) :
2161 assign(op1addr, binop(Iop_Add64, mkU64(d1), b1 != 0 ? get_gpr_dw0(b1) :
2185 assign(result, binop(Iop_Add32, mkexpr(op1), mkexpr(op2)));
2201 assign(result, binop(Iop_Add64, mkexpr(op1), mkexpr(op2)));
2217 assign(result, binop(Iop_Add64, mkexpr(op1), mkexpr(op2)));
2233 assign(result, binop(Iop_Add32, mkexpr(op2), mkexpr(op3)));
2249 assign(result, binop(Iop_Add64, mkexpr(op2), mkexpr(op3)));
2265 assign(result, binop(Iop_Add32, mkexpr(op1), mkexpr(op2)));
2281 assign(result, binop(Iop_Add32, mkexpr(op1), mkexpr(op2)));
2297 assign(result, binop(Iop_Add64, mkexpr(op1), mkexpr(op2)));
2313 assign(result, binop(Iop_Add64, mkexpr(op1), mkexpr(op2)));
2329 assign(result, binop(Iop_Add32, mkexpr(op1), mkU32((UInt)op2)));
2346 assign(result, binop(Iop_Add64, mkexpr(op1), mkU64((ULong)op2)));
2363 assign(result, binop(Iop_Add32, mkU32((UInt)op2), mkexpr(op3)));
2380 assign(result, binop(Iop_Add64, mkU64((ULong)op2), mkexpr(op3)));
2397 assign(result, binop(Iop_Add32, mkexpr(op1), mkU32((UInt)op2)));
2414 assign(result, binop(Iop_Add64, mkexpr(op1), mkU64((ULong)op2)));
2431 assign(result, binop(Iop_Add32, mkexpr(op1), mkexpr(op2)));
2447 assign(result, binop(Iop_Add32, mkexpr(op1), mkexpr(op2)));
2463 assign(result, binop(Iop_Add32, mkexpr(op1), mkU32((UInt)op2)));
2480 assign(result, binop(Iop_Add64, mkexpr(op1), mkU64((ULong)op2)));
2497 assign(result, binop(Iop_Add32, mkexpr(op2), mkexpr(op3)));
2513 assign(result, binop(Iop_Add32, mkexpr(op2), mkexpr(op3)));
2529 assign(result, binop(Iop_Add32, mkexpr(op1), mkU32((UInt)op2)));
2546 assign(result, binop(Iop_Add32, mkexpr(op1), mkexpr(op2)));
2562 assign(result, binop(Iop_Add64, mkexpr(op1), mkexpr(op2)));
2578 assign(result, binop(Iop_Add64, mkexpr(op1), mkexpr(op2)));
2594 assign(result, binop(Iop_Add32, mkexpr(op2), mkexpr(op3)));
2610 assign(result, binop(Iop_Add64, mkexpr(op2), mkexpr(op3)));
2626 assign(result, binop(Iop_Add32, mkexpr(op1), mkexpr(op2)));
2642 assign(result, binop(Iop_Add32, mkexpr(op1), mkexpr(op2)));
2658 assign(result, binop(Iop_Add64, mkexpr(op1), mkexpr(op2)));
2674 assign(result, binop(Iop_Add64, mkexpr(op1), mkexpr(op2)));
2690 assign(result, binop(Iop_Add32, mkexpr(op1), mkU32(op2)));
2707 assign(result, binop(Iop_Add64, mkexpr(op1), mkU64(op2)));
2724 assign(result, binop(Iop_Add32, mkexpr(op2), mkexpr(op3)));
2740 assign(result, binop(Iop_Add32, mkexpr(op2), mkexpr(op3)));
2757 assign(carry_in, binop(Iop_Shr32, s390_call_calculate_cc(), mkU8(1)));
2758 assign(result, binop(Iop_Add32, binop(Iop_Add32, mkexpr(op1), mkexpr(op2)),
2776 assign(carry_in, unop(Iop_32Uto64, binop(Iop_Shr32, s390_call_calculate_cc(),
2778 assign(result, binop(Iop_Add64, binop(Iop_Add64, mkexpr(op1), mkexpr(op2)),
2796 assign(carry_in, binop(Iop_Shr32, s390_call_calculate_cc(), mkU8(1)));
2797 assign(result, binop(Iop_Add32, binop(Iop_Add32, mkexpr(op1), mkexpr(op2)),
2815 assign(carry_in, unop(Iop_32Uto64, binop(Iop_Shr32, s390_call_calculate_cc(),
2817 assign(result, binop(Iop_Add64, binop(Iop_Add64, mkexpr(op1), mkexpr(op2)),
2834 assign(result, binop(Iop_Add32, mkexpr(op1), mkU32(op2)));
2851 assign(result, binop(Iop_Add64, mkexpr(op1), mkU64(op2)));
2868 assign(result, binop(Iop_Add32, mkU32(op2), mkexpr(op3)));
2885 assign(result, binop(Iop_Add64, mkU64(op2), mkexpr(op3)));
2902 assign(result, binop(Iop_Add32, mkexpr(op1), mkU32(op2)));
2919 assign(result, binop(Iop_Add32, mkexpr(op1), mkU32(op2)));
2934 assign(result, binop(Iop_And32, mkexpr(op1), mkexpr(op2)));
2950 assign(result, binop(Iop_And64, mkexpr(op1), mkexpr(op2)));
2966 assign(result, binop(Iop_And32, mkexpr(op2), mkexpr(op3)));
2982 assign(result, binop(Iop_And64, mkexpr(op2), mkexpr(op3)));
2998 assign(result, binop(Iop_And32, mkexpr(op1), mkexpr(op2)));
3014 assign(result, binop(Iop_And32, mkexpr(op1), mkexpr(op2)));
3030 assign(result, binop(Iop_And64, mkexpr(op1), mkexpr(op2)));
3046 assign(result, binop(Iop_And8, mkexpr(op1), mkU8(op2)));
3062 assign(result, binop(Iop_And8, mkexpr(op1), mkU8(op2)));
3078 assign(result, binop(Iop_And32, mkexpr(op1), mkU32(op2)));
3094 assign(result, binop(Iop_And16, mkexpr(op1), mkU16(op2)));
3110 assign(result, binop(Iop_And16, mkexpr(op1), mkU16(op2)));
3126 assign(result, binop(Iop_And32, mkexpr(op1), mkU32(op2)));
3142 assign(result, binop(Iop_And16, mkexpr(op1), mkU16(op2)));
3158 assign(result, binop(Iop_And16, mkexpr(op1), mkU16(op2)));
3213 if_condition_goto_computed(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
3234 if_condition_goto_computed(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
3247 put_gpr_w1(r1, binop(Iop_Sub32, get_gpr_w1(r1), mkU32(1)));
3249 if_condition_goto_computed(binop(Iop_CmpNE32, get_gpr_w1(r1), mkU32(0)),
3259 put_gpr_dw0(r1, binop(Iop_Sub64, get_gpr_dw0(r1), mkU64(1)));
3261 if_condition_goto_computed(binop(Iop_CmpNE64, get_gpr_dw0(r1), mkU64(0)),
3271 put_gpr_w1(r1, binop(Iop_Sub32, get_gpr_w1(r1), mkU32(1)));
3272 if_condition_goto_computed(binop(Iop_CmpNE32, get_gpr_w1(r1), mkU32(0)),
3281 put_gpr_dw0(r1, binop(Iop_Sub64, get_gpr_dw0(r1), mkU64(1)));
3282 if_condition_goto_computed(binop(Iop_CmpNE64, get_gpr_dw0(r1), mkU64(0)),
3294 put_gpr_w1(r1, binop(Iop_Add32, get_gpr_w1(r1), get_gpr_w1(r3)));
3295 if_condition_goto_computed(binop(Iop_CmpLT32S, mkexpr(value),
3307 put_gpr_dw0(r1, binop(Iop_Add64, get_gpr_dw0(r1), get_gpr_dw0(r3)));
3308 if_condition_goto_computed(binop(Iop_CmpLT64S, mkexpr(value),
3320 put_gpr_w1(r1, binop(Iop_Add32, get_gpr_w1(r1), get_gpr_w1(r3)));
3321 if_condition_goto_computed(binop(Iop_CmpLE32S, get_gpr_w1(r1),
3333 put_gpr_dw0(r1, binop(Iop_Add64, get_gpr_dw0(r1), get_gpr_dw0(r3)));
3334 if_condition_goto_computed(binop(Iop_CmpLE64S, get_gpr_dw0(r1),
3370 if_condition_goto(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
3392 if_condition_goto(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
3405 put_gpr_w1(r1, binop(Iop_Sub32, get_gpr_w1(r1), mkU32(1)));
3406 if_condition_goto(binop(Iop_CmpNE32, get_gpr_w1(r1), mkU32(0)),
3415 put_gpr_dw0(r1, binop(Iop_Sub64, get_gpr_dw0(r1), mkU64(1)));
3416 if_condition_goto(binop(Iop_CmpNE64, get_gpr_dw0(r1), mkU64(0)),
3428 put_gpr_w1(r1, binop(Iop_Add32, get_gpr_w1(r1), get_gpr_w1(r3)));
3429 if_condition_goto(binop(Iop_CmpLT32S, mkexpr(value), get_gpr_w1(r1)),
3441 put_gpr_dw0(r1, binop(Iop_Add64, get_gpr_dw0(r1), get_gpr_dw0(r3)));
3442 if_condition_goto(binop(Iop_CmpLT64S, mkexpr(value), get_gpr_dw0(r1)),
3454 put_gpr_w1(r1, binop(Iop_Add32, get_gpr_w1(r1), get_gpr_w1(r3)));
3455 if_condition_goto(binop(Iop_CmpLE32S, get_gpr_w1(r1), mkexpr(value)),
3467 put_gpr_dw0(r1, binop(Iop_Add64, get_gpr_dw0(r1), get_gpr_dw0(r3)));
3468 if_condition_goto(binop(Iop_CmpLE64S, get_gpr_dw0(r1), mkexpr(value)),
3651 if_condition_goto_computed(binop(Iop_CmpNE32, mkexpr(cond),
3675 if_condition_goto_computed(binop(Iop_CmpNE32, mkexpr(cond),
3700 if_condition_goto(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
3726 if_condition_goto(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
3751 if_condition_goto_computed(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
3775 if_condition_goto_computed(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
3799 if_condition_goto(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
3824 if_condition_goto(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
4298 if_condition_goto_computed(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
4322 if_condition_goto_computed(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
4346 if_condition_goto(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
4371 if_condition_goto(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
4396 if_condition_goto_computed(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
4420 if_condition_goto_computed(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
4444 if_condition_goto(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
4469 if_condition_goto(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
4504 assign(c1, unop(Iop_8Uto32, load(Ity_I8, binop(Iop_Add64, mkexpr(op2addr),
4513 assign(c2, unop(Iop_8Uto32, load(Ity_I8, binop(Iop_Add64, mkexpr(op2addr),
4522 assign(c3, unop(Iop_8Uto32, load(Ity_I8, binop(Iop_Add64, mkexpr(op2addr),
4529 assign(op1, binop(Iop_Or32, binop(Iop_Or32, binop(Iop_Or32, binop(Iop_Shl32,
4530 mkexpr(b0), mkU8(24)), binop(Iop_Shl32, mkexpr(b1), mkU8(16))),
4531 binop(Iop_Shl32, mkexpr(b2), mkU8(8))), mkexpr(b3)));
4532 assign(op2, binop(Iop_Or32, binop(Iop_Or32, binop(Iop_Or32, binop(Iop_Shl32,
4533 mkexpr(c0), mkU8(24)), binop(Iop_Shl32, mkexpr(c1), mkU8(16))),
4534 binop(Iop_Shl32, mkexpr(c2), mkU8(8))), mkexpr(c3)));
4566 assign(c1, unop(Iop_8Uto32, load(Ity_I8, binop(Iop_Add64, mkexpr(op2addr),
4575 assign(c2, unop(Iop_8Uto32, load(Ity_I8, binop(Iop_Add64, mkexpr(op2addr),
4584 assign(c3, unop(Iop_8Uto32, load(Ity_I8, binop(Iop_Add64, mkexpr(op2addr),
4591 assign(op1, binop(Iop_Or32, binop(Iop_Or32, binop(Iop_Or32, binop(Iop_Shl32,
4592 mkexpr(b0), mkU8(24)), binop(Iop_Shl32, mkexpr(b1), mkU8(16))),
4593 binop(Iop_Shl32, mkexpr(b2), mkU8(8))), mkexpr(b3)));
4594 assign(op2, binop(Iop_Or32, binop(Iop_Or32, binop(Iop_Or32, binop(Iop_Shl32,
4595 mkexpr(c0), mkU8(24)), binop(Iop_Shl32, mkexpr(c1), mkU8(16))),
4596 binop(Iop_Shl32, mkexpr(c2), mkU8(8))), mkexpr(c3)));
4628 assign(c1, unop(Iop_8Uto32, load(Ity_I8, binop(Iop_Add64, mkexpr(op2addr),
4637 assign(c2, unop(Iop_8Uto32, load(Ity_I8, binop(Iop_Add64, mkexpr(op2addr),
4646 assign(c3, unop(Iop_8Uto32, load(Ity_I8, binop(Iop_Add64, mkexpr(op2addr),
4653 assign(op1, binop(Iop_Or32, binop(Iop_Or32, binop(Iop_Or32, binop(Iop_Shl32,
4654 mkexpr(b0), mkU8(24)), binop(Iop_Shl32, mkexpr(b1), mkU8(16))),
4655 binop(Iop_Shl32, mkexpr(b2), mkU8(8))), mkexpr(b3)));
4656 assign(op2, binop(Iop_Or32, binop(Iop_Or32, binop(Iop_Or32, binop(Iop_Shl32,
4657 mkexpr(c0), mkU8(24)), binop(Iop_Shl32, mkexpr(c1), mkU8(16))),
4658 binop(Iop_Shl32, mkexpr(c2), mkU8(8))), mkexpr(c3)));
4739 assign(result, binop(Iop_Xor32, mkexpr(op1), mkexpr(op2)));
4759 assign(result, binop(Iop_Xor64, mkexpr(op1), mkexpr(op2)));
4776 assign(result, binop(Iop_Xor32, mkexpr(op2), mkexpr(op3)));
4792 assign(result, binop(Iop_Xor64, mkexpr(op2), mkexpr(op3)));
4808 assign(result, binop(Iop_Xor32, mkexpr(op1), mkexpr(op2)));
4824 assign(result, binop(Iop_Xor32, mkexpr(op1), mkexpr(op2)));
4840 assign(result, binop(Iop_Xor64, mkexpr(op1), mkexpr(op2)));
4856 assign(result, binop(Iop_Xor8, mkexpr(op1), mkU8(op2)));
4872 assign(result, binop(Iop_Xor8, mkexpr(op1), mkU8(op2)));
4888 assign(result, binop(Iop_Xor32, mkexpr(op1), mkU32(op2)));
4904 assign(result, binop(Iop_Xor32, mkexpr(op1), mkU32(op2)));
4951 put_gpr_b5(r1, load(Ity_I8, binop(Iop_Add64, mkexpr(op2addr), mkU64(n))));
4956 put_gpr_b6(r1, load(Ity_I8, binop(Iop_Add64, mkexpr(op2addr), mkU64(n))));
4961 put_gpr_b7(r1, load(Ity_I8, binop(Iop_Add64, mkexpr(op2addr), mkU64(n))));
4986 put_gpr_b5(r1, load(Ity_I8, binop(Iop_Add64, mkexpr(op2addr), mkU64(n))));
4991 put_gpr_b6(r1, load(Ity_I8, binop
4996 put_gpr_b7(r1, load(Ity_I8, binop(Iop_Add64, mkexpr(op2addr), mkU64(n))));
5021 put_gpr_b1(r1, load(Ity_I8, binop(Iop_Add64, mkexpr(op2addr), mkU64(n))));
5026 put_gpr_b2(r1, load(Ity_I8, binop(Iop_Add64, mkexpr(op2addr), mkU64(n))));
5031 put_gpr_b3(r1, load(Ity_I8, binop(Iop_Add64, mkexpr(op2addr), mkU64(n))));
5230 assign(result, binop(Iop_Add32, mkexpr(op2), mkexpr(op3)));
5247 assign(result, binop(Iop_Add64, mkexpr(op2), mkexpr(op3)));
5264 assign(result, binop(Iop_Add32, mkexpr(op2), mkexpr(op3)));
5281 assign(result, binop(Iop_Add64, mkexpr(op2), mkexpr(op3)));
5298 assign(result, binop(Iop_And32, mkexpr(op2), mkexpr(op3)));
5315 assign(result, binop(Iop_And64, mkexpr(op2), mkexpr(op3)));
5332 assign(result, binop(Iop_Xor32, mkexpr(op2), mkexpr(op3)));
5349 assign(result, binop(Iop_Xor64, mkexpr(op2), mkexpr(op3)));
5366 assign(result, binop(Iop_Or32, mkexpr(op2), mkexpr(op3)));
5383 assign(result, binop(Iop_Or64, mkexpr(op2), mkexpr(op3)));
5512 assign(result, binop(Iop_Sub32, mkU32((UInt)op1), mkexpr(op2)));
5529 assign(result, binop(Iop_Sub64, mkU64((ULong)op1), mkexpr(op2)));
5546 assign(result, binop(Iop_Sub64, mkU64((ULong)op1), mkexpr(op2)));
5818 put_gpr_dw0(r1, unop(Iop_32Uto64, binop(Iop_And32, get_gpr_w1(r2),
5827 put_gpr_dw0(r1, unop(Iop_32Uto64, binop(Iop_And32, load(Ity_I32,
5840 assign(result, mkite(binop(Iop_CmpLE32S, mkexpr(op2), mkU32(0)), mkexpr(op2),
5841 binop(Iop_Sub32, mkU32(0), mkexpr(op2))));
5855 assign(result, mkite(binop(Iop_CmpLE64S, mkexpr(op2), mkU64(0)), mkexpr(op2),
5856 binop(Iop_Sub64, mkU64(0), mkexpr(op2))));
5870 assign(result, mkite(binop(Iop_CmpLE64S, mkexpr(op2), mkU64(0)), mkexpr(op2),
5871 binop(Iop_Sub64, mkU64(0), mkexpr(op2))));
5881 next_insn_if(binop(Iop_CmpEQ32, s390_call_calculate_cond(m3), mkU32(0)));
5890 next_insn_if(binop(Iop_CmpEQ32, s390_call_calculate_cond(m3), mkU32(0)));
5918 put_gpr_dw0(r1 + 1, load(Ity_I64, binop(Iop_Add64, mkexpr(op2addr), mkU64(8))
5931 assign(result, mkite(binop(Iop_CmpLT32S, mkexpr(op2), mkU32(0)),
5932 binop(Iop_Sub32, mkU32(0), mkexpr(op2)), mkexpr(op2)));
5946 assign(result, mkite(binop(Iop_CmpLT64S, mkexpr(op2), mkU64(0)),
5947 binop(Iop_Sub64, mkU64(0), mkexpr(op2)), mkexpr(op2)));
5961 assign(result, mkite(binop(Iop_CmpLT64S, mkexpr(op2), mkU64(0)),
5962 binop(Iop_Sub64, mkU64(0), mkexpr(op2)), mkexpr(op2)));
6039 put_gpr_b4(r1, unop(Iop_32to8, binop(Iop_And32, mkexpr(op2), mkU32(255))));
6040 put_gpr_b5(r1, unop(Iop_32to8, binop(Iop_And32, binop(Iop_Shr32, mkexpr(op2),
6042 put_gpr_b6(r1, unop(Iop_32to8, binop(Iop_And32, binop(Iop_Shr32, mkexpr(op2),
6044 put_gpr_b7(r1, unop(Iop_32to8, binop(Iop_And32, binop(Iop_Shr32, mkexpr(op2),
6056 put_gpr_b0(r1, unop(Iop_64to8, binop(Iop_And64, mkexpr(op2), mkU64(255))));
6057 put_gpr_b1(r1, unop(Iop_64to8, binop(Iop_And64, binop(Iop_Shr64, mkexpr(op2),
6059 put_gpr_b2(r1, unop(Iop_64to8, binop(Iop_And64, binop(Iop_Shr64, mkexpr(op2),
6061 put_gpr_b3(r1, unop(Iop_64to8, binop(Iop_And64, binop(Iop_Shr64, mkexpr(op2),
6063 put_gpr_b4(r1, unop(Iop_64to8, binop(Iop_And64, binop(Iop_Shr64, mkexpr(op2),
6065 put_gpr_b5(r1, unop(Iop_64to8, binop(Iop_And64, binop(Iop_Shr64, mkexpr(op2),
6067 put_gpr_b6(r1, unop(Iop_64to8, binop(Iop_And64, binop(Iop_Shr64, mkexpr(op2),
6069 put_gpr_b7(r1, unop(Iop_64to8, binop(Iop_And64, binop(Iop_Shr64, mkexpr(op2),
6124 assign(result, binop(Iop_MullS32, mkexpr(op1), mkexpr(op2)));
6140 assign(result, binop(Iop_MullS32, mkexpr(op1), mkexpr(op2)));
6156 assign(result, binop(Iop_MullS32, mkexpr(op1), mkexpr(op2)));
6172 assign(result, binop(Iop_MullS32, mkexpr(op1), unop(Iop_16Sto32, mkexpr(op2))
6188 assign(result, binop(Iop_MullS32, mkexpr(op1), unop(Iop_16Sto32, mkexpr(op2))
6204 assign(result, binop(Iop_MullS32, mkexpr(op1), unop(Iop_16Sto32,
6220 assign(result, binop(Iop_MullS64, mkexpr(op1), unop(Iop_16Sto64,
6236 assign(result, binop(Iop_MullU32, mkexpr(op1), mkexpr(op2)));
6252 assign(result, binop(Iop_MullU64, mkexpr(op1), mkexpr(op2)));
6268 assign(result, binop(Iop_MullU32, mkexpr(op1), mkexpr(op2)));
6284 assign(result, binop(Iop_MullU64, mkexpr(op1), mkexpr(op2)));
6300 assign(result, binop(Iop_MullS32, mkexpr(op1), mkexpr(op2)));
6315 assign(result, binop(Iop_MullS64, mkexpr(op1), mkexpr(op2)));
6330 assign(result, binop(Iop_MullS64, mkexpr(op1), unop(Iop_32Sto64, mkexpr(op2))
6346 assign(result, binop(Iop_MullS32, mkexpr(op1), mkexpr(op2)));
6361 assign(result, binop(Iop_MullS32, mkexpr(op1), mkexpr(op2)));
6376 assign(result, binop(Iop_MullS64, mkexpr(op1), mkexpr(op2)));
6391 assign(result, binop(Iop_MullS64, mkexpr(op1), unop(Iop_32Sto64, mkexpr(op2))
6407 assign(result, binop(Iop_MullS32, mkexpr(op1), mkU32((UInt)op2)));
6422 assign(result, binop(Iop_MullS64, mkexpr(op1), unop(Iop_32Sto64, mkU32((UInt)
6438 assign(result, binop(Iop_Or32, mkexpr(op1), mkexpr(op2)));
6454 assign(result, binop(Iop_Or64, mkexpr(op1), mkexpr(op2)));
6470 assign(result, binop(Iop_Or32, mkexpr(op2), mkexpr(op3)));
6486 assign(result, binop(Iop_Or64, mkexpr(op2), mkexpr(op3)));
6502 assign(result, binop(Iop_Or32, mkexpr(op1), mkexpr(op2)));
6518 assign(result, binop(Iop_Or32, mkexpr(op1), mkexpr(op2)));
6534 assign(result, binop(Iop_Or64, mkexpr(op1), mkexpr(op2)));
6550 assign(result, binop(Iop_Or8, mkexpr(op1), mkU8(op2)));
6566 assign(result, binop(Iop_Or8, mkexpr(op1), mkU8(op2)));
6582 assign(result, binop(Iop_Or32, mkexpr(op1), mkU32(op2)));
6598 assign(result, binop(Iop_Or16, mkexpr(op1), mkU16(op2)));
6614 assign(result, binop(Iop_Or16, mkexpr(op1), mkU16(op2)));
6630 assign(result, binop(Iop_Or32, mkexpr(op1), mkU32(op2)));
6646 assign(result, binop(Iop_Or16, mkexpr(op1), mkU16(op2)));
6662 assign(result, binop(Iop_Or16, mkexpr(op1), mkU16(op2)));
6689 assign(amount, binop(Iop_And64, mkexpr(op2addr), mkU64(31)));
6691 put_gpr_w1(r1, binop(Iop_Or32, binop(Iop_Shl32, mkexpr(op), unop(Iop_64to8,
6692 mkexpr(amount))), binop(Iop_Shr32, mkexpr(op), unop(Iop_64to8,
6693 binop(Iop_Sub64, mkU64(32), mkexpr(amount))))));
6704 assign(amount, binop(Iop_And64, mkexpr(op2addr), mkU64(63)));
6706 put_gpr_dw0(r1, binop(Iop_Or64, binop(Iop_Shl64, mkexpr(op), unop(Iop_64to8,
6707 mkexpr(amount))), binop(Iop_Shr64, mkexpr(op), unop(Iop_64to8,
6708 binop(Iop_Sub64, mkU64(64), mkexpr(amount))))));
6729 assign(op2, rot == 0 ? get_gpr_dw0(r2) : binop(Iop_Or64, binop(Iop_Shl64,
6730 get_gpr_dw0(r2), mkU8(rot)), binop(Iop_Shr64, get_gpr_dw0(r2),
6741 assign(result, binop(Iop_And64, binop(Iop_And64, get_gpr_dw0(r1), mkexpr(op2)
6744 put_gpr_dw0(r1, binop(Iop_Or64, binop(Iop_And64, get_gpr_dw0(r1),
6768 assign(op2, rot == 0 ? get_gpr_dw0(r2) : binop(Iop_Or64, binop(Iop_Shl64,
6769 get_gpr_dw0(r2), mkU8(rot)), binop(Iop_Shr64, get_gpr_dw0(r2),
6780 assign(result, binop(Iop_And64, binop(Iop_Xor64, get_gpr_dw0(r1), mkexpr(op2)
6783 put_gpr_dw0(r1, binop(Iop_Or64, binop(Iop_And64, get_gpr_dw0(r1),
6807 assign(op2, rot == 0 ? get_gpr_dw0(r2) : binop(Iop_Or64, binop(Iop_Shl64,
6808 get_gpr_dw0(r2), mkU8(rot)), binop(Iop_Shr64, get_gpr_dw0(r2),
6819 assign(result, binop(Iop_And64, binop(Iop_Or64, get_gpr_dw0(r1), mkexpr(op2)
6822 put_gpr_dw0(r1, binop(Iop_Or64, binop(Iop_And64, get_gpr_dw0(r1),
6846 assign(op2, rot == 0 ? get_gpr_dw0(r2) : binop(Iop_Or64, binop(Iop_Shl64,
6847 get_gpr_dw0(r2), mkU8(rot)), binop(Iop_Shr64, get_gpr_dw0(r2),
6859 put_gpr_dw0(r1, binop(Iop_Or64, binop(Iop_And64, get_gpr_dw0(r1),
6860 mkU64(maskc)), binop(Iop_And64, mkexpr(op2), mkU64(mask))));
6862 put_gpr_dw0(r1, binop(Iop_And64, mkexpr(op2), mkU64(mask)));
6892 assign(op, binop(Iop_Or64, binop(Iop_Shl64, mkexpr(p1), mkU8(32)), mkexpr(p2)
6895 assign(shift_amount, binop(Iop_And64, mkexpr(op2addr), mkU64(63)));
6896 assign(result, binop(Iop_Or64, binop(Iop_And64, binop(Iop_Shl64, mkexpr(op),
6898 binop(Iop_And64, mkexpr(op), mkU64(sign_mask))));
6915 assign(result, binop(Iop_Shl64, binop(Iop_Or64, binop(Iop_Shl64, mkexpr(p1),
6916 mkU8(32)), mkexpr(p2)), unop(Iop_64to8, binop(Iop_And64,
6936 assign(shift_amount, binop(Iop_And64, mkexpr(op2addr), mkU64(63)));
6937 assign(result, binop(Iop_Or32, binop(Iop_And32, binop(Iop_Shl32, mkexpr(uop),
6939 binop(Iop_And32, mkexpr(uop), mkU32(sign_mask))));
6958 assign(shift_amount, binop(Iop_And64, mkexpr(op2addr), mkU64(63)));
6959 assign(result, binop(Iop_Or32, binop(Iop_And32, binop(Iop_Shl32, mkexpr(uop),
6961 binop(Iop_And32, mkexpr(uop), mkU32(sign_mask))));
6980 assign(shift_amount, binop(Iop_And64, mkexpr(op2addr), mkU64(63)));
6981 assign(result, binop(Iop_Or64, binop(Iop_And64, binop(Iop_Shl64, mkexpr(uop),
6983 binop(Iop_And64, mkexpr(uop), mkU64(sign_mask))));
6993 put_gpr_w1(r1, binop(Iop_Shl32, get_gpr_w1(r1), unop(Iop_64to8,
6994 binop(Iop_And64, mkexpr(op2addr), mkU64(63)))));
7002 put_gpr_w1(r1, binop(Iop_Shl32, get_gpr_w1(r3), unop(Iop_64to8,
7003 binop(Iop_And64, mkexpr(op2addr), mkU64(63)))));
7011 put_gpr_dw0(r1, binop(Iop_Shl64, get_gpr_dw0(r3), unop(Iop_64to8,
7012 binop(Iop_And64, mkexpr(op2addr), mkU64(63)))));
7026 assign(result, binop(Iop_Sar64, binop(Iop_Or64, binop(Iop_Shl64, mkexpr(p1),
7027 mkU8(32)), mkexpr(p2)), unop(Iop_64to8, binop(Iop_And64,
7045 assign(result, binop(Iop_Shr64, binop(Iop_Or64, binop(Iop_Shl64, mkexpr(p1),
7046 mkU8(32)), mkexpr(p2)), unop(Iop_64to8, binop(Iop_And64,
7061 assign(result, binop(Iop_Sar32, mkexpr(op), unop(Iop_64to8, binop(Iop_And64,
7076 assign(result, binop(Iop_Sar32, mkexpr(op), unop(Iop_64to8, binop(Iop_And64,
7091 assign(result, binop(Iop_Sar64, mkexpr(op), unop(Iop_64to8, binop(Iop_And64,
7105 put_gpr_w1(r1, binop(Iop_Shr32, mkexpr(op), unop(Iop_64to8, binop(Iop_And64,
7117 put_gpr_w1(r1, binop(Iop_Shr32, mkexpr(op), unop(Iop_64to8, binop(Iop_And64,
7129 put_gpr_dw0(r1, binop(Iop_Shr64, mkexpr(op), unop(Iop_64to8, binop(Iop_And64,
7214 store(binop(Iop_Add64, mkexpr(op2addr), mkU64(n)), get_gpr_b5(r1));
7218 store(binop(Iop_Add64, mkexpr(op2addr), mkU64(n)), get_gpr_b6(r1));
7222 store(binop(Iop_Add64, mkexpr(op2addr), mkU64(n)), get_gpr_b7(r1));
7241 store(binop(Iop_Add64, mkexpr(op2addr), mkU64(n)), get_gpr_b5(r1));
7245 store(binop(Iop_Add64, mkexpr(op2addr), mkU64(n)), get_gpr_b6(r1));
7249 store(binop(Iop_Add64, mkexpr(op2addr), mkU64(n)), get_gpr_b7(r1));
7268 store(binop(Iop_Add64, mkexpr(op2addr), mkU64(n)), get_gpr_b1(r1));
7272 store(binop(Iop_Add64, mkexpr(op2addr), mkU64(n)), get_gpr_b2(r1));
7276 store(binop(Iop_Add64, mkexpr(op2addr), mkU64(n)), get_gpr_b3(r1));
7345 store(binop(Iop_Add64, mkexpr(op2addr), mkU64(8)), get_gpr_dw0(r1 + 1));
7354 store(binop(Iop_Add64, mkexpr(op2addr), mkU64(1)), get_gpr_b6(r1));
7363 store(binop(Iop_Add64, mkexpr(op2addr), mkU64(1)), get_gpr_b6(r1));
7364 store(binop(Iop_Add64, mkexpr(op2addr), mkU64(2)), get_gpr_b5(r1));
7365 store(binop(Iop_Add64, mkexpr(op2addr), mkU64(3)), get_gpr_b4(r1));
7374 store(binop(Iop_Add64, mkexpr(op2addr), mkU64(1)), get_gpr_b6(r1));
7375 store(binop(Iop_Add64, mkexpr(op2addr), mkU64(2)), get_gpr_b5(r1));
7376 store(binop(Iop_Add64, mkexpr(op2addr), mkU64(3)), get_gpr_b4(r1));
7377 store(binop(Iop_Add64, mkexpr(op2addr), mkU64(4)), get_gpr_b3(r1));
7378 store(binop(Iop_Add64, mkexpr(op2addr), mkU64(5)), get_gpr_b2(r1));
7379 store(binop(Iop_Add64, mkexpr(op2addr), mkU64(6)), get_gpr_b1(r1));
7380 store(binop(Iop_Add64, mkexpr(op2addr), mkU64(7)), get_gpr_b0(r1));
7394 assign(result, binop(Iop_Sub32, mkexpr(op1), mkexpr(op2)));
7410 assign(result, binop(Iop_Sub64, mkexpr(op1), mkexpr(op2)));
7426 assign(result, binop(Iop_Sub64, mkexpr(op1), mkexpr(op2)));
7442 assign(result, binop(Iop_Sub32, mkexpr(op2), mkexpr(op3)));
7458 assign(result, binop(Iop_Sub64, mkexpr(op2), mkexpr(op3)));
7474 assign(result, binop(Iop_Sub32, mkexpr(op1), mkexpr(op2)));
7490 assign(result, binop(Iop_Sub32, mkexpr(op1), mkexpr(op2)));
7506 assign(result, binop(Iop_Sub64, mkexpr(op1), mkexpr(op2)));
7522 assign(result, binop(Iop_Sub64, mkexpr(op1), mkexpr(op2)));
7538 assign(result, binop(Iop_Sub32, mkexpr(op1), mkexpr(op2)));
7554 assign(result, binop(Iop_Sub32, mkexpr(op1), mkexpr(op2)));
7570 assign(result, binop(Iop_Sub32, mkexpr(op2), mkexpr(op3)));
7586 assign(result, binop(Iop_Sub32, mkexpr(op2), mkexpr(op3)));
7602 assign(result, binop(Iop_Sub32, mkexpr(op1), mkexpr(op2)));
7618 assign(result, binop(Iop_Sub64, mkexpr(op1), mkexpr(op2)));
7634 assign(result, binop(Iop_Sub64, mkexpr(op1), mkexpr(op2)));
7650 assign(result, binop(Iop_Sub32, mkexpr(op2), mkexpr(op3)));
7666 assign(result, binop(Iop_Sub64, mkexpr(op2), mkexpr(op3)));
7682 assign(result, binop(Iop_Sub32, mkexpr(op1), mkexpr(op2)));
7698 assign(result, binop(Iop_Sub32, mkexpr(op1), mkexpr(op2)));
7714 assign(result, binop(Iop_Sub64, mkexpr(op1), mkexpr(op2)));
7730 assign(result, binop(Iop_Sub64, mkexpr(op1), mkexpr(op2)));
7746 assign(result, binop(Iop_Sub32, mkexpr(op1), mkU32(op2)));
7763 assign(result, binop(Iop_Sub64, mkexpr(op1), mkU64(op2)));
7780 assign(result, binop(Iop_Sub32, mkexpr(op2), mkexpr(op3)));
7796 assign(result, binop(Iop_Sub32, mkexpr(op2), mkexpr(op3)));
7813 assign(borrow_in, binop(Iop_Sub32, mkU32(1), binop(Iop_Shr32,
7815 assign(result, binop(Iop_Sub32, binop(Iop_Sub32, mkexpr(op1), mkexpr(op2)),
7833 assign(borrow_in, unop(Iop_32Uto64, binop(Iop_Sub32, mkU32(1),
7834 binop(Iop_Shr32, s390_call_calculate_cc(), mkU8(1)))));
7835 assign(result, binop(Iop_Sub64, binop(Iop_Sub64, mkexpr(op1), mkexpr(op2)),
7853 assign(borrow_in, binop(Iop_Sub32, mkU32(1), binop(Iop_Shr32,
7855 assign(result, binop(Iop_Sub32, binop(Iop_Sub32, mkexpr(op1), mkexpr(op2)),
7873 assign(borrow_in, unop(Iop_32Uto64, binop(Iop_Sub32, mkU32(1),
7874 binop(Iop_Shr32, s390_call_calculate_cc(), mkU8(1)))));
7875 assign(result, binop(Iop_Sub64, binop(Iop_Sub64, mkexpr(op1), mkexpr(op2)),
8086 put_fpc_w0(binop(Iop_Or32, binop(Iop_And32, get_fpc_w0(), mkU32(~mask)),
8087 binop(Iop_And32, unop(Iop_64to32, mkexpr(op2addr)), mkU32(mask)))
8215 put_fpr_w0(r1, binop(Iop_I32StoF32, mkU32(Irrm_NEAREST), mkexpr(op2)));
8237 put_fpr_w0(r1, binop(Iop_I64StoF32, mkU32(Irrm_NEAREST), mkexpr(op2)));
8248 put_fpr_dw0(r1, binop(Iop_I64StoF64, mkU32(Irrm_NEAREST), mkexpr(op2)));
8260 assign(result, binop(Iop_F32toI32S, mkU32(encode_rounding_mode(r3)),
8275 assign(result, binop(Iop_F64toI32S, mkU32(encode_rounding_mode(r3)),
8290 assign(result, binop(Iop_F32toI64S, mkU32(encode_rounding_mode(r3)),
8305 assign(result, binop(Iop_F64toI64S, mkU32(encode_rounding_mode(r3)),
8453 put_fpr_w0(r1, binop(Iop_F64toF32, mkU32(Irrm_NEAREST), mkexpr(op)));
8619 assign(len1, binop(Iop_And32, mkexpr(r1p1), mkU32(0x00ffffff)));
8622 assign(len2, binop(Iop_And32, mkexpr(r2p1), mkU32(0x00ffffff)));
8627 next_insn_if(binop(Iop_CmpEQ32, binop(Iop_Or32, mkexpr(len1),
8636 mkite(binop(Iop_CmpEQ32, mkexpr(len1), mkU32(0)),
8639 mkite(binop(Iop_CmpEQ32, mkexpr(len1), mkU32(0)),
8643 mkite(binop(Iop_CmpEQ32, mkexpr(len2), mkU32(0)),
8646 mkite(binop(Iop_CmpEQ32, mkexpr(len2), mkU32(0)),
8651 next_insn_if(binop(Iop_CmpNE8, mkexpr(single1), mkexpr(single2)));
8655 mkite(binop(Iop_CmpEQ32, mkexpr(len1), mkU32(0)),
8657 binop(Iop_Add64, mkexpr(addr1), mkU64(1))));
8661 mkite(binop(Iop_CmpEQ32, mkexpr(len1), mkU32(0)),
8662 binop(Iop_And32, mkexpr(r1p1), mkU32(0xFF000000u)),
8663 binop(Iop_Sub32, mkexpr(r1p1), mkU32(1))));
8667 mkite(binop(Iop_CmpEQ32, mkexpr(len2), mkU32(0)),
8669 binop(Iop_Add64, mkexpr(addr2), mkU64(1))));
8673 mkite(binop(Iop_CmpEQ32, mkexpr(len2), mkU32(0)),
8674 binop(Iop_And32, mkexpr(r2p1), mkU32(0xFF000000u)),
8675 binop(Iop_Sub32, mkexpr(r2p1), mkU32(1))));
8703 next_insn_if(binop(Iop_CmpEQ64,binop(Iop_Or64, mkexpr(len1),
8710 mkite(binop(Iop_CmpEQ64, mkexpr(len1), mkU64(0)),
8715 mkite(binop(Iop_CmpEQ64, mkexpr(len3), mkU64(0)),
8719 mkite(binop(Iop_CmpEQ64, mkexpr(len1), mkU64(0)),
8724 mkite(binop(Iop_CmpEQ64, mkexpr(len3), mkU64(0)),
8730 next_insn_if(binop(Iop_CmpNE8, mkexpr(single1), mkexpr(single3)));
8734 mkite(binop(Iop_CmpEQ64, mkexpr(len1), mkU64(0)),
8736 binop(Iop_Add64, mkexpr(addr1), mkU64(1))));
8739 mkite(binop(Iop_CmpEQ64, mkexpr(len1), mkU64(0)),
8740 mkU64(0), binop(Iop_Sub64, mkexpr(len1), mkU64(1))));
8743 mkite(binop(Iop_CmpEQ64, mkexpr(len3), mkU64(0)),
8745 binop(Iop_Add64, mkexpr(addr3), mkU64(1))));
8748 mkite(binop(Iop_CmpEQ64, mkexpr(len3), mkU64(0)),
8749 mkU64(0), binop(Iop_Sub64, mkexpr(len3), mkU64(1))));
8788 assign(current1, load(Ity_I8, binop(Iop_Add64, mkexpr(start1),
8790 assign(current2, load(Ity_I8, binop(Iop_Add64, mkexpr(start2),
8796 next_insn_if(binop(Iop_CmpNE8, mkexpr(current1), mkexpr(current2)));
8799 put_counter_dw0(binop(Iop_Add64, mkexpr(counter), mkU64(1)));
8800 iterate_if(binop(Iop_CmpNE64, mkexpr(counter), mkexpr(length)));
8811 store(binop(Iop_Add64, mkexpr(start1), mkexpr(counter)),
8812 load(Ity_I8, binop(Iop_Add64, mkexpr(start2), mkexpr(counter))));
8815 put_counter_dw0(binop(Iop_Add64, mkexpr(counter), mkU64(1)));
8816 iterate_if(binop(Iop_CmpNE64, mkexpr(counter), mkexpr(length)));
8830 assign(op, load(Ity_I8, binop(Iop_Add64, mkexpr(start1), mkexpr(counter))));
8832 assign(result, binop(Iop_Add64, unop(Iop_8Uto64, mkexpr(op)), mkexpr(start2)));
8835 store(binop(Iop_Add64, mkexpr(start1), mkexpr(counter)), mkexpr(op1));
8837 put_counter_dw0(binop(Iop_Add64, mkexpr(counter), mkU64(1)));
8838 iterate_if(binop(Iop_CmpNE64, mkexpr(counter), mkexpr(length)));
8872 assign(cond, binop(Iop_CmpNE64, mkexpr(torun), mkU64(last_execute_target)));
8886 assign(start1, binop(Iop_Add64, mkU64(ss.dec.d1),
8888 assign(start2, binop(Iop_Add64, mkU64(ss.dec.d2),
8890 assign(len, unop(lensize == 64 ? Iop_8Uto64 : Iop_8Uto32, binop(Iop_Or8,
8972 assign(torun, binop(Iop_Or64, load(Ity_I64, mkexpr(addr2)),
8973 binop(Iop_Shl64, mkexpr(orperand), mkU8(48))));
8976 assign(cond, binop(Iop_CmpNE64, mkexpr(torun),
9019 put_gpr_b4(r1, unop(Iop_32to8, binop(Iop_Or32, mkU32(0 /* program mask */),
9020 binop(Iop_Shl32, s390_call_calculate_cc(), mkU8(4)))));
9043 put_gpr_dw0(r2, binop(Iop_Sub64, mkexpr(address), mkexpr(counter)));
9044 next_insn_if(binop(Iop_CmpEQ64, mkexpr(address), mkexpr(next)));
9052 next_insn_if(binop(Iop_CmpEQ8, mkexpr(delim), mkexpr(byte)));
9055 put_counter_dw0(binop(Iop_Add64, mkexpr(counter), mkU64(1)));
9057 put_gpr_dw0(r2, binop(Iop_Add64, mkexpr(address), mkU64(1)));
9084 put_gpr_dw0(r1, binop(Iop_Sub64, mkexpr(address1), mkexpr(counter)));
9085 put_gpr_dw0(r2, binop(Iop_Sub64, mkexpr(address2), mkexpr(counter)));
9086 next_insn_if(binop(Iop_CmpEQ8, mkU8(0),
9087 binop(Iop_Or8,
9088 binop(Iop_Xor8, mkexpr(byte1), mkexpr(end)),
9089 binop(Iop_Xor8, mkexpr(byte2), mkexpr(end)))));
9096 next_insn_if(binop(Iop_CmpEQ8, mkexpr(end), mkexpr(byte1)));
9100 next_insn_if(binop(Iop_CmpEQ8, mkexpr(end), mkexpr(byte2)));
9104 next_insn_if(binop(Iop_CmpLT32U, unop(Iop_8Uto32, mkexpr(byte1)),
9109 next_insn_if(binop(Iop_CmpLT32U, unop(Iop_8Uto32, mkexpr(byte2)),
9113 put_counter_dw0(binop(Iop_Add64, mkexpr(counter), mkU64(1)));
9114 put_gpr_dw0(r1, binop(Iop_Add64, get_gpr_dw0(r1), mkU64(1)));
9115 put_gpr_dw0(r2, binop(Iop_Add64, get_gpr_dw0(r2), mkU64(1)));
9136 assign(addr, binop(Iop_Add64, mkexpr(old), mkU64(4)));
9171 assign(addr, binop(Iop_Add64, mkexpr(old), mkU64(4)));
9192 assign(addr, binop(Iop_Add64, mkexpr(old), mkU64(8)));
9213 assign(addr, binop(Iop_Add64, mkexpr(old), mkU64(4)));
9248 assign(addr, binop(Iop_Add64, mkexpr(old), mkU64(4)));
9269 assign(addr, binop(Iop_Add64, mkexpr(old), mkU64(8)));
9287 assign(addr1, binop(Iop_Add64, mkexpr(start1),
9291 assign(old2, load(Ity_I8, binop(Iop_Add64, mkexpr(start2),
9293 assign(new1, binop(op, mkexpr(old1), mkexpr(old2)));
9298 mkite(binop(Iop_CmpEQ64, mkexpr(start1), mkexpr(start2)),
9302 put_counter_w1(binop(Iop_Or32, unop(Iop_8Uto32, mkexpr(new1)),
9306 put_counter_w0(binop(Iop_Add32, mkexpr(counter), mkU32(1)));
9307 iterate_if(binop(Iop_CmpNE32, mkexpr(counter), mkexpr(length)));
9332 binop(Iop_Add64, mkU64(d), b != 0 ? get_gpr_dw0(b) : mkU64(0)));
9338 store(binop(Iop_Add64, mkexpr(start), mkU64(i)), mkU8(0));
9343 assign(addr, binop(Iop_Add64, mkexpr(start),
9349 put_counter_w0(binop(Iop_Add32, mkexpr(counter), mkU32(1)));
9350 iterate_if(binop(Iop_CmpNE32, mkexpr(counter), mkU32(length)));
9411 assign(len1, binop(Iop_And32, mkexpr(r1p1), mkU32(0x00ffffff)));
9414 assign(len2, binop(Iop_And32, mkexpr(r2p1), mkU32(0x00ffffff)));
9419 next_insn_if(binop(Iop_CmpEQ32, mkexpr(len1), mkU32(0)));
9426 binop(Iop_CmpLT64U, mkexpr(addr2), mkexpr(addr1))));
9429 binop(Iop_CmpLT64U, mkexpr(addr1),
9430 binop(Iop_Add64, mkexpr(addr2),
9434 binop(Iop_CmpLT64U,
9436 binop(Iop_Add64, mkexpr(addr2),
9439 next_insn_if(binop(Iop_CmpEQ32,
9440 binop(Iop_And32,
9441 binop(Iop_And32, mkexpr(cond1), mkexpr(cond2)),
9448 mkite(binop(Iop_CmpEQ32, mkexpr(len2), mkU32(0)),
9451 mkite(binop(Iop_CmpEQ32, mkexpr(len2), mkU32(0)),
9457 put_gpr_dw0(r1, binop(Iop_Add64, mkexpr(addr1), mkU64(1)));
9458 put_gpr_w1(r1 + 1, binop(Iop_Sub32, mkexpr(r1p1), mkU32(1)));
9462 mkite(binop(Iop_CmpEQ32, mkexpr(len2), mkU32(0)),
9464 binop(Iop_Add64, mkexpr(addr2), mkU64(1))));
9468 mkite(binop(Iop_CmpEQ32, mkexpr(len2), mkU32(0)),
9469 binop(Iop_And32, mkexpr(r2p1), mkU32(0xFF000000u)),
9470 binop(Iop_Sub32, mkexpr(r2p1), mkU32(1))));
9473 iterate_if(binop(Iop_CmpNE32, mkexpr(len1), mkU32(1)));
9498 next_insn_if(binop(Iop_CmpEQ64,mkexpr(len1), mkU64(0)));
9504 mkite(binop(Iop_CmpEQ64, mkexpr(len3), mkU64(0)),
9508 mkite(binop(Iop_CmpEQ64, mkexpr(len3), mkU64(0)),
9513 put_gpr_dw0(r1, binop(Iop_Add64, mkexpr(addr1), mkU64(1)));
9515 put_gpr_dw0(r1 + 1, binop(Iop_Sub64, mkexpr(len1), mkU64(1)));
9518 mkite(binop(Iop_CmpEQ64, mkexpr(len3), mkU64(0)),
9520 binop(Iop_Add64, mkexpr(addr3), mkU64(1))));
9523 mkite(binop(Iop_CmpEQ64, mkexpr(len3), mkU64(0)),
9524 mkU64(0), binop(Iop_Sub64, mkexpr(len3), mkU64(1))));
9527 iterate_if(binop(Iop_CmpNE64, mkexpr(len1), mkU64(1)));
9545 assign(byte, load(Ity_I8, binop(Iop_Add64, mkexpr(addr2),mkexpr(counter))));
9546 store(binop(Iop_Add64,mkexpr(addr1),mkexpr(counter)), mkexpr(byte));
9549 put_counter_dw0(binop(Iop_Add64, mkexpr(counter), mkU64(1)));
9550 iterate_if(binop(Iop_CmpNE8, mkexpr(end), mkexpr(byte)));
9554 put_gpr_dw0(r1, binop(Iop_Add64, mkexpr(addr1), mkexpr(counter)));
9566 assign(op1, binop(Iop_32HLto64,
9569 assign(result, binop(op, mkexpr(op1), mkexpr(op2)));
9580 assign(op1, binop(Iop_64HLto128,
9583 assign(result, binop(op, mkexpr(op1), mkexpr(op2)));
9595 assign(result, binop(op, mkexpr(op1), mkexpr(op2)));
9734 assign(addr, binop(Iop_Add64, mkexpr(old), mkU64(4)));
9769 assign(addr, binop(Iop_Add64, mkexpr(old), mkU64(4)));
9814 assign(result, binop(Iop_Sub32, mkexpr(op1), mkexpr(old_mem)));
9819 assign(nequal, binop(Iop_CmpNE32, s390_call_calculate_cc(), mkU32(0)));
9862 assign(result, binop(Iop_Sub64, mkexpr(op1), mkexpr(old_mem)));
9867 assign(nequal, binop(Iop_CmpNE32, s390_call_calculate_cc(), mkU32(0)));
9903 binop(Iop_CmpNE32,
9904 binop(Iop_Or32,
9905 binop(Iop_Xor32, mkexpr(op1_high), mkexpr(old_mem_high)),
9906 binop(Iop_Xor32, mkexpr(op1_low), mkexpr(old_mem_low))),
9913 assign(nequal, binop(Iop_CmpNE32, s390_call_calculate_cc(), mkU32(0)));
9963 binop(Iop_CmpNE64,
9964 binop(Iop_Or64,
9965 binop(Iop_Xor64, mkexpr(op1_high), mkexpr(old_mem_high)),
9966 binop(Iop_Xor64, mkexpr(op1_low), mkexpr(old_mem_low))),
9973 assign(nequal, binop(Iop_CmpNE32, s390_call_calculate_cc(), mkU32(0)));
10031 assign(b0, binop(Iop_And32, mkexpr(vex_cc), mkU32(1)));
10032 assign(b2, binop(Iop_And32, binop(Iop_Shr32, mkexpr(vex_cc), mkU8(2)),
10034 assign(b6, binop(Iop_And32, binop(Iop_Shr32, mkexpr(vex_cc), mkU8(6)),
10038 assign(cc1, binop(Iop_Or32, mkexpr(b2),
10039 binop(Iop_And32,
10040 binop(Iop_Sub32, mkU32(1), mkexpr(b0)), /* ~b0 */
10041 binop(Iop_Sub32, mkU32(1), mkexpr(b6)) /* ~b6 */
10044 return binop(Iop_Or32, mkexpr(cc0), binop(Iop_Shl32, mkexpr(cc1), mkU8(1)));
10057 assign(cc_vex, binop(Iop_CmpF32, mkexpr(op1), mkexpr(op2)));
10075 assign(cc_vex, binop(Iop_CmpF64, mkexpr(op1), mkexpr(op2)));
10093 assign(cc_vex, binop(Iop_CmpF128, mkexpr(op1), mkexpr(op2)));
10111 assign(cc_vex, binop(Iop_CmpF32, mkexpr(op1), mkexpr(op2)));
10129 assign(cc_vex, binop(Iop_CmpF64, mkexpr(op1), mkexpr(op2)));
10166 assign(result, binop(Iop_F128toI32S, mkU32(encode_rounding_mode(r3)),
10181 assign(result, binop(Iop_F128toI64S, mkU32(encode_rounding_mode(r3)),
10350 assign(result, binop(Iop_F128toF64, mkU32(Irrm_NEAREST), get_fpr_pair(r2)));
10361 assign(result, binop(Iop_F128toF32, mkU32(Irrm_NEAREST), get_fpr_pair(r2)));
10468 assign(result, binop(Iop_SqrtF32, mkU32(Irrm_NEAREST), get_fpr_w0(r2)));
10479 assign(result, binop(Iop_SqrtF64, mkU32(Irrm_NEAREST), get_fpr_dw0(r2)));
10490 assign(result, binop(Iop_SqrtF128, mkU32(Irrm_NEAREST), get_fpr_pair(r2)));
10502 put_fpr_w0(r1, binop(Iop_SqrtF32, mkU32(Irrm_NEAREST), mkexpr(op)));
10513 put_fpr_dw0(r1, binop(Iop_SqrtF64, mkU32(Irrm_NEAREST), mkexpr(op)));
10627 assign(sign, binop(Iop_And64, unop(Iop_ReinterpF64asI64, get_fpr_dw0(r3)),
10629 assign(value, binop(Iop_And64, unop(Iop_ReinterpF64asI64, get_fpr_dw0(r2)),
10631 put_fpr_dw0(r1, unop(Iop_ReinterpI64asF64, binop(Iop_Or64, mkexpr(value),
10718 assign(not_zero, binop(Iop_Or64, mkexpr(input), mkU64(1)));
10722 assign(num, mkite(binop(Iop_CmpEQ64, mkexpr(input), mkU64(0)),
10737 assign(shift_amount, unop(Iop_64to8, binop(Iop_Add64, mkexpr(num),
10741 mkite(binop(Iop_CmpLE64U, mkexpr(input), mkU64(1)),
10744 binop(Iop_Shr64,
10745 binop(Iop_Shl64, mkexpr(input),
10862 next_insn_if(binop(Iop_CmpEQ64, mkexpr(len), mkU64(0)));
10866 assign(inc, mkite(binop(Iop_CmpLT64U, mkexpr(len), mkU64(4)),
10874 assign(mask, mkite(binop(Iop_CmpLT64U, mkexpr(len), mkU64(4)),
10877 binop(Iop_Shl32, mkU32(0xffffffff),
10879 binop(Iop_Sub32, mkU32(32),
10880 binop(Iop_Shl32,
10882 binop(Iop_And64,
10888 assign(newop, binop(Iop_And32, mkexpr(op), mkexpr(mask)));
10889 assign(result, binop(Iop_Add32, mkexpr(newop), mkexpr(oldval)));
10892 assign(result1, mkite(binop(Iop_CmpLT32U, mkexpr(result), mkexpr(newop)),
10893 binop(Iop_Add32, mkexpr(result), mkU32(1)),
10897 put_gpr_dw0(r2, binop(Iop_Add64, mkexpr(addr), mkexpr(inc)));
10898 put_gpr_dw0(r2+1, binop(Iop_Sub64, mkexpr(len), mkexpr(inc)));
10900 iterate_if(binop(Iop_CmpNE64, mkexpr(len), mkU64(0)));
10927 next_insn_if(binop(Iop_CmpEQ64, mkexpr(src_len), mkU64(0)));
10933 assign(result, binop(Iop_Add64, unop(Iop_8Uto64, mkexpr(op)),
10939 next_insn_if(binop(Iop_CmpEQ8, mkexpr(op1), mkexpr(test_byte)));
10943 put_gpr_dw0(r1, binop(Iop_Add64, mkexpr(des_addr), mkU64(1)));
10944 put_gpr_dw0(r2, binop(Iop_Add64, mkexpr(src_addr), mkU64(1)));
10945 put_gpr_dw0(r1+1, binop(Iop_Sub64, mkexpr(src_len), mkU64(1)));
10974 next_insn_if(binop(Iop_CmpEQ64, mkexpr(src_len), mkU64(0)));
10980 assign(result, binop(Iop_Add64, unop(Iop_16Uto64, mkexpr(op)),
10987 next_insn_if(binop(Iop_CmpEQ8, mkexpr(op1), mkexpr(test_byte)));
10991 put_gpr_dw0(r2, binop(Iop_Add64, mkexpr(src_addr), mkU64(2)));
10992 put_gpr_dw0(r1, binop(Iop_Add64, mkexpr(des_addr), mkU64(1)));
10993 put_gpr_dw0(r1+1, binop(Iop_Sub64, mkexpr(src_len), mkU64(2)));
11022 next_insn_if(binop(Iop_CmpEQ64, mkexpr(src_len), mkU64(0)));
11026 assign(op, binop(Iop_Shl8, load(Ity_I8, mkexpr(src_addr)), mkU8(1)));
11028 assign(result, binop(Iop_Add64, unop(Iop_8Uto64, mkexpr(op)),
11034 next_insn_if(binop(Iop_CmpEQ16, mkexpr(op1), mkexpr(test_byte)));
11038 put_gpr_dw0(r2, binop(Iop_Add64, mkexpr(src_addr), mkU64(1)));
11039 put_gpr_dw0(r1, binop(Iop_Add64, mkexpr(des_addr), mkU64(2)));
11040 put_gpr_dw0(r1+1, binop(Iop_Sub64, mkexpr(src_len), mkU64(1)));
11069 next_insn_if(binop(Iop_CmpEQ64, mkexpr(src_len), mkU64(0)));
11073 assign(op, binop(Iop_Shl16, load(Ity_I16, mkexpr(src_addr)), mkU8(1)));
11075 assign(result, binop(Iop_Add64, unop(Iop_16Uto64, mkexpr(op)),
11081 next_insn_if(binop(Iop_CmpEQ16, mkexpr(op1), mkexpr(test_byte)));
11086 put_gpr_dw0(r2, binop(Iop_Add64, mkexpr(src_addr), mkU64(2)));
11087 put_gpr_dw0(r1, binop(Iop_Add64, mkexpr(des_addr), mkU64(2)));
11088 put_gpr_dw0(r1+1, binop(Iop_Sub64, mkexpr(src_len), mkU64(2)));
11126 next_insn_if(binop(Iop_CmpEQ64, mkexpr(src_len), mkU64(0)));
11132 next_insn_if(binop(Iop_CmpEQ8, mkexpr(op), mkexpr(test_byte)));
11134 assign(result, binop(Iop_Add64, unop(Iop_8Uto64, mkexpr(op)),
11140 put_gpr_dw0(r1, binop(Iop_Add64, mkexpr(src_addr), mkU64(1)));
11141 put_gpr_dw0(r1+1, binop(Iop_Sub64, mkexpr(src_len), mkU64(1)));
11179 next_insn_if(binop(Iop_CmpLT64U, mkexpr(len2), mkU64(2)));
11188 IRExpr *flag1 = mkite(binop(Iop_CmpLE32U, mkU32(0xd800), mkexpr(srcval)),
11190 IRExpr *flag2 = mkite(binop(Iop_CmpLE32U, mkexpr(srcval), mkU32(0xdbff)),
11192 assign(is_high_surrogate, binop(Iop_And32, flag1, flag2));
11197 mkite(binop(Iop_CmpLT64U, mkexpr(len2), mkU64(4)), mkU32(1), mkU32(0));
11199 next_insn_if(binop(Iop_CmpEQ32,
11200 binop(Iop_And32, mkexpr(is_high_surrogate),
11206 IRExpr *low_surrogate_addr = binop(Iop_Add64, mkexpr(addr2), mkU64(2));
11209 mkite(binop(Iop_CmpEQ32, mkexpr(is_high_surrogate), mkU32(1)),
11222 binop(Iop_And64, mkexpr(retval), mkU64(0xff));
11225 next_insn_if(binop(Iop_CmpEQ64, invalid_low_surrogate, mkU64(1)));
11230 assign(num_bytes, binop(Iop_And64,
11231 binop(Iop_Shr64, mkexpr(retval), mkU8(8)),
11234 next_insn_if(binop(Iop_CmpLT64U, mkexpr(len1), mkexpr(num_bytes)));
11238 assign(data, binop(Iop_Shr64, mkexpr(retval), mkU8(16)));
11251 d->guard = binop(Iop_CmpEQ64, mkexpr(num_bytes), mkU64(i));
11261 mkite(binop(Iop_CmpEQ32, mkexpr(is_high_surrogate), mkU32(1)),
11263 put_gpr_dw0(r2, binop(Iop_Add64, mkexpr(addr2), mkexpr(num_src_bytes)));
11264 put_gpr_dw0(r2 + 1, binop(Iop_Sub64, mkexpr(len2), mkexpr(num_src_bytes)));
11267 put_gpr_dw0(r1, binop(Iop_Add64, mkexpr(addr1), mkexpr(num_bytes)));
11268 put_gpr_dw0(r1 + 1, binop(Iop_Sub64, mkexpr(len1), mkexpr(num_bytes)));
11306 next_insn_if(binop(Iop_CmpLT64U, mkexpr(len2), mkU64(2)));
11315 IRExpr *flag1 = mkite(binop(Iop_CmpLE32U, mkU32(0xd800), mkexpr(srcval)),
11317 IRExpr *flag2 = mkite(binop(Iop_CmpLE32U, mkexpr(srcval), mkU32(0xdbff)),
11319 assign(is_high_surrogate, binop(Iop_And32, flag1, flag2));
11324 mkite(binop(Iop_CmpLT64U, mkexpr(len2), mkU64(4)), mkU32(1), mkU32(0));
11326 next_insn_if(binop(Iop_CmpEQ32,
11327 binop(Iop_And32, mkexpr(is_high_surrogate),
11334 IRExpr *low_surrogate_addr = binop(Iop_Add64, mkexpr(addr2), mkU64(2));
11337 mkite(binop(Iop_CmpEQ32, mkexpr(is_high_surrogate), mkU32(1)),
11350 binop(Iop_And64, mkexpr(retval), mkU64(0xff));
11353 next_insn_if(binop(Iop_CmpEQ64, invalid_low_surrogate, mkU64(1)));
11358 next_insn_if(binop(Iop_CmpLT64U, mkexpr(len1), mkU64(4)));
11361 IRExpr *data = unop(Iop_64to32, binop(Iop_Shr64, mkexpr(retval), mkU8(8)));
11368 mkite(binop(Iop_CmpEQ32, mkexpr(is_high_surrogate), mkU32(1)),
11370 put_gpr_dw0(r2, binop(Iop_Add64, mkexpr(addr2), mkexpr(num_src_bytes)));
11371 put_gpr_dw0(r2 + 1, binop(Iop_Sub64, mkexpr(len2), mkexpr(num_src_bytes)));
11374 put_gpr_dw0(r1, binop(Iop_Add64, mkexpr(addr1), mkU64(4)));
11375 put_gpr_dw0(r1 + 1, binop(Iop_Sub64, mkexpr(len1), mkU64(4)));
11413 next_insn_if(binop(Iop_CmpLT64U, mkexpr(len2), mkU64(4)));
11425 IRExpr *invalid_character = binop(Iop_And64, mkexpr(retval), mkU64(0xff));
11428 next_insn_if(binop(Iop_CmpEQ64, invalid_character, mkU64(1)));
11432 assign(num_bytes, binop(Iop_And64,
11433 binop(Iop_Shr64, mkexpr(retval), mkU8(8)),
11436 next_insn_if(binop(Iop_CmpLT64U, mkexpr(len1), mkexpr(num_bytes)));
11440 assign(data, binop(Iop_Shr64, mkexpr(retval), mkU8(16)));
11456 d->guard = binop(Iop_CmpEQ64, mkexpr(num_bytes), mkU64(i));
11464 put_gpr_dw0(r2, binop(Iop_Add64, mkexpr(addr2), mkU64(4)));
11465 put_gpr_dw0(r2 + 1, binop(Iop_Sub64, mkexpr(len2), mkU64(4)));
11468 put_gpr_dw0(r1, binop(Iop_Add64, mkexpr(addr1), mkexpr(num_bytes)));
11469 put_gpr_dw0(r1 + 1, binop(Iop_Sub64, mkexpr(len1), mkexpr(num_bytes)));
11507 next_insn_if(binop(Iop_CmpLT64U, mkexpr(len2), mkU64(4)));
11519 IRExpr *invalid_character = binop(Iop_And64, mkexpr(retval), mkU64(0xff));
11522 next_insn_if(binop(Iop_CmpEQ64, invalid_character, mkU64(1)));
11526 assign(num_bytes, binop(Iop_And64,
11527 binop(Iop_Shr64, mkexpr(retval), mkU8(8)),
11530 next_insn_if(binop(Iop_CmpLT64U, mkexpr(len1), mkexpr(num_bytes)));
11534 assign(data, binop(Iop_Shr64, mkexpr(retval), mkU8(16)));
11547 d->guard = binop(Iop_CmpEQ64, mkexpr(num_bytes), mkU64(i));
11555 put_gpr_dw0(r2, binop(Iop_Add64, mkexpr(addr2), mkU64(4)));
11556 put_gpr_dw0(r2 + 1, binop(Iop_Sub64, mkexpr(len2), mkU64(4)));
11559 put_gpr_dw0(r1, binop(Iop_Add64, mkexpr(addr1), mkexpr(num_bytes)));
11560 put_gpr_dw0(r1 + 1, binop(Iop_Sub64, mkexpr(len1), mkexpr(num_bytes)));
11630 next_insn_if(binop(Iop_CmpLT64U, mkexpr(len2), mkU64(1)));
11648 assign(num_src_bytes, binop(Iop_Shr64, mkexpr(retval1), mkU8(8)));
11652 next_insn_if(binop(Iop_CmpLT64U, mkexpr(len2), mkexpr(num_src_bytes)));
11657 cond = binop(Iop_CmpLE64U, mkU64(2), mkexpr(num_src_bytes));
11658 addr = binop(Iop_Add64, mkexpr(addr2), mkU64(1));
11660 cond = binop(Iop_CmpLE64U, mkU64(3), mkexpr(num_src_bytes));
11661 addr = binop(Iop_Add64, mkexpr(addr2), mkU64(2));
11663 cond = binop(Iop_CmpLE64U, mkU64(4), mkexpr(num_src_bytes));
11664 addr = binop(Iop_Add64, mkexpr(addr2), mkU64(3));
11670 IRExpr *stuff = binop(Iop_Or64,
11671 binop(Iop_Shl64, mkexpr(num_src_bytes), mkU8(1)),
11690 assign(num_bytes, binop(Iop_And64,
11691 binop(Iop_Shr64, mkexpr(retval2), mkU8(8)),
11694 next_insn_if(binop(Iop_CmpLT64U, mkexpr(len1), mkexpr(num_bytes)));
11698 assign(data, binop(Iop_Shr64, mkexpr(retval2), mkU8(16)));
11715 d->guard = binop(Iop_CmpEQ64, mkexpr(num_bytes), mkU64(i));
11727 put_gpr_dw0(r2, binop(Iop_Add64, mkexpr(addr2), mkexpr(num_src_bytes)));
11728 put_gpr_dw0(r2 + 1, binop(Iop_Sub64, mkexpr(len2), mkexpr(num_src_bytes)));
11731 put_gpr_dw0(r1, binop(Iop_Add64, mkexpr(addr1), mkexpr(num_bytes)));
11732 put_gpr_dw0(r1 + 1, binop(Iop_Sub64, mkexpr(len1), mkexpr(num_bytes)));