Home | History | Annotate | Download | only in priv

Lines Matching refs:binop

161 binop(IROp kind, IRExpr *op1, IRExpr *op2)
437 return binop(Iop_F64HLtoF128, high, low);
460 return binop(Iop_D64HLtoD128, high, low);
631 dep2x = binop(Iop_Xor64, dep2, ndep);
712 lox = binop(Iop_Xor64, lo, ndep); /* convey dependency */
746 lox = binop(Iop_Xor64, lo, ndep); /* convey dependency */
1539 assign(fpc_bits, binop(Iop_And32, get_fpc_w0(), mkU32(7)));
1551 IRExpr *rm_s390 = mkite(binop(Iop_CmpLE32S, mkexpr(fpc_bits), mkU32(3)),
1556 return binop(Iop_And32, binop(Iop_Sub32, mkU32(4), rm_s390), mkU32(3));
1609 assign(fpc_bits, binop(Iop_Shr32,
1610 binop(Iop_And32, get_fpc_w0(), mkU32(0x70)),
1616 return binop(Iop_Xor32, rm_s390,
1617 binop( Iop_And32,
1618 binop(Iop_Shl32, rm_s390, mkU8(1)),
1696 assign(b0, binop(Iop_And32, mkexpr(vex_cc), mkU32(1)));
1697 assign(b2, binop(Iop_And32, binop(Iop_Shr32, mkexpr(vex_cc), mkU8(2)),
1699 assign(b6, binop(Iop_And32, binop(Iop_Shr32, mkexpr(vex_cc), mkU8(6)),
1703 assign(cc1, binop(Iop_Or32, mkexpr(b2),
1704 binop(Iop_And32,
1705 binop(Iop_Sub32, mkU32(1), mkexpr(b0)), /* ~b0 */
1706 binop(Iop_Sub32, mkU32(1), mkexpr(b6)) /* ~b6 */
1709 return binop(Iop_Or32, mkexpr(cc0), binop(Iop_Shl32, mkexpr(cc1), mkU8(1)));
1909 assign(op4addr, binop(Iop_Add64, mkU64(d4), b4 != 0 ? get_gpr_dw0(b4) :
1927 assign(op4addr, binop(Iop_Add64, mkU64(d4), b4 != 0 ? get_gpr_dw0(b4) :
2173 assign(op4addr, binop(Iop_Add64, mkU64(d4), b4 != 0 ? get_gpr_dw0(b4) :
2190 assign(op2addr, binop(Iop_Add64, mkU64(d2), b2 != 0 ? get_gpr_dw0(b2) :
2206 assign(op2addr, binop(Iop_Add64, mkU64(d2), b2 != 0 ? get_gpr_dw0(b2) :
2222 assign(op2addr, binop(Iop_Add64, mkU64(d2), b2 != 0 ? get_gpr_dw0(b2) :
2238 assign(op2addr, binop(Iop_Add64, mkU64(d2), b2 != 0 ? get_gpr_dw0(b2) :
2266 assign(op2addr, binop(Iop_Add64, mkexpr(d2), b2 != 0 ? get_gpr_dw0(b2) :
2284 assign(op2addr, binop(Iop_Add64, mkexpr(d2), b2 != 0 ? get_gpr_dw0(b2) :
2302 assign(op2addr, binop(Iop_Add64, mkexpr(d2), b2 != 0 ? get_gpr_dw0(b2) :
2319 next_insn_if(binop(Iop_CmpEQ32, s390_call_calculate_cond(m3), mkU32(0)));
2322 assign(op2addr, binop(Iop_Add64, mkexpr(d2), b2 != 0 ? get_gpr_dw0(b2) :
2340 assign(op2addr, binop(Iop_Add64, binop(Iop_Add64, mkU64(d2),
2354 assign(op2addr, binop(Iop_Add64, binop(Iop_Add64, mkU64(d2),
2371 assign(op2addr, binop(Iop_Add64, binop(Iop_Add64, mkU64(d2),
2388 assign(op2addr, binop(Iop_Add64, binop(Iop_Add64, mkU64(d2),
2405 assign(op2addr, binop(Iop_Add64, binop(Iop_Add64, mkU64(d2),
2424 assign(op2addr, binop(Iop_Add64, binop(Iop_Add64, mkexpr(d2),
2443 assign(op2addr, binop(Iop_Add64, binop(Iop_Add64, mkexpr(d2),
2462 assign(op2addr, binop(Iop_Add64, binop(Iop_Add64, mkexpr(d2),
2479 assign(op2addr, binop(Iop_Add64, mkU64(d2), b2 != 0 ? get_gpr_dw0(b2) :
2495 assign(op1addr, binop(Iop_Add64, mkU64(d1), b1 != 0 ? get_gpr_dw0(b1) :
2513 assign(op1addr, binop(Iop_Add64, mkexpr(d1), b1 != 0 ? get_gpr_dw0(b1) :
2531 assign(op1addr, binop(Iop_Add64, mkexpr(d1), b1 != 0 ? get_gpr_dw0(b1) :
2548 assign(op1addr, binop(Iop_Add64, mkU64(d1), b1 != 0 ? get_gpr_dw0(b1) :
2550 assign(op2addr, binop(Iop_Add64, mkU64(d2), b2 != 0 ? get_gpr_dw0(b2) :
2566 assign(op1addr, binop(Iop_Add64, mkU64(d1), b1 != 0 ? get_gpr_dw0(b1) :
2582 assign(op1addr, binop(Iop_Add64, mkU64(d1), b1 != 0 ? get_gpr_dw0(b1) :
2606 assign(result, binop(Iop_Add32, mkexpr(op1), mkexpr(op2)));
2622 assign(result, binop(Iop_Add64, mkexpr(op1), mkexpr(op2)));
2638 assign(result, binop(Iop_Add64, mkexpr(op1), mkexpr(op2)));
2654 assign(result, binop(Iop_Add32, mkexpr(op2), mkexpr(op3)));
2670 assign(result, binop(Iop_Add64, mkexpr(op2), mkexpr(op3)));
2686 assign(result, binop(Iop_Add32, mkexpr(op1), mkexpr(op2)));
2702 assign(result, binop(Iop_Add32, mkexpr(op1), mkexpr(op2)));
2718 assign(result, binop(Iop_Add64, mkexpr(op1), mkexpr(op2)));
2734 assign(result, binop(Iop_Add64, mkexpr(op1), mkexpr(op2)));
2750 assign(result, binop(Iop_Add32, mkexpr(op1), mkU32((UInt)op2)));
2767 assign(result, binop(Iop_Add64, mkexpr(op1), mkU64((ULong)op2)));
2784 assign(result, binop(Iop_Add32, mkU32((UInt)op2), mkexpr(op3)));
2801 assign(result, binop(Iop_Add64, mkU64((ULong)op2), mkexpr(op3)));
2818 assign(result, binop(Iop_Add32, mkexpr(op1), mkU32((UInt)op2)));
2835 assign(result, binop(Iop_Add64, mkexpr(op1), mkU64((ULong)op2)));
2852 assign(result, binop(Iop_Add32, mkexpr(op1), mkexpr(op2)));
2868 assign(result, binop(Iop_Add32, mkexpr(op1), mkexpr(op2)));
2884 assign(result, binop(Iop_Add32, mkexpr(op1), mkU32((UInt)op2)));
2901 assign(result, binop(Iop_Add64, mkexpr(op1), mkU64((ULong)op2)));
2918 assign(result, binop(Iop_Add32, mkexpr(op2), mkexpr(op3)));
2934 assign(result, binop(Iop_Add32, mkexpr(op2), mkexpr(op3)));
2950 assign(result, binop(Iop_Add32, mkexpr(op1), mkU32((UInt)op2)));
2967 assign(result, binop(Iop_Add32, mkexpr(op1), mkexpr(op2)));
2983 assign(result, binop(Iop_Add64, mkexpr(op1), mkexpr(op2)));
2999 assign(result, binop(Iop_Add64, mkexpr(op1), mkexpr(op2)));
3015 assign(result, binop(Iop_Add32, mkexpr(op2), mkexpr(op3)));
3031 assign(result, binop(Iop_Add64, mkexpr(op2), mkexpr(op3)));
3047 assign(result, binop(Iop_Add32, mkexpr(op1), mkexpr(op2)));
3063 assign(result, binop(Iop_Add32, mkexpr(op1), mkexpr(op2)));
3079 assign(result, binop(Iop_Add64, mkexpr(op1), mkexpr(op2)));
3095 assign(result, binop(Iop_Add64, mkexpr(op1), mkexpr(op2)));
3111 assign(result, binop(Iop_Add32, mkexpr(op1), mkU32(op2)));
3128 assign(result, binop(Iop_Add64, mkexpr(op1), mkU64(op2)));
3145 assign(result, binop(Iop_Add32, mkexpr(op2), mkexpr(op3)));
3161 assign(result, binop(Iop_Add32, mkexpr(op2), mkexpr(op3)));
3178 assign(carry_in, binop(Iop_Shr32, s390_call_calculate_cc(), mkU8(1)));
3179 assign(result, binop(Iop_Add32, binop(Iop_Add32, mkexpr(op1), mkexpr(op2)),
3197 assign(carry_in, unop(Iop_32Uto64, binop(Iop_Shr32, s390_call_calculate_cc(),
3199 assign(result, binop(Iop_Add64, binop(Iop_Add64, mkexpr(op1), mkexpr(op2)),
3217 assign(carry_in, binop(Iop_Shr32, s390_call_calculate_cc(), mkU8(1)));
3218 assign(result, binop(Iop_Add32, binop(Iop_Add32, mkexpr(op1), mkexpr(op2)),
3236 assign(carry_in, unop(Iop_32Uto64, binop(Iop_Shr32, s390_call_calculate_cc(),
3238 assign(result, binop(Iop_Add64, binop(Iop_Add64, mkexpr(op1), mkexpr(op2)),
3255 assign(result, binop(Iop_Add32, mkexpr(op1), mkU32(op2)));
3272 assign(result, binop(Iop_Add64, mkexpr(op1), mkU64(op2)));
3289 assign(result, binop(Iop_Add32, mkU32(op2), mkexpr(op3)));
3306 assign(result, binop(Iop_Add64, mkU64(op2), mkexpr(op3)));
3323 assign(result, binop(Iop_Add32, mkexpr(op1), mkU32(op2)));
3340 assign(result, binop(Iop_Add32, mkexpr(op1), mkU32(op2)));
3355 assign(result, binop(Iop_And32, mkexpr(op1), mkexpr(op2)));
3371 assign(result, binop(Iop_And64, mkexpr(op1), mkexpr(op2)));
3387 assign(result, binop(Iop_And32, mkexpr(op2), mkexpr(op3)));
3403 assign(result, binop(Iop_And64, mkexpr(op2), mkexpr(op3)));
3419 assign(result, binop(Iop_And32, mkexpr(op1), mkexpr(op2)));
3435 assign(result, binop(Iop_And32, mkexpr(op1), mkexpr(op2)));
3451 assign(result, binop(Iop_And64, mkexpr(op1), mkexpr(op2)));
3467 assign(result, binop(Iop_And8, mkexpr(op1), mkU8(op2)));
3483 assign(result, binop(Iop_And8, mkexpr(op1), mkU8(op2)));
3499 assign(result, binop(Iop_And32, mkexpr(op1), mkU32(op2)));
3515 assign(result, binop(Iop_And16, mkexpr(op1), mkU16(op2)));
3531 assign(result, binop(Iop_And16, mkexpr(op1), mkU16(op2)));
3547 assign(result, binop(Iop_And32, mkexpr(op1), mkU32(op2)));
3563 assign(result, binop(Iop_And16, mkexpr(op1), mkU16(op2)));
3579 assign(result, binop(Iop_And16, mkexpr(op1), mkU16(op2)));
3634 if_condition_goto_computed(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
3655 if_condition_goto_computed(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
3668 put_gpr_w1(r1, binop(Iop_Sub32, get_gpr_w1(r1), mkU32(1)));
3670 if_condition_goto_computed(binop(Iop_CmpNE32, get_gpr_w1(r1), mkU32(0)),
3680 put_gpr_dw0(r1, binop(Iop_Sub64, get_gpr_dw0(r1), mkU64(1)));
3682 if_condition_goto_computed(binop(Iop_CmpNE64, get_gpr_dw0(r1), mkU64(0)),
3692 put_gpr_w1(r1, binop(Iop_Sub32, get_gpr_w1(r1), mkU32(1)));
3693 if_condition_goto_computed(binop(Iop_CmpNE32, get_gpr_w1(r1), mkU32(0)),
3702 put_gpr_dw0(r1, binop(Iop_Sub64, get_gpr_dw0(r1), mkU64(1)));
3703 if_condition_goto_computed(binop(Iop_CmpNE64, get_gpr_dw0(r1), mkU64(0)),
3715 put_gpr_w1(r1, binop(Iop_Add32, get_gpr_w1(r1), get_gpr_w1(r3)));
3716 if_condition_goto_computed(binop(Iop_CmpLT32S, mkexpr(value),
3728 put_gpr_dw0(r1, binop(Iop_Add64, get_gpr_dw0(r1), get_gpr_dw0(r3)));
3729 if_condition_goto_computed(binop(Iop_CmpLT64S, mkexpr(value),
3741 put_gpr_w1(r1, binop(Iop_Add32, get_gpr_w1(r1), get_gpr_w1(r3)));
3742 if_condition_goto_computed(binop(Iop_CmpLE32S, get_gpr_w1(r1),
3754 put_gpr_dw0(r1, binop(Iop_Add64, get_gpr_dw0(r1), get_gpr_dw0(r3)));
3755 if_condition_goto_computed(binop(Iop_CmpLE64S, get_gpr_dw0(r1),
3791 if_condition_goto(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
3813 if_condition_goto(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
3826 put_gpr_w1(r1, binop(Iop_Sub32, get_gpr_w1(r1), mkU32(1)));
3827 if_condition_goto(binop(Iop_CmpNE32, get_gpr_w1(r1), mkU32(0)),
3836 put_gpr_dw0(r1, binop(Iop_Sub64, get_gpr_dw0(r1), mkU64(1)));
3837 if_condition_goto(binop(Iop_CmpNE64, get_gpr_dw0(r1), mkU64(0)),
3849 put_gpr_w1(r1, binop(Iop_Add32, get_gpr_w1(r1), get_gpr_w1(r3)));
3850 if_condition_goto(binop(Iop_CmpLT32S, mkexpr(value), get_gpr_w1(r1)),
3862 put_gpr_dw0(r1, binop(Iop_Add64, get_gpr_dw0(r1), get_gpr_dw0(r3)));
3863 if_condition_goto(binop(Iop_CmpLT64S, mkexpr(value), get_gpr_dw0(r1)),
3875 put_gpr_w1(r1, binop(Iop_Add32, get_gpr_w1(r1), get_gpr_w1(r3)));
3876 if_condition_goto(binop(Iop_CmpLE32S, get_gpr_w1(r1), mkexpr(value)),
3888 put_gpr_dw0(r1, binop(Iop_Add64, get_gpr_dw0(r1), get_gpr_dw0(r3)));
3889 if_condition_goto(binop(Iop_CmpLE64S, get_gpr_dw0(r1), mkexpr(value)),
4072 if_condition_goto_computed(binop(Iop_CmpNE32, mkexpr(cond),
4096 if_condition_goto_computed(binop(Iop_CmpNE32, mkexpr(cond),
4121 if_condition_goto(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
4147 if_condition_goto(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
4172 if_condition_goto_computed(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
4196 if_condition_goto_computed(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
4220 if_condition_goto(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
4245 if_condition_goto(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
4719 if_condition_goto_computed(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
4743 if_condition_goto_computed(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
4767 if_condition_goto(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
4792 if_condition_goto(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
4817 if_condition_goto_computed(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
4841 if_condition_goto_computed(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
4865 if_condition_goto(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
4890 if_condition_goto(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
4925 assign(c1, unop(Iop_8Uto32, load(Ity_I8, binop(Iop_Add64, mkexpr(op2addr),
4934 assign(c2, unop(Iop_8Uto32, load(Ity_I8, binop(Iop_Add64, mkexpr(op2addr),
4943 assign(c3, unop(Iop_8Uto32, load(Ity_I8, binop(Iop_Add64, mkexpr(op2addr),
4950 assign(op1, binop(Iop_Or32, binop(Iop_Or32, binop(Iop_Or32, binop(Iop_Shl32,
4951 mkexpr(b0), mkU8(24)), binop(Iop_Shl32, mkexpr(b1), mkU8(16))),
4952 binop(Iop_Shl32, mkexpr(b2), mkU8(8))), mkexpr(b3)));
4953 assign(op2, binop(Iop_Or32, binop(Iop_Or32, binop(Iop_Or32, binop(Iop_Shl32,
4954 mkexpr(c0), mkU8(24)), binop(Iop_Shl32, mkexpr(c1), mkU8(16))),
4955 binop(Iop_Shl32, mkexpr(c2), mkU8(8))), mkexpr(c3)));
4987 assign(c1, unop(Iop_8Uto32, load(Ity_I8, binop(Iop_Add64, mkexpr(op2addr),
4996 assign(c2, unop(Iop_8Uto32, load(Ity_I8, binop(Iop_Add64, mkexpr(op2addr),
5005 assign(c3, unop(Iop_8Uto32, load(Ity_I8, binop(Iop_Add64, mkexpr(op2addr),
5012 assign(op1, binop(Iop_Or32, binop(Iop_Or32, binop(Iop_Or32, binop(Iop_Shl32,
5013 mkexpr(b0), mkU8(24)), binop(Iop_Shl32, mkexpr(b1), mkU8(16))),
5014 binop(Iop_Shl32, mkexpr(b2), mkU8(8))), mkexpr(b3)));
5015 assign(op2, binop(Iop_Or32, binop(Iop_Or32, binop(Iop_Or32, binop(Iop_Shl32,
5016 mkexpr(c0), mkU8(24)), binop(Iop_Shl32, mkexpr(c1), mkU8(16))),
5017 binop(Iop_Shl32, mkexpr(c2), mkU8(8))), mkexpr(c3)));
5049 assign(c1, unop(Iop_8Uto32, load(Ity_I8, binop(Iop_Add64, mkexpr(op2addr),
5058 assign(c2, unop(Iop_8Uto32, load(Ity_I8, binop(Iop_Add64, mkexpr(op2addr),
5067 assign(c3, unop(Iop_8Uto32, load(Ity_I8, binop(Iop_Add64, mkexpr(op2addr),
5074 assign(op1, binop(Iop_Or32, binop(Iop_Or32, binop(Iop_Or32, binop(Iop_Shl32,
5075 mkexpr(b0), mkU8(24)), binop(Iop_Shl32, mkexpr(b1), mkU8(16))),
5076 binop(Iop_Shl32, mkexpr(b2), mkU8(8))), mkexpr(b3)));
5077 assign(op2, binop(Iop_Or32, binop(Iop_Or32, binop(Iop_Or32, binop(Iop_Shl32,
5078 mkexpr(c0), mkU8(24)), binop(Iop_Shl32, mkexpr(c1), mkU8(16))),
5079 binop(Iop_Shl32, mkexpr(c2), mkU8(8))), mkexpr(c3)));
5160 assign(result, binop(Iop_Xor32, mkexpr(op1), mkexpr(op2)));
5180 assign(result, binop(Iop_Xor64, mkexpr(op1), mkexpr(op2)));
5197 assign(result, binop(Iop_Xor32, mkexpr(op2), mkexpr(op3)));
5213 assign(result, binop(Iop_Xor64, mkexpr(op2), mkexpr(op3)));
5229 assign(result, binop(Iop_Xor32, mkexpr(op1), mkexpr(op2)));
5245 assign(result, binop(Iop_Xor32, mkexpr(op1), mkexpr(op2)));
5261 assign(result, binop(Iop_Xor64, mkexpr(op1), mkexpr(op2)));
5277 assign(result, binop(Iop_Xor8, mkexpr(op1), mkU8(op2)));
5293 assign(result, binop(Iop_Xor8, mkexpr(op1), mkU8(op2)));
5309 assign(result, binop(Iop_Xor32, mkexpr(op1), mkU32(op2)));
5325 assign(result, binop(Iop_Xor32, mkexpr(op1), mkU32(op2)));
5372 put_gpr_b5(r1, load(Ity_I8, binop(Iop_Add64, mkexpr(op2addr), mkU64(n))));
5377 put_gpr_b6(r1, load(Ity_I8, binop(Iop_Add64, mkexpr(op2addr), mkU64(n))));
5382 put_gpr_b7(r1, load(Ity_I8, binop(Iop_Add64, mkexpr(op2addr), mkU64(n))));
5407 put_gpr_b5(r1, load(Ity_I8, binop(Iop_Add64, mkexpr(op2addr), mkU64(n))));
5412 put_gpr_b6(r1, load(Ity_I8, binop(Iop_Add64, mkexpr(op2addr), mkU64(n))));
5417 put_gpr_b7(r1, load(Ity_I8, binop(Iop_Add64, mkexpr(op2addr), mkU64(n))));
5442 put_gpr_b1(r1, load(Ity_I8, binop(Iop_Add64, mkexpr(op2addr), mkU64(n))));
5447 put_gpr_b2(r1, load(Ity_I8, binop(Iop_Add64, mkexpr(op2addr), mkU64(n))));
5452 put_gpr_b3(r1, load(Ity_I8, binop(Iop_Add64, mkexpr(op2addr), mkU64(n))));
5658 assign(result, binop(Iop_Add32, mkexpr(op2), mkexpr(op3)));
5677 yield_if(binop(Iop_CmpNE32, mkexpr(old_mem), mkexpr(op2)));
5692 assign(result, binop(Iop_Add64, mkexpr(op2), mkexpr(op3)));
5711 yield_if(binop(Iop_CmpNE64, mkexpr(old_mem), mkexpr(op2)));
5726 assign(result, binop(op, mkexpr(op2), mkexpr(op3)));
5741 yield_if(binop(Iop_CmpNE32, mkexpr(old_mem), mkexpr(op2)));
5756 assign(result, binop(op, mkexpr(op2), mkexpr(op3)));
5771 yield_if(binop(Iop_CmpNE64, mkexpr(old_mem), mkexpr(op2)));
5976 assign(result, binop(Iop_Sub32, mkU32((UInt)op1), mkexpr(op2)));
5993 assign(result, binop(Iop_Sub64, mkU64((ULong)op1), mkexpr(op2)));
6010 assign(result, binop(Iop_Sub64, mkU64((ULong)op1), mkexpr(op2)));
6282 put_gpr_dw0(r1, unop(Iop_32Uto64, binop(Iop_And32, get_gpr_w1(r2),
6291 put_gpr_dw0(r1, unop(Iop_32Uto64, binop(Iop_And32, load(Ity_I32,
6304 assign(result, mkite(binop(Iop_CmpLE32S, mkexpr(op2), mkU32(0)), mkexpr(op2),
6305 binop(Iop_Sub32, mkU32(0), mkexpr(op2))));
6319 assign(result, mkite(binop(Iop_CmpLE64S, mkexpr(op2), mkU64(0)), mkexpr(op2),
6320 binop(Iop_Sub64, mkU64(0), mkexpr(op2))));
6334 assign(result, mkite(binop(Iop_CmpLE64S, mkexpr(op2), mkU64(0)), mkexpr(op2),
6335 binop(Iop_Sub64, mkU64(0), mkexpr(op2))));
6345 next_insn_if(binop(Iop_CmpEQ32, s390_call_calculate_cond(m3), mkU32(0)));
6354 next_insn_if(binop(Iop_CmpEQ32, s390_call_calculate_cond(m3), mkU32(0)));
6382 put_gpr_dw0(r1 + 1, load(Ity_I64, binop(Iop_Add64, mkexpr(op2addr), mkU64(8))
6395 assign(result, mkite(binop(Iop_CmpLT32S, mkexpr(op2), mkU32(0)),
6396 binop(Iop_Sub32, mkU32(0), mkexpr(op2)), mkexpr(op2)));
6410 assign(result, mkite(binop(Iop_CmpLT64S, mkexpr(op2), mkU64(0)),
6411 binop(Iop_Sub64, mkU64(0), mkexpr(op2)), mkexpr(op2)));
6425 assign(result, mkite(binop(Iop_CmpLT64S, mkexpr(op2), mkU64(0)),
6426 binop(Iop_Sub64, mkU64(0), mkexpr(op2)), mkexpr(op2)));
6503 put_gpr_b4(r1, unop(Iop_32to8, binop(Iop_And32, mkexpr(op2), mkU32(255))));
6504 put_gpr_b5(r1, unop(Iop_32to8, binop(Iop_And32, binop(Iop_Shr32, mkexpr(op2),
6506 put_gpr_b6(r1, unop(Iop_32to8, binop(Iop_And32, binop(Iop_Shr32, mkexpr(op2),
6508 put_gpr_b7(r1, unop(Iop_32to8, binop(Iop_And32, binop(Iop_Shr32, mkexpr(op2),
6520 put_gpr_b0(r1, unop(Iop_64to8, binop(Iop_And64, mkexpr(op2), mkU64(255))));
6521 put_gpr_b1(r1, unop(Iop_64to8, binop(Iop_And64, binop(Iop_Shr64, mkexpr(op2),
6523 put_gpr_b2(r1, unop(Iop_64to8, binop(Iop_And64, binop(Iop_Shr64, mkexpr(op2),
6525 put_gpr_b3(r1, unop(Iop_64to8, binop(Iop_And64, binop(Iop_Shr64, mkexpr(op2),
6527 put_gpr_b4(r1, unop(Iop_64to8, binop(Iop_And64, binop(Iop_Shr64, mkexpr(op2),
6529 put_gpr_b5(r1, unop(Iop_64to8, binop(Iop_And64, binop(Iop_Shr64, mkexpr(op2),
6531 put_gpr_b6(r1, unop(Iop_64to8, binop(Iop_And64, binop(Iop_Shr64, mkexpr(op2),
6533 put_gpr_b7(r1, unop(Iop_64to8, binop(Iop_And64, binop(Iop_Shr64, mkexpr(op2),
6588 assign(result, binop(Iop_MullS32, mkexpr(op1), mkexpr(op2)));
6604 assign(result, binop(Iop_MullS32, mkexpr(op1), mkexpr(op2)));
6620 assign(result, binop(Iop_MullS32, mkexpr(op1), mkexpr(op2)));
6636 assign(result, binop(Iop_MullS32, mkexpr(op1), unop(Iop_16Sto32, mkexpr(op2))
6652 assign(result, binop(Iop_MullS32, mkexpr(op1), unop(Iop_16Sto32, mkexpr(op2))
6668 assign(result, binop(Iop_MullS32, mkexpr(op1), unop(Iop_16Sto32,
6684 assign(result, binop(Iop_MullS64, mkexpr(op1), unop(Iop_16Sto64,
6700 assign(result, binop(Iop_MullU32, mkexpr(op1), mkexpr(op2)));
6716 assign(result, binop(Iop_MullU64, mkexpr(op1), mkexpr(op2)));
6732 assign(result, binop(Iop_MullU32, mkexpr(op1), mkexpr(op2)));
6748 assign(result, binop(Iop_MullU64, mkexpr(op1), mkexpr(op2)));
6764 assign(result, binop(Iop_MullS32, mkexpr(op1), mkexpr(op2)));
6779 assign(result, binop(Iop_MullS64, mkexpr(op1), mkexpr(op2)));
6794 assign(result, binop(Iop_MullS64, mkexpr(op1), unop(Iop_32Sto64, mkexpr(op2))
6810 assign(result, binop(Iop_MullS32, mkexpr(op1), mkexpr(op2)));
6825 assign(result, binop(Iop_MullS32, mkexpr(op1), mkexpr(op2)));
6840 assign(result, binop(Iop_MullS64, mkexpr(op1), mkexpr(op2)));
6855 assign(result, binop(Iop_MullS64, mkexpr(op1), unop(Iop_32Sto64, mkexpr(op2))
6871 assign(result, binop(Iop_MullS32, mkexpr(op1), mkU32((UInt)op2)));
6886 assign(result, binop(Iop_MullS64, mkexpr(op1), unop(Iop_32Sto64, mkU32((UInt)
6902 assign(result, binop(Iop_Or32, mkexpr(op1), mkexpr(op2)));
6918 assign(result, binop(Iop_Or64, mkexpr(op1), mkexpr(op2)));
6934 assign(result, binop(Iop_Or32, mkexpr(op2), mkexpr(op3)));
6950 assign(result, binop(Iop_Or64, mkexpr(op2), mkexpr(op3)));
6966 assign(result, binop(Iop_Or32, mkexpr(op1), mkexpr(op2)));
6982 assign(result, binop(Iop_Or32, mkexpr(op1), mkexpr(op2)));
6998 assign(result, binop(Iop_Or64, mkexpr(op1), mkexpr(op2)));
7014 assign(result, binop(Iop_Or8, mkexpr(op1), mkU8(op2)));
7030 assign(result, binop(Iop_Or8, mkexpr(op1), mkU8(op2)));
7046 assign(result, binop(Iop_Or32, mkexpr(op1), mkU32(op2)));
7062 assign(result, binop(Iop_Or16, mkexpr(op1), mkU16(op2)));
7078 assign(result, binop(Iop_Or16, mkexpr(op1), mkU16(op2)));
7094 assign(result, binop(Iop_Or32, mkexpr(op1), mkU32(op2)));
7110 assign(result, binop(Iop_Or16, mkexpr(op1), mkU16(op2)));
7126 assign(result, binop(Iop_Or16, mkexpr(op1), mkU16(op2)));
7156 assign(rm_bits, binop(Iop_And32, get_gpr_w1(0), mkU32(0xf)));
7158 irrm = mkite(binop(Iop_CmpEQ32, s390rm, mkU32(0x1)),
7160 mkite(binop(Iop_CmpEQ32, s390rm, mkU32(0x8)),
7162 mkite(binop(Iop_CmpEQ32, s390rm, mkU32(0x9)),
7164 mkite(binop(Iop_CmpEQ32, s390rm, mkU32(0xa)),
7166 mkite(binop(Iop_CmpEQ32, s390rm, mkU32(0xb)),
7168 mkite(binop(Iop_CmpEQ32, s390rm, mkU32(0xc)),
7171 mkite(binop(Iop_CmpEQ32, s390rm, mkU32(0xd)),
7174 mkite(binop(Iop_CmpEQ32, s390rm, mkU32(0xe)),
7177 mkite(binop(Iop_CmpEQ32, s390rm, mkU32(0xf)),
7254 assign(fn, binop(Iop_And32, binop(Iop_Shr32, mkexpr(gr0), mkU8(8)),
7257 assign(test_bit, binop(Iop_And32, binop(Iop_Shr32, mkexpr(gr0), mkU8(31)),
7270 next_insn_if(binop(Iop_CmpEQ32, mkexpr(test_bit), mkU32(0x1)));
7278 binop(Iop_CmpNE32, mkexpr(ef), mkU32(EmNote_NONE)),
7287 assign(dst1, binop(Iop_F32toD32, irrm, mkexpr(src1)));
7291 next_insn_if(binop(Iop_CmpEQ32, mkexpr(fn), mkU32(S390_PFPO_F32_TO_D32)));
7295 assign(dst2, binop(Iop_F32toD64, irrm, mkexpr(src2)));
7299 next_insn_if(binop(Iop_CmpEQ32, mkexpr(fn), mkU32(S390_PFPO_F32_TO_D64)));
7303 assign(dst3, binop(Iop_F32toD128, irrm, mkexpr(src3)));
7307 next_insn_if(binop(Iop_CmpEQ32, mkexpr(fn), mkU32(S390_PFPO_F32_TO_D128)));
7311 assign(dst4, binop(Iop_F64toD32, irrm, mkexpr(src4)));
7315 next_insn_if(binop(Iop_CmpEQ32, mkexpr(fn), mkU32(S390_PFPO_F64_TO_D32)));
7319 assign(dst5, binop(Iop_F64toD64, irrm, mkexpr(src5)));
7323 next_insn_if(binop(Iop_CmpEQ32, mkexpr(fn), mkU32(S390_PFPO_F64_TO_D64)));
7327 assign(dst6, binop(Iop_F64toD128, irrm, mkexpr(src6)));
7331 next_insn_if(binop(Iop_CmpEQ32, mkexpr(fn), mkU32(S390_PFPO_F64_TO_D128)));
7335 assign(dst7, binop(Iop_F128toD32, irrm, mkexpr(src7)));
7339 next_insn_if(binop(Iop_CmpEQ32, mkexpr(fn), mkU32(S390_PFPO_F128_TO_D32)));
7343 assign(dst8, binop(Iop_F128toD64, irrm, mkexpr(src8)));
7347 next_insn_if(binop(Iop_CmpEQ32, mkexpr(fn), mkU32(S390_PFPO_F128_TO_D64)));
7351 assign(dst9, binop(Iop_F128toD128, irrm, mkexpr(src9)));
7355 next_insn_if(binop(Iop_CmpEQ32, mkexpr(fn), mkU32(S390_PFPO_F128_TO_D128)));
7359 assign(dst10, binop(Iop_D32toF32, irrm, mkexpr(src10)));
7363 next_insn_if(binop(Iop_CmpEQ32, mkexpr(fn), mkU32(S390_PFPO_D32_TO_F32)));
7367 assign(dst11, binop(Iop_D32toF64, irrm, mkexpr(src11)));
7371 next_insn_if(binop(Iop_CmpEQ32, mkexpr(fn), mkU32(S390_PFPO_D32_TO_F64)));
7375 assign(dst12, binop(Iop_D32toF128, irrm, mkexpr(src12)));
7379 next_insn_if(binop(Iop_CmpEQ32, mkexpr(fn), mkU32(S390_PFPO_D32_TO_F128)));
7383 assign(dst13, binop(Iop_D64toF32, irrm, mkexpr(src13)));
7387 next_insn_if(binop(Iop_CmpEQ32, mkexpr(fn), mkU32(S390_PFPO_D64_TO_F32)));
7391 assign(dst14, binop(Iop_D64toF64, irrm, mkexpr(src14)));
7395 next_insn_if(binop(Iop_CmpEQ32, mkexpr(fn), mkU32(S390_PFPO_D64_TO_F64)));
7399 assign(dst15, binop(Iop_D64toF128, irrm, mkexpr(src15)));
7403 next_insn_if(binop(Iop_CmpEQ32, mkexpr(fn), mkU32(S390_PFPO_D64_TO_F128)));
7407 assign(dst16, binop(Iop_D128toF32, irrm, mkexpr(src16)));
7411 next_insn_if(binop(Iop_CmpEQ32, mkexpr(fn), mkU32(S390_PFPO_D128_TO_F32)));
7415 assign(dst17, binop(Iop_D128toF64, irrm, mkexpr(src17)));
7419 next_insn_if(binop(Iop_CmpEQ32, mkexpr(fn), mkU32(S390_PFPO_D128_TO_F64)));
7423 assign(dst18, binop(Iop_D128toF128, irrm, mkexpr(src18)));
7427 next_insn_if(binop(Iop_CmpEQ32, mkexpr(fn), mkU32(S390_PFPO_D128_TO_F128)));
7439 assign(amount, binop(Iop_And64, mkexpr(op2addr), mkU64(31)));
7441 put_gpr_w1(r1, binop(Iop_Or32, binop(Iop_Shl32, mkexpr(op), unop(Iop_64to8,
7442 mkexpr(amount))), binop(Iop_Shr32, mkexpr(op), unop(Iop_64to8,
7443 binop(Iop_Sub64, mkU64(32), mkexpr(amount))))));
7454 assign(amount, binop(Iop_And64, mkexpr(op2addr), mkU64(63)));
7456 put_gpr_dw0(r1, binop(Iop_Or64, binop(Iop_Shl64, mkexpr(op), unop(Iop_64to8,
7457 mkexpr(amount))), binop(Iop_Shr64, mkexpr(op), unop(Iop_64to8,
7458 binop(Iop_Sub64, mkU64(64), mkexpr(amount))))));
7479 assign(op2, rot == 0 ? get_gpr_dw0(r2) : binop(Iop_Or64, binop(Iop_Shl64,
7480 get_gpr_dw0(r2), mkU8(rot)), binop(Iop_Shr64, get_gpr_dw0(r2),
7491 assign(result, binop(Iop_And64, binop(Iop_And64, get_gpr_dw0(r1), mkexpr(op2)
7494 put_gpr_dw0(r1, binop(Iop_Or64, binop(Iop_And64, get_gpr_dw0(r1),
7518 assign(op2, rot == 0 ? get_gpr_dw0(r2) : binop(Iop_Or64, binop(Iop_Shl64,
7519 get_gpr_dw0(r2), mkU8(rot)), binop(Iop_Shr64, get_gpr_dw0(r2),
7530 assign(result, binop(Iop_And64, binop(Iop_Xor64, get_gpr_dw0(r1), mkexpr(op2)
7533 put_gpr_dw0(r1, binop(Iop_Or64, binop(Iop_And64, get_gpr_dw0(r1),
7557 assign(op2, rot == 0 ? get_gpr_dw0(r2) : binop(Iop_Or64, binop(Iop_Shl64,
7558 get_gpr_dw0(r2), mkU8(rot)), binop(Iop_Shr64, get_gpr_dw0(r2),
7569 assign(result, binop(Iop_And64, binop(Iop_Or64, get_gpr_dw0(r1), mkexpr(op2)
7572 put_gpr_dw0(r1, binop(Iop_Or64, binop(Iop_And64, get_gpr_dw0(r1),
7596 assign(op2, rot == 0 ? get_gpr_dw0(r2) : binop(Iop_Or64, binop(Iop_Shl64,
7597 get_gpr_dw0(r2), mkU8(rot)), binop(Iop_Shr64, get_gpr_dw0(r2),
7609 put_gpr_dw0(r1, binop(Iop_Or64, binop(Iop_And64, get_gpr_dw0(r1),
7610 mkU64(maskc)), binop(Iop_And64, mkexpr(op2), mkU64(mask))));
7612 put_gpr_dw0(r1, binop(Iop_And64, mkexpr(op2), mkU64(mask)));
7642 assign(op, binop(Iop_Or64, binop(Iop_Shl64, mkexpr(p1), mkU8(32)), mkexpr(p2)
7645 assign(shift_amount, binop(Iop_And64, mkexpr(op2addr), mkU64(63)));
7646 assign(result, binop(Iop_Or64, binop(Iop_And64, binop(Iop_Shl64, mkexpr(op),
7648 binop(Iop_And64, mkexpr(op), mkU64(sign_mask))));
7665 assign(result, binop(Iop_Shl64, binop(Iop_Or64, binop(Iop_Shl64, mkexpr(p1),
7666 mkU8(32)), mkexpr(p2)), unop(Iop_64to8, binop(Iop_And64,
7686 assign(shift_amount, binop(Iop_And64, mkexpr(op2addr), mkU64(63)));
7687 assign(result, binop(Iop_Or32, binop(Iop_And32, binop(Iop_Shl32, mkexpr(uop),
7689 binop(Iop_And32, mkexpr(uop), mkU32(sign_mask))));
7708 assign(shift_amount, binop(Iop_And64, mkexpr(op2addr), mkU64(63)));
7709 assign(result, binop(Iop_Or32, binop(Iop_And32, binop(Iop_Shl32, mkexpr(uop),
7711 binop(Iop_And32, mkexpr(uop), mkU32(sign_mask))));
7730 assign(shift_amount, binop(Iop_And64, mkexpr(op2addr), mkU64(63)));
7731 assign(result, binop(Iop_Or64, binop(Iop_And64, binop(Iop_Shl64, mkexpr(uop),
7733 binop(Iop_And64, mkexpr(uop), mkU64(sign_mask))));
7743 put_gpr_w1(r1, binop(Iop_Shl32, get_gpr_w1(r1), unop(Iop_64to8,
7744 binop(Iop_And64, mkexpr(op2addr), mkU64(63)))));
7752 put_gpr_w1(r1, binop(Iop_Shl32, get_gpr_w1(r3), unop(Iop_64to8,
7753 binop(Iop_And64, mkexpr(op2addr), mkU64(63)))));
7761 put_gpr_dw0(r1, binop(Iop_Shl64, get_gpr_dw0(r3), unop(Iop_64to8,
7762 binop(Iop_And64, mkexpr(op2addr), mkU64(63)))));
7776 assign(result, binop(Iop_Sar64, binop(Iop_Or64, binop(Iop_Shl64, mkexpr(p1),
7777 mkU8(32)), mkexpr(p2)), unop(Iop_64to8, binop(Iop_And64,
7795 assign(result, binop(Iop_Shr64, binop(Iop_Or64, binop(Iop_Shl64, mkexpr(p1),
7796 mkU8(32)), mkexpr(p2)), unop(Iop_64to8, binop(Iop_And64,
7811 assign(result, binop(Iop_Sar32, mkexpr(op), unop(Iop_64to8, binop(Iop_And64,
7826 assign(result, binop(Iop_Sar32, mkexpr(op), unop(Iop_64to8, binop(Iop_And64,
7841 assign(result, binop(Iop_Sar64, mkexpr(op), unop(Iop_64to8, binop(Iop_And64,
7855 put_gpr_w1(r1, binop(Iop_Shr32, mkexpr(op), unop(Iop_64to8, binop(Iop_And64,
7867 put_gpr_w1(r1, binop(Iop_Shr32, mkexpr(op), unop(Iop_64to8, binop(Iop_And64,
7879 put_gpr_dw0(r1, binop(Iop_Shr64, mkexpr(op), unop(Iop_64to8, binop(Iop_And64,
7964 store(binop(Iop_Add64, mkexpr(op2addr), mkU64(n)), get_gpr_b5(r1));
7968 store(binop(Iop_Add64, mkexpr(op2addr), mkU64(n)), get_gpr_b6(r1));
7972 store(binop(Iop_Add64, mkexpr(op2addr), mkU64(n)), get_gpr_b7(r1));
7991 store(binop(Iop_Add64, mkexpr(op2addr), mkU64(n)), get_gpr_b5(r1));
7995 store(binop(Iop_Add64, mkexpr(op2addr), mkU64(n)), get_gpr_b6(r1));
7999 store(binop(Iop_Add64, mkexpr(op2addr), mkU64(n)), get_gpr_b7(r1));
8018 store(binop(Iop_Add64, mkexpr(op2addr), mkU64(n)), get_gpr_b1(r1));
8022 store(binop(Iop_Add64, mkexpr(op2addr), mkU64(n)), get_gpr_b2(r1));
8026 store(binop(Iop_Add64, mkexpr(op2addr), mkU64(n)), get_gpr_b3(r1));
8095 store(binop(Iop_Add64, mkexpr(op2addr), mkU64(8)), get_gpr_dw0(r1 + 1));
8104 store(binop(Iop_Add64, mkexpr(op2addr), mkU64(1)), get_gpr_b6(r1));
8113 store(binop(Iop_Add64, mkexpr(op2addr), mkU64(1)), get_gpr_b6(r1));
8114 store(binop(Iop_Add64, mkexpr(op2addr), mkU64(2)), get_gpr_b5(r1));
8115 store(binop(Iop_Add64, mkexpr(op2addr), mkU64(3)), get_gpr_b4(r1));
8124 store(binop(Iop_Add64, mkexpr(op2addr), mkU64(1)), get_gpr_b6(r1));
8125 store(binop(Iop_Add64, mkexpr(op2addr), mkU64(2)), get_gpr_b5(r1));
8126 store(binop(Iop_Add64, mkexpr(op2addr), mkU64(3)), get_gpr_b4(r1));
8127 store(binop(Iop_Add64, mkexpr(op2addr), mkU64(4)), get_gpr_b3(r1));
8128 store(binop(Iop_Add64, mkexpr(op2addr), mkU64(5)), get_gpr_b2(r1));
8129 store(binop(Iop_Add64, mkexpr(op2addr), mkU64(6)), get_gpr_b1(r1));
8130 store(binop(Iop_Add64, mkexpr(op2addr), mkU64(7)), get_gpr_b0(r1));
8144 assign(result, binop(Iop_Sub32, mkexpr(op1), mkexpr(op2)));
8160 assign(result, binop(Iop_Sub64, mkexpr(op1), mkexpr(op2)));
8176 assign(result, binop(Iop_Sub64, mkexpr(op1), mkexpr(op2)));
8192 assign(result, binop(Iop_Sub32, mkexpr(op2), mkexpr(op3)));
8208 assign(result, binop(Iop_Sub64, mkexpr(op2), mkexpr(op3)));
8224 assign(result, binop(Iop_Sub32, mkexpr(op1), mkexpr(op2)));
8240 assign(result, binop(Iop_Sub32, mkexpr(op1), mkexpr(op2)));
8256 assign(result, binop(Iop_Sub64, mkexpr(op1), mkexpr(op2)));
8272 assign(result, binop(Iop_Sub64, mkexpr(op1), mkexpr(op2)));
8288 assign(result, binop(Iop_Sub32, mkexpr(op1), mkexpr(op2)));
8304 assign(result, binop(Iop_Sub32, mkexpr(op1), mkexpr(op2)));
8320 assign(result, binop(Iop_Sub32, mkexpr(op2), mkexpr(op3)));
8336 assign(result, binop(Iop_Sub32, mkexpr(op2), mkexpr(op3)));
8352 assign(result, binop(Iop_Sub32, mkexpr(op1), mkexpr(op2)));
8368 assign(result, binop(Iop_Sub64, mkexpr(op1), mkexpr(op2)));
8384 assign(result, binop(Iop_Sub64, mkexpr(op1), mkexpr(op2)));
8400 assign(result, binop(Iop_Sub32, mkexpr(op2), mkexpr(op3)));
8416 assign(result, binop(Iop_Sub64, mkexpr(op2), mkexpr(op3)));
8432 assign(result, binop(Iop_Sub32, mkexpr(op1), mkexpr(op2)));
8448 assign(result, binop(Iop_Sub32, mkexpr(op1), mkexpr(op2)));
8464 assign(result, binop(Iop_Sub64, mkexpr(op1), mkexpr(op2)));
8480 assign(result, binop(Iop_Sub64, mkexpr(op1), mkexpr(op2)));
8496 assign(result, binop(Iop_Sub32, mkexpr(op1), mkU32(op2)));
8513 assign(result, binop(Iop_Sub64, mkexpr(op1), mkU64(op2)));
8530 assign(result, binop(Iop_Sub32, mkexpr(op2), mkexpr(op3)));
8546 assign(result, binop(Iop_Sub32, mkexpr(op2), mkexpr(op3)));
8563 binop(Iop_Sub32, mkU32(1), binop(Iop_Shr32,
8565 assign(result, binop(Iop_Sub32, binop(Iop_Sub32, mkexpr(op1), mkexpr(op2)),
8583 assign(borrow_in, unop(Iop_32Uto64, binop(Iop_Sub32, mkU32(1),
8584 binop(Iop_Shr32, s390_call_calculate_cc(), mkU8(1)))));
8585 assign(result, binop(Iop_Sub64, binop(Iop_Sub64, mkexpr(op1), mkexpr(op2)),
8603 assign(borrow_in, binop(Iop_Sub32, mkU32(1), binop(Iop_Shr32,
8605 assign(result, binop(Iop_Sub32, binop(Iop_Sub32, mkexpr(op1), mkexpr(op2)),
8623 assign(borrow_in, unop(Iop_32Uto64, binop(Iop_Sub32, mkU32(1),
8624 binop(Iop_Shr32, s390_call_calculate_cc(), mkU8(1)))));
8625 assign(result, binop(Iop_Sub64, binop(Iop_Sub64, mkexpr(op1), mkexpr(op2)),
8838 put_fpc_w0(binop(Iop_Or32,
8839 binop(Iop_And32, get_fpc_w0(), mkU32(~fpc_mask)),
8840 binop(Iop_And32, unop(Iop_64to32, mkexpr(op2addr)),
8853 put_fpc_w0(binop(Iop_Or32,
8854 binop(Iop_And32, get_fpc_w0(), mkU32(~fpc_mask)),
8855 binop(Iop_And32, unop(Iop_64to32, mkexpr(op2addr)),
8889 put_fpc_w0(binop(Iop_Or32, binop(Iop_And32, get_fpc_w0(), mkU32(~fpc_mask)),
8890 binop(Iop_Shl32, binop(Iop_And32,
9028 put_fpr_w0(r1, binop(Iop_I32StoF32, mkexpr(encode_bfp_rounding_mode(m3)),
9057 put_fpr_w0(r1, binop(Iop_I64StoF32, mkexpr(encode_bfp_rounding_mode(m3)),
9074 put_fpr_dw0(r1, binop(Iop_I64StoF64, mkexpr(encode_bfp_rounding_mode(m3)),
9090 put_fpr_w0(r1, binop(Iop_I32UtoF32, mkexpr(encode_bfp_rounding_mode(m3)),
9121 put_fpr_w0(r1, binop(Iop_I64UtoF32, mkexpr(encode_bfp_rounding_mode(m3)),
9137 put_fpr_dw0(r1, binop(Iop_I64UtoF64,
9156 assign(result, binop(Iop_F32toI32U, mkexpr(rounding_mode),
9176 assign(result, binop(Iop_F64toI32U, mkexpr(rounding_mode),
9196 assign(result, binop(Iop_F32toI64U, mkexpr(rounding_mode),
9216 assign(result, binop(Iop_F64toI64U, mkexpr(rounding_mode),
9233 assign(result, binop(Iop_F32toI32S, mkexpr(rounding_mode),
9250 assign(result, binop(Iop_F64toI32S, mkexpr(rounding_mode),
9267 assign(result, binop(Iop_F32toI64S, mkexpr(rounding_mode),
9284 assign(result, binop(Iop_F64toI64S, mkexpr(rounding_mode),
9441 put_fpr_w0(r1, binop(Iop_F64toF32, mkexpr(encode_bfp_rounding_mode(m3)),
9653 assign(cc_vex, binop(Iop_CmpD64, mkexpr(op1), mkexpr(op2)));
9671 assign(cc_vex, binop(Iop_CmpD128, mkexpr(op1), mkexpr(op2)));
9732 put_dpr_dw0(r1, binop(Iop_I64StoD64, mkexpr(encode_dfp_rounding_mode(m3)),
9807 put_dpr_dw0(r1, binop(Iop_I64UtoD64,
9849 assign(result, binop(Iop_D64toI32S, mkexpr(rounding_mode),
9873 assign(result, binop(Iop_D128toI32S, mkexpr(rounding_mode),
9901 put_gpr_dw0(r1, binop(Iop_D64toI64S, mkexpr(rounding_mode), mkexpr(op)));
9924 put_gpr_dw0(r1, binop(Iop_D128toI64S, mkexpr(rounding_mode), mkexpr(op)));
9943 assign(cc_vex, binop(Iop_CmpExpD64, mkexpr(op1), mkexpr(op2)));
9964 assign(cc_vex, binop(Iop_CmpExpD128, mkexpr(op1), mkexpr(op2)));
9987 assign(result, binop(Iop_D64toI32U, mkexpr(rounding_mode),
10011 assign(result, binop(Iop_D128toI32U, mkexpr(rounding_mode),
10036 assign(result, binop(Iop_D64toI64U, mkexpr(rounding_mode),
10060 assign(result, binop(Iop_D128toI64U, mkexpr(rounding_mode),
10178 assign(result, binop(Iop_InsertExpD64, mkexpr(op1), mkexpr(op2)));
10196 assign(result, binop(Iop_InsertExpD128, mkexpr(op1), mkexpr(op2)));
10242 assign(result, binop(Iop_D128toD64, mkexpr(encode_dfp_rounding_mode(m3)),
10265 put_dpr_w0(r1, binop(Iop_D64toD32, mkexpr(encode_dfp_rounding_mode(m3)),
10523 put_dpr_dw0(r1, binop(Iop_ShlD64, mkexpr(op),
10524 unop(Iop_64to8, binop(Iop_And64, mkexpr(op2addr),
10539 put_dpr_pair(r1, binop(Iop_ShlD128, mkexpr(op),
10540 unop(Iop_64to8, binop(Iop_And64, mkexpr(op2addr),
10555 put_dpr_dw0(r1, binop(Iop_ShrD64, mkexpr(op),
10556 unop(Iop_64to8, binop(Iop_And64, mkexpr(op2addr),
10571 put_dpr_pair(r1, binop(Iop_ShrD128, mkexpr(op),
10572 unop(Iop_64to8, binop(Iop_And64, mkexpr(op2addr),
10696 assign(len1, binop(Iop_And32, mkexpr(r1p1), mkU32(0x00ffffff)));
10699 assign(len2, binop(Iop_And32, mkexpr(r2p1), mkU32(0x00ffffff)));
10704 next_insn_if(binop(Iop_CmpEQ32, binop(Iop_Or32, mkexpr(len1),
10713 mkite(binop(Iop_CmpEQ32, mkexpr(len1), mkU32(0)),
10716 mkite(binop(Iop_CmpEQ32, mkexpr(len1), mkU32(0)),
10720 mkite(binop(Iop_CmpEQ32, mkexpr(len2), mkU32(0)),
10723 mkite(binop(Iop_CmpEQ32, mkexpr(len2), mkU32(0)),
10728 next_insn_if(binop(Iop_CmpNE8, mkexpr(single1), mkexpr(single2)));
10732 mkite(binop(Iop_CmpEQ32, mkexpr(len1), mkU32(0)),
10734 binop(Iop_Add64, mkexpr(addr1), mkU64(1))));
10738 mkite(binop(Iop_CmpEQ32, mkexpr(len1), mkU32(0)),
10739 binop(Iop_And32, mkexpr(r1p1), mkU32(0xFF000000u)),
10740 binop(Iop_Sub32, mkexpr(r1p1), mkU32(1))));
10744 mkite(binop(Iop_CmpEQ32, mkexpr(len2), mkU32(0)),
10746 binop(Iop_Add64, mkexpr(addr2), mkU64(1))));
10750 mkite(binop(Iop_CmpEQ32, mkexpr(len2), mkU32(0)),
10751 binop(Iop_And32, mkexpr(r2p1), mkU32(0xFF000000u)),
10752 binop(Iop_Sub32, mkexpr(r2p1), mkU32(1))));
10780 next_insn_if(binop(Iop_CmpEQ64,binop(Iop_Or64, mkexpr(len1),
10787 mkite(binop(Iop_CmpEQ64, mkexpr(len1), mkU64(0)),
10792 mkite(binop(Iop_CmpEQ64, mkexpr(len3), mkU64(0)),
10796 mkite(binop(Iop_CmpEQ64, mkexpr(len1), mkU64(0)),
10801 mkite(binop(Iop_CmpEQ64, mkexpr(len3), mkU64(0)),
10807 next_insn_if(binop(Iop_CmpNE8, mkexpr(single1), mkexpr(single3)));
10811 mkite(binop(Iop_CmpEQ64, mkexpr(len1), mkU64(0)),
10813 binop(Iop_Add64, mkexpr(addr1), mkU64(1))));
10816 mkite(binop(Iop_CmpEQ64, mkexpr(len1), mkU64(0)),
10817 mkU64(0), binop(Iop_Sub64, mkexpr(len1), mkU64(1))));
10820 mkite(binop(Iop_CmpEQ64, mkexpr(len3), mkU64(0)),
10822 binop(Iop_Add64, mkexpr(addr3), mkU64(1))));
10825 mkite(binop(Iop_CmpEQ64, mkexpr(len3), mkU64(0)),
10826 mkU64(0), binop(Iop_Sub64, mkexpr(len3), mkU64(1))));
10865 assign(current1, load(Ity_I8, binop(Iop_Add64, mkexpr(start1),
10867 assign(current2, load(Ity_I8, binop(Iop_Add64, mkexpr(start2),
10873 next_insn_if(binop(Iop_CmpNE8, mkexpr(current1), mkexpr(current2)));
10876 put_counter_dw0(binop(Iop_Add64, mkexpr(counter), mkU64(1)));
10877 iterate_if(binop(Iop_CmpNE64, mkexpr(counter), mkexpr(length)));
10888 store(binop(Iop_Add64, mkexpr(start1), mkexpr(counter)),
10889 load(Ity_I8, binop(Iop_Add64, mkexpr(start2), mkexpr(counter))));
10892 put_counter_dw0(binop(Iop_Add64, mkexpr(counter), mkU64(1)));
10893 iterate_if(binop
10907 assign(op, load(Ity_I8, binop(Iop_Add64, mkexpr(start1), mkexpr(counter))));
10909 assign(result, binop(Iop_Add64, unop(Iop_8Uto64, mkexpr(op)), mkexpr(start2)));
10912 store(binop(Iop_Add64, mkexpr(start1), mkexpr(counter)), mkexpr(op1));
10914 put_counter_dw0(binop(Iop_Add64, mkexpr(counter), mkU64(1)));
10915 iterate_if(binop(Iop_CmpNE64, mkexpr(counter), mkexpr(length)));
10949 assign(cond, binop(Iop_CmpNE64, mkexpr(torun), mkU64(last_execute_target)));
10963 assign(start1, binop(Iop_Add64, mkU64(ss.dec.d1),
10965 assign(start2, binop(Iop_Add64, mkU64(ss.dec.d2),
10967 assign(len, unop(lensize == 64 ? Iop_8Uto64 : Iop_8Uto32, binop(Iop_Or8,
11049 assign(torun, binop(Iop_Or64, load(Ity_I64, mkexpr(addr2)),
11050 binop(Iop_Shl64, mkexpr(orperand), mkU8(48))));
11053 assign(cond, binop(Iop_CmpNE64, mkexpr(torun),
11096 put_gpr_b4(r1, unop(Iop_32to8, binop(Iop_Or32, mkU32(0 /* program mask */),
11097 binop(Iop_Shl32, s390_call_calculate_cc(), mkU8(4)))));
11120 put_gpr_dw0(r2, binop(Iop_Sub64, mkexpr(address), mkexpr(counter)));
11121 next_insn_if(binop(Iop_CmpEQ64, mkexpr(address), mkexpr(next)));
11129 next_insn_if(binop(Iop_CmpEQ8, mkexpr(delim), mkexpr(byte)));
11132 put_counter_dw0(binop(Iop_Add64, mkexpr(counter), mkU64(1)));
11134 put_gpr_dw0(r2, binop(Iop_Add64, mkexpr(address), mkU64(1)));
11161 put_gpr_dw0(r1, binop(Iop_Sub64, mkexpr(address1), mkexpr(counter)));
11162 put_gpr_dw0(r2, binop(Iop_Sub64, mkexpr(address2), mkexpr(counter)));
11163 next_insn_if(binop(Iop_CmpEQ8, mkU8(0),
11164 binop(Iop_Or8,
11165 binop(Iop_Xor8, mkexpr(byte1), mkexpr(end)),
11166 binop(Iop_Xor8, mkexpr(byte2), mkexpr(end)))));
11173 next_insn_if(binop(Iop_CmpEQ8, mkexpr(end), mkexpr(byte1)));
11177 next_insn_if(binop(Iop_CmpEQ8, mkexpr(end), mkexpr(byte2)));
11181 next_insn_if(binop(Iop_CmpLT32U, unop(Iop_8Uto32, mkexpr(byte1)),
11186 next_insn_if(binop(Iop_CmpLT32U, unop(Iop_8Uto32, mkexpr(byte2)),
11190 put_counter_dw0(binop(Iop_Add64, mkexpr(counter), mkU64(1)));
11191 put_gpr_dw0(r1, binop(Iop_Add64, get_gpr_dw0(r1), mkU64(1)));
11192 put_gpr_dw0(r2, binop(Iop_Add64, get_gpr_dw0(r2), mkU64(1)));
11213 assign(addr, binop(Iop_Add64, mkexpr(old), mkU64(4)));
11248 assign(addr, binop(Iop_Add64, mkexpr(old), mkU64(4)));
11269 assign(addr, binop(Iop_Add64, mkexpr(old), mkU64(8)));
11290 assign(addr, binop(Iop_Add64, mkexpr(old), mkU64(4)));
11325 assign(addr, binop(Iop_Add64, mkexpr(old), mkU64(4)));
11346 assign(addr, binop(Iop_Add64, mkexpr(old), mkU64(8)));
11364 assign(addr1, binop(Iop_Add64, mkexpr(start1),
11368 assign(old2, load(Ity_I8, binop(Iop_Add64, mkexpr(start2),
11370 assign(new1, binop(op, mkexpr(old1), mkexpr(old2)));
11375 mkite(binop(Iop_CmpEQ64, mkexpr(start1), mkexpr(start2)),
11379 put_counter_w1(binop(Iop_Or32, unop(Iop_8Uto32, mkexpr(new1)),
11383 put_counter_w0(binop(Iop_Add32, mkexpr(counter), mkU32(1)));
11384 iterate_if(binop(Iop_CmpNE32, mkexpr(counter), mkexpr(length)));
11409 binop(Iop_Add64, mkU64(d), b != 0 ? get_gpr_dw0(b) : mkU64(0)));
11415 store(binop(Iop_Add64, mkexpr(start), mkU64(i)), mkU8(0));
11420 assign(addr, binop(Iop_Add64, mkexpr(start),
11426 put_counter_w0(binop(Iop_Add32, mkexpr(counter), mkU32(1)));
11427 iterate_if(binop(Iop_CmpNE32, mkexpr(counter), mkU32(length)));
11488 assign(len1, binop(Iop_And32, mkexpr(r1p1), mkU32(0x00ffffff)));
11491 assign(len2, binop(Iop_And32, mkexpr(r2p1), mkU32(0x00ffffff)));
11496 next_insn_if(binop(Iop_CmpEQ32, mkexpr(len1), mkU32(0)));
11503 binop(Iop_CmpLT64U, mkexpr(addr2), mkexpr(addr1))));
11506 binop(Iop_CmpLT64U, mkexpr(addr1),
11507 binop(Iop_Add64, mkexpr(addr2),
11511 binop(Iop_CmpLT64U,
11513 binop(Iop_Add64, mkexpr(addr2),
11516 next_insn_if(binop(Iop_CmpEQ32,
11517 binop(Iop_And32,
11518 binop(Iop_And32, mkexpr(cond1), mkexpr(cond2)),
11525 mkite(binop(Iop_CmpEQ32, mkexpr(len2), mkU32(0)),
11528 mkite(binop(Iop_CmpEQ32, mkexpr(len2), mkU32(0)),
11534 put_gpr_dw0(r1, binop(Iop_Add64, mkexpr(addr1), mkU64(1)));
11535 put_gpr_w1(r1 + 1, binop(Iop_Sub32, mkexpr(r1p1), mkU32(1)));
11539 mkite(binop(Iop_CmpEQ32, mkexpr(len2), mkU32(0)),
11541 binop(Iop_Add64, mkexpr(addr2), mkU64(1))));
11545 mkite(binop(Iop_CmpEQ32, mkexpr(len2), mkU32(0)),
11546 binop(Iop_And32, mkexpr(r2p1), mkU32(0xFF000000u)),
11547 binop(Iop_Sub32, mkexpr(r2p1), mkU32(1))));
11550 iterate_if(binop(Iop_CmpNE32, mkexpr(len1), mkU32(1)));
11575 next_insn_if(binop(Iop_CmpEQ64,mkexpr(len1), mkU64(0)));
11581 mkite(binop(Iop_CmpEQ64, mkexpr(len3), mkU64(0)),
11585 mkite(binop(Iop_CmpEQ64, mkexpr(len3), mkU64(0)),
11590 put_gpr_dw0(r1, binop(Iop_Add64, mkexpr(addr1), mkU64(1)));
11592 put_gpr_dw0(r1 + 1, binop(Iop_Sub64, mkexpr(len1), mkU64(1)));
11595 mkite(binop(Iop_CmpEQ64, mkexpr(len3), mkU64(0)),
11597 binop(Iop_Add64, mkexpr(addr3), mkU64(1))));
11600 mkite(binop(Iop_CmpEQ64, mkexpr(len3), mkU64(0)),
11601 mkU64(0), binop(Iop_Sub64, mkexpr(len3), mkU64(1))));
11604 iterate_if(binop(Iop_CmpNE64, mkexpr(len1), mkU64(1)));
11622 assign(byte, load(Ity_I8, binop(Iop_Add64, mkexpr(addr2),mkexpr(counter))));
11623 store(binop(Iop_Add64,mkexpr(addr1),mkexpr(counter)), mkexpr(byte));
11626 put_counter_dw0(binop(Iop_Add64, mkexpr(counter), mkU64(1)));
11627 iterate_if(binop(Iop_CmpNE8, mkexpr(end), mkexpr(byte)));
11631 put_gpr_dw0(r1, binop(Iop_Add64, mkexpr(addr1), mkexpr(counter)));
11643 assign(op1, binop(Iop_32HLto64,
11646 assign(result, binop(op, mkexpr(op1), mkexpr(op2)));
11657 assign(op1, binop(Iop_64HLto128,
11660 assign(result, binop(op, mkexpr(op1), mkexpr(op2)));
11672 assign(result, binop(op, mkexpr(op1), mkexpr(op2)));
11811 assign(addr, binop(Iop_Add64, mkexpr(old), mkU64(4)));
11846 assign(addr, binop(Iop_Add64, mkexpr(old), mkU64(4)));
11891 assign(result, binop(Iop_Sub32, mkexpr(op1), mkexpr(old_mem)));
11896 assign(nequal, binop(Iop_CmpNE32, s390_call_calculate_cc(), mkU32(0)));
11939 assign(result, binop(Iop_Sub64, mkexpr(op1), mkexpr(old_mem)));
11944 assign(nequal, binop(Iop_CmpNE32, s390_call_calculate_cc(), mkU32(0)));
11980 binop(Iop_CmpNE32,
11981 binop(Iop_Or32,
11982 binop(Iop_Xor32, mkexpr(op1_high), mkexpr(old_mem_high)),
11983 binop(Iop_Xor32, mkexpr(op1_low), mkexpr(old_mem_low))),
11990 assign(nequal, binop(Iop_CmpNE32, s390_call_calculate_cc(), mkU32(0)));
12040 binop(Iop_CmpNE64,
12041 binop(Iop_Or64,
12042 binop(Iop_Xor64, mkexpr(op1_high), mkexpr(old_mem_high)),
12043 binop(Iop_Xor64, mkexpr(op1_low), mkexpr(old_mem_low))),
12050 assign(nequal, binop(Iop_CmpNE32, s390_call_calculate_cc(), mkU32(0)));
12090 assign(cc_vex, binop(Iop_CmpF32, mkexpr(op1), mkexpr(op2)));
12108 assign(cc_vex, binop(Iop_CmpF64, mkexpr(op1), mkexpr(op2)));
12126 assign(cc_vex, binop(Iop_CmpF128, mkexpr(op1), mkexpr(op2)));
12144 assign(cc_vex, binop(Iop_CmpF32, mkexpr(op1), mkexpr(op2)));
12162 assign(cc_vex, binop(Iop_CmpF64, mkexpr(op1), mkexpr(op2)));
12234 assign(result, binop(Iop_F128toI32S, mkexpr(rounding_mode),
12254 assign(result, binop(Iop_F128toI32U, mkexpr(rounding_mode),
12272 assign(result, binop(Iop_F128toI64S, mkexpr(rounding_mode),
12292 assign(result, binop(Iop_F128toI64U, mkexpr(rounding_mode),
12468 assign(result, binop(Iop_F128toF64, mkexpr(encode_bfp_rounding_mode(m3)),
12485 assign(result, binop(Iop_F128toF32, mkexpr(encode_bfp_rounding_mode(m3)),
12607 assign(result, binop(Iop_SqrtF32, mkexpr(rounding_mode), get_fpr_w0(r2)));
12619 assign(result, binop(Iop_SqrtF64, mkexpr(rounding_mode), get_fpr_dw0(r2)));
12631 assign(result, binop(Iop_SqrtF128, mkexpr(rounding_mode),
12645 put_fpr_w0(r1, binop(Iop_SqrtF32, mkexpr(rounding_mode), mkexpr(op)));
12657 put_fpr_dw0(r1, binop(Iop_SqrtF64, mkexpr(rounding_mode), mkexpr(op)));
12772 assign(sign, binop(Iop_And64, unop(Iop_ReinterpF64asI64, get_fpr_dw0(r3)),
12774 assign(value, binop(Iop_And64, unop(Iop_ReinterpF64asI64, get_fpr_dw0(r2)),
12776 put_fpr_dw0(r1, unop(Iop_ReinterpI64asF64, binop(Iop_Or64, mkexpr(value),
12863 assign(not_zero, binop(Iop_Or64, mkexpr(input), mkU64(1)));
12867 assign(num, mkite(binop(Iop_CmpEQ64, mkexpr(input), mkU64(0)),
12882 assign(shift_amount, unop(Iop_64to8, binop(Iop_Add64, mkexpr(num),
12886 mkite(binop(Iop_CmpLE64U, mkexpr(input), mkU64(1)),
12889 binop(Iop_Shr64,
12890 binop(Iop_Shl64, mkexpr(input),
13014 next_insn_if(binop(Iop_CmpEQ64, mkexpr(len), mkU64(0)));
13018 assign(inc, mkite(binop(Iop_CmpLT64U, mkexpr(len), mkU64(4)),
13026 assign(mask, mkite(binop(Iop_CmpLT64U, mkexpr(len), mkU64(4)),
13029 binop(Iop_Shl32, mkU32(0xffffffff),
13031 binop(Iop_Sub32, mkU32(32),
13032 binop(Iop_Shl32,
13034 binop(Iop_And64,
13040 assign(newop, binop(Iop_And32, mkexpr(op), mkexpr(mask)));
13041 assign(result, binop(Iop_Add32, mkexpr(newop), mkexpr(oldval)));
13044 assign(result1, mkite(binop(Iop_CmpLT32U, mkexpr(result), mkexpr(newop)),
13045 binop(Iop_Add32, mkexpr(result), mkU32(1)),
13049 put_gpr_dw0(r2, binop(Iop_Add64, mkexpr(addr), mkexpr(inc)));
13050 put_gpr_dw0(r2+1, binop(Iop_Sub64, mkexpr(len), mkexpr(inc)));
13052 iterate_if(binop(Iop_CmpNE64, mkexpr(len), mkU64(0)));
13079 next_insn_if(binop(Iop_CmpEQ64, mkexpr(src_len), mkU64(0)));
13085 assign(result, binop(Iop_Add64, unop(Iop_8Uto64, mkexpr(op)),
13091 next_insn_if(binop(Iop_CmpEQ8, mkexpr(op1), mkexpr(test_byte)));
13095 put_gpr_dw0(r1, binop(Iop_Add64, mkexpr(des_addr), mkU64(1)));
13096 put_gpr_dw0(r2, binop(Iop_Add64, mkexpr(src_addr), mkU64(1)));
13097 put_gpr_dw0(r1+1, binop(Iop_Sub64, mkexpr(src_len), mkU64(1)));
13126 next_insn_if(binop(Iop_CmpEQ64, mkexpr(src_len), mkU64(0)));
13132 assign(result, binop(Iop_Add64, unop(Iop_16Uto64, mkexpr(op)),
13139 next_insn_if(binop(Iop_CmpEQ8, mkexpr(op1), mkexpr(test_byte)));
13143 put_gpr_dw0(r2, binop(Iop_Add64, mkexpr(src_addr), mkU64(2)));
13144 put_gpr_dw0(r1, binop(Iop_Add64, mkexpr(des_addr), mkU64(1)));
13145 put_gpr_dw0(r1+1, binop(Iop_Sub64, mkexpr(src_len), mkU64(2)));
13174 next_insn_if(binop(Iop_CmpEQ64, mkexpr(src_len), mkU64(0)));
13178 assign(op, binop(Iop_Shl8, load(Ity_I8, mkexpr(src_addr)), mkU8(1)));
13180 assign(result, binop(Iop_Add64, unop(Iop_8Uto64, mkexpr(op)),
13186 next_insn_if(binop(Iop_CmpEQ16, mkexpr(op1), mkexpr(test_byte)));
13190 put_gpr_dw0(r2, binop(Iop_Add64, mkexpr(src_addr), mkU64(1)));
13191 put_gpr_dw0(r1, binop(Iop_Add64, mkexpr(des_addr), mkU64(2)));
13192 put_gpr_dw0(r1+1, binop(Iop_Sub64, mkexpr(src_len), mkU64(1)));
13221 next_insn_if(binop(Iop_CmpEQ64, mkexpr(src_len), mkU64(0)));
13225 assign(op, binop(Iop_Shl16, load(Ity_I16, mkexpr(src_addr)), mkU8(1)));
13227 assign(result, binop(Iop_Add64, unop(Iop_16Uto64, mkexpr(op)),
13233 next_insn_if(binop(Iop_CmpEQ16, mkexpr(op1), mkexpr(test_byte)));
13238 put_gpr_dw0(r2, binop(Iop_Add64, mkexpr(src_addr), mkU64(2)));
13239 put_gpr_dw0(r1, binop(Iop_Add64, mkexpr(des_addr), mkU64(2)));
13240 put_gpr_dw0(r1+1, binop(Iop_Sub64, mkexpr(src_len), mkU64(2)));
13278 next_insn_if(binop(Iop_CmpEQ64, mkexpr(src_len), mkU64(0)));
13284 next_insn_if(binop(Iop_CmpEQ8, mkexpr(op), mkexpr(test_byte)));
13286 assign(result, binop(Iop_Add64, unop(Iop_8Uto64, mkexpr(op)),
13292 put_gpr_dw0(r1, binop(Iop_Add64, mkexpr(src_addr), mkU64(1)));
13293 put_gpr_dw0(r1+1, binop(Iop_Sub64, mkexpr(src_len), mkU64(1)));
13331 next_insn_if(binop(Iop_CmpLT64U, mkexpr(len2), mkU64(2)));
13340 IRExpr *flag1 = mkite(binop(Iop_CmpLE32U, mkU32(0xd800), mkexpr(srcval)),
13342 IRExpr *flag2 = mkite(binop(Iop_CmpLE32U, mkexpr(srcval), mkU32(0xdbff)),
13344 assign(is_high_surrogate, binop(Iop_And32, flag1, flag2));
13349 mkite(binop(Iop_CmpLT64U, mkexpr(len2), mkU64(4)), mkU32(1), mkU32(0));
13351 next_insn_if(binop(Iop_CmpEQ32,
13352 binop(Iop_And32, mkexpr(is_high_surrogate),
13358 IRExpr *low_surrogate_addr = binop(Iop_Add64, mkexpr(addr2), mkU64(2));
13361 mkite(binop(Iop_CmpEQ32, mkexpr(is_high_surrogate), mkU32(1)),
13374 binop(Iop_And64, mkexpr(retval), mkU64(0xff));
13377 next_insn_if(binop(Iop_CmpEQ64, invalid_low_surrogate, mkU64(1)));
13382 assign(num_bytes, binop(Iop_And64,
13383 binop(Iop_Shr64, mkexpr(retval), mkU8(8)),
13386 next_insn_if(binop(Iop_CmpLT64U, mkexpr(len1), mkexpr(num_bytes)));
13390 assign(data, binop(Iop_Shr64, mkexpr(retval), mkU8(16)));
13403 d->guard = binop(Iop_CmpEQ64, mkexpr(num_bytes), mkU64(i));
13413 mkite(binop(Iop_CmpEQ32, mkexpr(is_high_surrogate), mkU32(1)),
13415 put_gpr_dw0(r2, binop(Iop_Add64, mkexpr(addr2), mkexpr(num_src_bytes)));
13416 put_gpr_dw0(r2 + 1, binop(Iop_Sub64, mkexpr(len2), mkexpr(num_src_bytes)));
13419 put_gpr_dw0(r1, binop(Iop_Add64, mkexpr(addr1), mkexpr(num_bytes)));
13420 put_gpr_dw0(r1 + 1, binop(Iop_Sub64, mkexpr(len1), mkexpr(num_bytes)));
13458 next_insn_if(binop(Iop_CmpLT64U, mkexpr(len2), mkU64(2)));
13467 IRExpr *flag1 = mkite(binop(Iop_CmpLE32U, mkU32(0xd800), mkexpr(srcval)),
13469 IRExpr *flag2 = mkite(binop(Iop_CmpLE32U, mkexpr(srcval), mkU32(0xdbff)),
13471 assign(is_high_surrogate, binop(Iop_And32, flag1, flag2));
13476 mkite(binop(Iop_CmpLT64U, mkexpr(len2), mkU64(4)), mkU32(1), mkU32(0));
13478 next_insn_if(binop(Iop_CmpEQ32,
13479 binop(Iop_And32, mkexpr(is_high_surrogate),
13486 IRExpr *low_surrogate_addr = binop(Iop_Add64, mkexpr(addr2), mkU64(2));
13489 mkite(binop(Iop_CmpEQ32, mkexpr(is_high_surrogate), mkU32(1)),
13502 binop(Iop_And64, mkexpr(retval), mkU64(0xff));
13505 next_insn_if(binop(Iop_CmpEQ64, invalid_low_surrogate, mkU64(1)));
13510 next_insn_if(binop(Iop_CmpLT64U, mkexpr(len1), mkU64(4)));
13513 IRExpr *data = unop(Iop_64to32, binop(Iop_Shr64, mkexpr(retval), mkU8(8)));
13520 mkite(binop(Iop_CmpEQ32, mkexpr(is_high_surrogate), mkU32(1)),
13522 put_gpr_dw0(r2, binop(Iop_Add64, mkexpr(addr2), mkexpr(num_src_bytes)));
13523 put_gpr_dw0(r2 + 1, binop(Iop_Sub64, mkexpr(len2), mkexpr(num_src_bytes)));
13526 put_gpr_dw0(r1, binop(Iop_Add64, mkexpr(addr1), mkU64(4)));
13527 put_gpr_dw0(r1 + 1, binop(Iop_Sub64, mkexpr(len1), mkU64(4)));
13565 next_insn_if(binop(Iop_CmpLT64U, mkexpr(len2), mkU64(4)));
13577 IRExpr *invalid_character = binop(Iop_And64, mkexpr(retval), mkU64(0xff));
13580 next_insn_if(binop(Iop_CmpEQ64, invalid_character, mkU64(1)));
13584 assign(num_bytes, binop(Iop_And64,
13585 binop(Iop_Shr64, mkexpr(retval), mkU8(8)),
13588 next_insn_if(binop(Iop_CmpLT64U, mkexpr(len1), mkexpr(num_bytes)));
13592 assign(data, binop(Iop_Shr64, mkexpr(retval), mkU8(16)));
13608 d->guard = binop(Iop_CmpEQ64, mkexpr(num_bytes), mkU64(i));
13616 put_gpr_dw0(r2, binop(Iop_Add64, mkexpr(addr2), mkU64(4)));
13617 put_gpr_dw0(r2 + 1, binop(Iop_Sub64, mkexpr(len2), mkU64(4)));
13620 put_gpr_dw0(r1, binop(Iop_Add64, mkexpr(addr1), mkexpr(num_bytes)));
13621 put_gpr_dw0(r1 + 1, binop(Iop_Sub64, mkexpr(len1), mkexpr(num_bytes)));
13659 next_insn_if(binop(Iop_CmpLT64U, mkexpr(len2), mkU64(4)));
13671 IRExpr *invalid_character = binop(Iop_And64, mkexpr(retval), mkU64(0xff));
13674 next_insn_if(binop(Iop_CmpEQ64, invalid_character, mkU64(1)));
13678 assign(num_bytes, binop
13679 binop(Iop_Shr64, mkexpr(retval), mkU8(8)),
13682 next_insn_if(binop(Iop_CmpLT64U, mkexpr(len1), mkexpr(num_bytes)));
13686 assign(data, binop(Iop_Shr64, mkexpr(retval), mkU8(16)));
13699 d->guard = binop(Iop_CmpEQ64, mkexpr(num_bytes), mkU64(i));
13707 put_gpr_dw0(r2, binop(Iop_Add64, mkexpr(addr2), mkU64(4)));
13708 put_gpr_dw0(r2 + 1, binop(Iop_Sub64, mkexpr(len2), mkU64(4)));
13711 put_gpr_dw0(r1, binop(Iop_Add64, mkexpr(addr1), mkexpr(num_bytes)));
13712 put_gpr_dw0(r1 + 1, binop(Iop_Sub64, mkexpr(len1), mkexpr(num_bytes)));
13782 next_insn_if(binop(Iop_CmpLT64U, mkexpr(len2), mkU64(1)));
13800 assign(num_src_bytes, binop(Iop_Shr64, mkexpr(retval1), mkU8(8)));
13804 next_insn_if(binop(Iop_CmpLT64U, mkexpr(len2), mkexpr(num_src_bytes)));
13809 cond = binop(Iop_CmpLE64U, mkU64(2), mkexpr(num_src_bytes));
13810 addr = binop(Iop_Add64, mkexpr(addr2), mkU64(1));
13812 cond = binop(Iop_CmpLE64U, mkU64(3), mkexpr(num_src_bytes));
13813 addr = binop(Iop_Add64, mkexpr(addr2), mkU64(2));
13815 cond = binop(Iop_CmpLE64U, mkU64(4), mkexpr(num_src_bytes));
13816 addr = binop(Iop_Add64, mkexpr(addr2), mkU64(3));
13822 IRExpr *stuff = binop(Iop_Or64,
13823 binop(Iop_Shl64, mkexpr(num_src_bytes), mkU8(1)),
13842 assign(num_bytes, binop(Iop_And64,
13843 binop(Iop_Shr64, mkexpr(retval2), mkU8(8)),
13846 next_insn_if(binop(Iop_CmpLT64U, mkexpr(len1), mkexpr(num_bytes)));
13850 assign(data, binop(Iop_Shr64, mkexpr(retval2), mkU8(16)));
13867 d->guard = binop(Iop_CmpEQ64, mkexpr(num_bytes), mkU64(i));
13879 put_gpr_dw0(r2, binop(Iop_Add64, mkexpr(addr2), mkexpr(num_src_bytes)));
13880 put_gpr_dw0(r2 + 1, binop(Iop_Sub64, mkexpr(len2), mkexpr(num_src_bytes)));
13883 put_gpr_dw0(r1, binop(Iop_Add64, mkexpr(addr1), mkexpr(num_bytes)));
13884 put_gpr_dw0(r1 + 1, binop(Iop_Sub64, mkexpr(len1), mkexpr(num_bytes)));