Home | History | Annotate | Download | only in priv

Lines Matching refs:mkexpr

120 mkexpr(IRTemp tmp)
521 expr = mkexpr(v);
604 dep1 = mkexpr(d1);
620 dep1 = mkexpr(d1);
636 hi = unop(Iop_F128HItoF64, mkexpr(d1));
637 lo = unop(Iop_F128LOtoF64, mkexpr(d1));
652 hi = unop(Iop_F128HItoF64, mkexpr(d1));
653 lo = unop(Iop_ReinterpF64asI64, unop(Iop_F128LOtoF64, mkexpr(d1)));
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) :
1901 assign(op2addr, binop(Iop_Add64, mkexpr(d2), b2 != 0 ? get_gpr_dw0(b2) :
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),
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) :
2185 assign(result, binop(Iop_Add32, mkexpr(op1), mkexpr(op2)));
2187 put_gpr_w1(r1, mkexpr(result));
2201 assign(result, binop(Iop_Add64, mkexpr(op1), mkexpr(op2)));
2203 put_gpr_dw0(r1, mkexpr(result));
2217 assign(result, binop(Iop_Add64, mkexpr(op1), mkexpr(op2)));
2219 put_gpr_dw0(r1, mkexpr(result));
2233 assign(result, binop(Iop_Add32, mkexpr(op2), mkexpr(op3)));
2235 put_gpr_w1(r1, mkexpr(result));
2249 assign(result, binop(Iop_Add64, mkexpr(op2), mkexpr(op3)));
2251 put_gpr_dw0(r1, mkexpr(result));
2264 assign(op2, load(Ity_I32, mkexpr(op2addr)));
2265 assign(result, binop(Iop_Add32, mkexpr(op1), mkexpr(op2)));
2267 put_gpr_w1(r1, mkexpr(result));
2280 assign(op2, load(Ity_I32, mkexpr(op2addr)));
2281 assign(result, binop(Iop_Add32, mkexpr(op1), mkexpr(op2)));
2283 put_gpr_w1(r1, mkexpr(result));
2296 assign(op2, load(Ity_I64, mkexpr(op2addr)));
2297 assign(result, binop(Iop_Add64, mkexpr(op1), mkexpr(op2)));
2299 put_gpr_dw0(r1, mkexpr(result));
2312 assign(op2, unop(Iop_32Sto64, load(Ity_I32, mkexpr(op2addr))));
2313 assign(result, binop(Iop_Add64, mkexpr(op1), mkexpr(op2)));
2315 put_gpr_dw0(r1, mkexpr(result));
2329 assign(result, binop(Iop_Add32, mkexpr(op1), mkU32((UInt)op2)));
2332 put_gpr_w1(r1, mkexpr(result));
2346 assign(result, binop(Iop_Add64, mkexpr(op1), mkU64((ULong)op2)));
2349 put_gpr_dw0(r1, mkexpr(result));
2363 assign(result, binop(Iop_Add32, mkU32((UInt)op2), mkexpr(op3)));
2366 put_gpr_w1(r1, mkexpr(result));
2380 assign(result, binop(Iop_Add64, mkU64((ULong)op2), mkexpr(op3)));
2383 put_gpr_dw0(r1, mkexpr(result));
2395 assign(op1, load(Ity_I32, mkexpr(op1addr)));
2397 assign(result, binop(Iop_Add32, mkexpr(op1), mkU32((UInt)op2)));
2398 store(mkexpr(op1addr), mkexpr(result));
2412 assign(op1, load(Ity_I64, mkexpr(op1addr)));
2414 assign(result, binop(Iop_Add64, mkexpr(op1), mkU64((ULong)op2)));
2415 store(mkexpr(op1addr), mkexpr(result));
2430 assign(op2, unop(Iop_16Sto32, load(Ity_I16, mkexpr(op2addr))));
2431 assign(result, binop(Iop_Add32, mkexpr(op1), mkexpr(op2)));
2433 put_gpr_w1(r1, mkexpr
2446 assign(op2, unop(Iop_16Sto32, load(Ity_I16, mkexpr(op2addr))));
2447 assign(result, binop(Iop_Add32, mkexpr(op1), mkexpr(op2)));
2449 put_gpr_w1(r1, mkexpr(result));
2463 assign(result, binop(Iop_Add32, mkexpr(op1), mkU32((UInt)op2)));
2466 put_gpr_w1(r1, mkexpr(result));
2480 assign(result, binop(Iop_Add64, mkexpr(op1), mkU64((ULong)op2)));
2483 put_gpr_dw0(r1, mkexpr(result));
2497 assign(result, binop(Iop_Add32, mkexpr(op2), mkexpr(op3)));
2499 put_gpr_w0(r1, mkexpr(result));
2513 assign(result, binop(Iop_Add32, mkexpr(op2), mkexpr(op3)));
2515 put_gpr_w0(r1, mkexpr(result));
2529 assign(result, binop(Iop_Add32, mkexpr(op1), mkU32((UInt)op2)));
2532 put_gpr_w0(r1, mkexpr(result));
2546 assign(result, binop(Iop_Add32, mkexpr(op1), mkexpr(op2)));
2548 put_gpr_w1(r1, mkexpr(result));
2562 assign(result, binop(Iop_Add64, mkexpr(op1), mkexpr(op2)));
2564 put_gpr_dw0(r1, mkexpr(result));
2578 assign(result, binop(Iop_Add64, mkexpr(op1), mkexpr(op2)));
2580 put_gpr_dw0(r1, mkexpr(result));
2594 assign(result, binop(Iop_Add32, mkexpr(op2), mkexpr(op3)));
2596 put_gpr_w1(r1, mkexpr(result));
2610 assign(result, binop(Iop_Add64, mkexpr(op2), mkexpr(op3)));
2612 put_gpr_dw0(r1, mkexpr(result));
2625 assign(op2, load(Ity_I32, mkexpr(op2addr)));
2626 assign(result, binop(Iop_Add32, mkexpr(op1), mkexpr(op2)));
2628 put_gpr_w1(r1, mkexpr(result));
2641 assign(op2, load(Ity_I32, mkexpr(op2addr)));
2642 assign(result, binop(Iop_Add32, mkexpr(op1), mkexpr(op2)));
2644 put_gpr_w1(r1, mkexpr(result));
2657 assign(op2, load(Ity_I64, mkexpr(op2addr)));
2658 assign(result, binop(Iop_Add64, mkexpr(op1), mkexpr(op2)));
2660 put_gpr_dw0(r1, mkexpr(result));
2673 assign(op2, unop(Iop_32Uto64, load(Ity_I32, mkexpr(op2addr))));
2674 assign(result, binop(Iop_Add64, mkexpr(op1), mkexpr(op2)));
2676 put_gpr_dw0(r1, mkexpr(result));
2690 assign(result, binop(Iop_Add32, mkexpr(op1), mkU32(op2)));
2693 put_gpr_w1(r1, mkexpr(result));
2707 assign(result, binop(Iop_Add64, mkexpr(op1), mkU64(op2)));
2710 put_gpr_dw0(r1, mkexpr(result));
2724 assign(result, binop(Iop_Add32, mkexpr(op2), mkexpr(op3)));
2726 put_gpr_w0(r1, mkexpr(result));
2740 assign(result, binop(Iop_Add32, mkexpr(op2), mkexpr(op3)));
2742 put_gpr_w0(r1, mkexpr(result));
2758 assign(result, binop(Iop_Add32, binop(Iop_Add32, mkexpr(op1), mkexpr(op2)),
2759 mkexpr(carry_in)));
2761 put_gpr_w1(r1, mkexpr(result));
2778 assign(result, binop(Iop_Add64, binop(Iop_Add64, mkexpr(op1), mkexpr(op2)),
2779 mkexpr(carry_in)));
2781 put_gpr_dw0(r1, mkexpr(result));
2795 assign(op2, load(Ity_I32, mkexpr(op2addr)));
2797 assign(result, binop(Iop_Add32, binop(Iop_Add32, mkexpr(op1), mkexpr(op2)),
2798 mkexpr(carry_in)));
2800 put_gpr_w1(r1, mkexpr(result));
2814 assign(op2, load(Ity_I64, mkexpr(op2addr)));
2817 assign(result, binop(Iop_Add64, binop(Iop_Add64, mkexpr(op1), mkexpr(op2)),
2818 mkexpr(carry_in)));
2820 put_gpr_dw0(r1, mkexpr(result));
2832 assign(op1, load(Ity_I32, mkexpr(op1addr)));
2834 assign(result, binop(Iop_Add32, mkexpr(op1), mkU32(op2)));
2837 store(mkexpr(op1addr), mkexpr(result));
2849 assign(op1, load(Ity_I64, mkexpr(op1addr)));
2851 assign(result, binop(Iop_Add64, mkexpr(op1), mkU64(op2)));
2854 store(mkexpr(op1addr), mkexpr(result));
2868 assign(result, binop(Iop_Add32, mkU32(op2), mkexpr(op3)));
2871 put_gpr_w1(r1, mkexpr(result));
2885 assign(result, binop(Iop_Add64, mkU64(op2), mkexpr(op3)));
2888 put_gpr_dw0(r1, mkexpr(result));
2902 assign(result, binop(Iop_Add32, mkexpr(op1), mkU32(op2)));
2905 put_gpr_w0(r1, mkexpr(result));
2919 assign(result, binop(Iop_Add32, mkexpr(op1), mkU32(op2)));
2920 put_gpr_w0(r1, mkexpr(result));
2934 assign(result, binop(Iop_And32, mkexpr(op1), mkexpr(op2)));
2936 put_gpr_w1(r1, mkexpr(result));
2950 assign(result, binop(Iop_And64, mkexpr(op1), mkexpr(op2)));
2952 put_gpr_dw0(r1, mkexpr(result));
2966 assign(result, binop(Iop_And32, mkexpr(op2), mkexpr(op3)));
2968 put_gpr_w1(r1, mkexpr(result));
2982 assign(result, binop(Iop_And64, mkexpr(op2), mkexpr(op3)));
2984 put_gpr_dw0(r1, mkexpr(result));
2997 assign(op2, load(Ity_I32, mkexpr(op2addr)));
2998 assign(result, binop(Iop_And32, mkexpr(op1), mkexpr(op2)));
3000 put_gpr_w1(r1, mkexpr(result));
3013 assign(op2, load(Ity_I32, mkexpr(op2addr)));
3014 assign(result, binop(Iop_And32, mkexpr(op1), mkexpr(op2)));
3016 put_gpr_w1(r1, mkexpr(result));
3029 assign(op2, load(Ity_I64, mkexpr(op2addr)));
3030 assign(result, binop(Iop_And64, mkexpr(op1), mkexpr(op2)));
3032 put_gpr_dw0(r1, mkexpr(result));
3044 assign(op1, load(Ity_I8, mkexpr(op1addr)));
3046 assign(result, binop(Iop_And8, mkexpr(op1), mkU8(op2)));
3048 store(mkexpr(op1addr), mkexpr(result));
3060 mkexpr(op1addr)));
3062 assign(result, binop(Iop_And8, mkexpr(op1), mkU8(op2)));
3064 store(mkexpr(op1addr), mkexpr(result));
3078 assign(result, binop(Iop_And32, mkexpr(op1), mkU32(op2)));
3080 put_gpr_w0(r1, mkexpr(result));
3094 assign(result, binop(Iop_And16, mkexpr(op1), mkU16(op2)));
3096 put_gpr_hw0(r1, mkexpr(result));
3110 assign(result, binop(Iop_And16, mkexpr(op1), mkU16(op2)));
3112 put_gpr_hw1(r1, mkexpr(result));
3126 assign(result, binop(Iop_And32, mkexpr(op1), mkU32(op2)));
3128 put_gpr_w1(r1, mkexpr(result));
3142 assign(result, binop(Iop_And16, mkexpr(op1), mkU16(op2)));
3144 put_gpr_hw2(r1, mkexpr(result));
3158 assign(result, binop(Iop_And16, mkexpr(op1), mkU16(op2)));
3160 put_gpr_hw3(r1, mkexpr(result));
3179 call_function(mkexpr(target));
3192 assign(target, mkexpr(op2addr));
3193 call_function(mkexpr(target));
3213 if_condition_goto_computed(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
3231 always_goto(mkexpr(op2addr));
3234 if_condition_goto_computed(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
3235 mkexpr(op2addr));
3273 mkexpr(op2addr));
3283 mkexpr(op2addr));
3295 if_condition_goto_computed(binop(Iop_CmpLT32S, mkexpr(value),
3296 get_gpr_w1(r1)), mkexpr(op2addr));
3308 if_condition_goto_computed(binop(Iop_CmpLT64S, mkexpr(value),
3309 get_gpr_dw0(r1)), mkexpr(op2addr));
3322 mkexpr(value)), mkexpr(op2addr));
3335 mkexpr(value)), mkexpr(op2addr));
3370 if_condition_goto(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
3392 if_condition_goto(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
3429 if_condition_goto(binop(Iop_CmpLT32S, mkexpr(value), get_gpr_w1(r1)),
3442 if_condition_goto(binop(Iop_CmpLT64S, mkexpr(value), get_gpr_dw0(r1)),
3455 if_condition_goto(binop(Iop_CmpLE32S, get_gpr_w1(r1), mkexpr(value)),
3468 if_condition_goto(binop(Iop_CmpLE64S, get_gpr_dw0(r1), mkexpr(value)),
3520 assign(op2, load(Ity_I32, mkexpr(op2addr)));
3533 assign(op2, load(Ity_I32, mkexpr(op2addr)));
3546 assign(op2, load(Ity_I64, mkexpr(op2addr)));
3559 assign(op2, unop(Iop_32Sto64, load(Ity_I32, mkexpr(op2addr))));
3645 always_goto(mkexpr(op4addr));
3651 if_condition_goto_computed(binop(Iop_CmpNE32, mkexpr(cond),
3652 mkU32(0)), mkexpr(op4addr));
3669 always_goto(mkexpr(op4addr));
3675 if_condition_goto_computed(binop(Iop_CmpNE32, mkexpr(cond),
3676 mkU32(0)), mkexpr(op4addr));
3700 if_condition_goto(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
3726 if_condition_goto(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
3745 always_goto(mkexpr(op4addr));
3751 if_condition_goto_computed(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
3752 mkexpr(op4addr));
3769 always_goto(mkexpr(op4addr));
3775 if_condition_goto_computed(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
3776 mkexpr(op4addr));
3799 if_condition_goto(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
3824 if_condition_goto(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
3840 assign(op2, unop(Iop_16Sto32, load(Ity_I16, mkexpr(op2addr))));
3853 assign(op2, unop(Iop_16Sto32, load(Ity_I16, mkexpr(op2addr))));
3866 assign(op2, unop(Iop_16Sto64, load(Ity_I16, mkexpr(op2addr))));
3906 assign(op1, load(Ity_I16, mkexpr(op1addr)));
3920 assign(op1, load(Ity_I32, mkexpr(op1addr)));
3934 assign(op1, load(Ity_I64, mkexpr(op1addr)));
4003 assign(op2, load(Ity_I32, mkexpr(op2addr)));
4069 assign(op2, load(Ity_I32, mkexpr(op2addr)));
4082 assign(op2, load(Ity_I32, mkexpr(op2addr)));
4095 assign(op2, load(Ity_I64, mkexpr(op2addr)));
4108 assign(op2, unop(Iop_32Uto64, load(Ity_I32, mkexpr(op2addr))));
4148 assign(op1, load(Ity_I8, mkexpr(op1addr)));
4162 assign(op1, load(Ity_I8, mkexpr(op1addr)));
4176 assign(op1, load(Ity_I32, mkexpr(op1addr)));
4190 assign(op1, load(Ity_I64, mkexpr(op1addr)));
4204 assign(op1, load(Ity_I16, mkexpr(op1addr)));
4292 always_goto(mkexpr(op4addr));
4298 if_condition_goto_computed(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
4299 mkexpr(op4addr));
4316 always_goto(mkexpr(op4addr));
4322 if_condition_goto_computed(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
4323 mkexpr(op4addr));
4346 if_condition_goto(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
4371 if_condition_goto(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
4390 always_goto(mkexpr(op4addr));
4396 if_condition_goto_computed(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
4397 mkexpr(op4addr));
4414 always_goto(mkexpr(op4addr));
4420 if_condition_goto_computed(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
4421 mkexpr(op4addr));
4444 if_condition_goto(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
4469 if_condition_goto(binop(Iop_CmpNE32, mkexpr(cond), mkU32(0)),
4496 assign(c0, unop(Iop_8Uto32, load(Ity_I8, mkexpr(op2addr))));
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),
4530 mkexpr(b0), mkU8(24)), binop(Iop_Shl32, mkexpr(b1), mkU8(16))),
4531 binop(Iop_Shl32, mkexpr(b2), mkU8(8))), mkexpr(b3)));
4533 mkexpr(c0), mkU8(24)), binop(Iop_Shl32, mkexpr(c1), mkU8(16))),
4534 binop(Iop_Shl32, mkexpr(c2), mkU8(8))), mkexpr(c3)));
4558 assign(c0, unop(Iop_8Uto32, load(Ity_I8, mkexpr(op2addr))));
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),
4592 mkexpr(b0), mkU8(24)), binop(Iop_Shl32, mkexpr(b1), mkU8(16))),
4593 binop(Iop_Shl32, mkexpr(b2), mkU8(8))), mkexpr(b3)));
4595 mkexpr(c0), mkU8(24)), binop(Iop_Shl32, mkexpr(c1), mkU8(16))),
4596 binop(Iop_Shl32, mkexpr(c2), mkU8(8))), mkexpr(c3)));
4620 assign(c0, unop(Iop_8Uto32, load(Ity_I8, mkexpr(op2addr))));
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),
4654 mkexpr(b0), mkU8(24)), binop(Iop_Shl32, mkexpr(b1), mkU8(16))),
4655 binop(Iop_Shl32, mkexpr(b2), mkU8(8))), mkexpr(b3)));
4657 mkexpr(c0), mkU8(24)), binop(Iop_Shl32, mkexpr(c1), mkU8(16))),
4658 binop(Iop_Shl32, mkexpr(c2), mkU8(8))), mkexpr(c3)));
4697 assign(op2, load(Ity_I32, mkexpr(op2addr)));
4739 assign(result, binop(Iop_Xor32, mkexpr(op1), mkexpr(op2)));
4742 put_gpr_w1(r1, mkexpr(result));
4759 assign(result, binop(Iop_Xor64, mkexpr(op1), mkexpr(op2)));
4762 put_gpr_dw0(r1, mkexpr(result));
4776 assign(result, binop(Iop_Xor32, mkexpr(op2), mkexpr(op3)));
4778 put_gpr_w1(r1, mkexpr(result));
4792 assign(result, binop(Iop_Xor64, mkexpr(op2), mkexpr(op3)));
4794 put_gpr_dw0(r1, mkexpr(result));
4807 assign(op2, load(Ity_I32, mkexpr(op2addr)));
4808 assign(result, binop(Iop_Xor32, mkexpr(op1), mkexpr(op2)));
4810 put_gpr_w1(r1, mkexpr(result));
4823 assign(op2, load(Ity_I32, mkexpr(op2addr)));
4824 assign(result, binop(Iop_Xor32, mkexpr(op1), mkexpr(op2)));
4826 put_gpr_w1(r1, mkexpr(result));
4839 assign(op2, load(Ity_I64, mkexpr(op2addr)));
4840 assign(result, binop(Iop_Xor64, mkexpr(op1), mkexpr(op2)));
4842 put_gpr_dw0(r1, mkexpr(result));
4854 assign(op1, load(Ity_I8, mkexpr(op1addr)));
4856 assign(result, binop(Iop_Xor8, mkexpr(op1), mkU8(op2)));
4858 store(mkexpr(op1addr), mkexpr(result));
4870 assign(op1, load(Ity_I8, mkexpr(op1addr)));
4872 assign(result, binop(Iop_Xor8, mkexpr(op1), mkU8(op2)));
4874 store(mkexpr(op1addr), mkexpr(result));
4888 assign(result, binop(Iop_Xor32, mkexpr(op1), mkU32(op2)));
4890 put_gpr_w0(r1, mkexpr(result));
4904 assign(result, binop(Iop_Xor32, mkexpr(op1), mkU32(op2)));
4906 put_gpr_w1(r1, mkexpr(result));
4924 put_gpr_b7(r1, load(Ity_I8, mkexpr(op2addr)));
4932 put_gpr_b7(r1, load(Ity_I8, mkexpr(op2addr)));
4947 put_gpr_b4(r1, load(Ity_I8, mkexpr(op2addr)));
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))));
4982 put_gpr_b4(r1, load(Ity_I8, mkexpr(op2addr)));
4986 put_gpr_b5(r1, load(Ity_I8, binop(Iop_Add64, mkexpr(op2addr), mkU64(n))));
4991 put_gpr_b6(r1, load(Ity_I8, binop(Iop_Add64, mkexpr
4996 put_gpr_b7(r1, load(Ity_I8, binop(Iop_Add64, mkexpr(op2addr), mkU64(n))));
5017 put_gpr_b0(r1, load(Ity_I8, mkexpr(op2addr)));
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))));
5117 put_gpr_w1(r1, load(Ity_I32, mkexpr(op2addr)));
5125 put_gpr_w1(r1, load(Ity_I32, mkexpr(op2addr)));
5133 put_gpr_dw0(r1, load(Ity_I64, mkexpr(op2addr)));
5141 put_gpr_dw0(r1, unop(Iop_32Sto64, load(Ity_I32, mkexpr(op2addr))));
5184 put_gpr_dw0(r1, mkexpr(op2addr));
5192 put_gpr_dw0(r1, mkexpr(op2addr));
5200 put_gpr_dw0(r1, mkexpr(op2addr));
5208 put_gpr_dw0(r1, mkexpr(op2addr));
5228 assign(op2, load(Ity_I32, mkexpr(op2addr)));
5230 assign(result, binop(Iop_Add32, mkexpr(op2), mkexpr(op3)));
5232 store(mkexpr(op2addr), mkexpr(result));
5233 put_gpr_w1(r1, mkexpr(op2));
5245 assign(op2, load(Ity_I64, mkexpr(op2addr)));
5247 assign(result, binop(Iop_Add64, mkexpr(op2), mkexpr(op3)));
5249 store(mkexpr(op2addr), mkexpr(result));
5250 put_gpr_dw0(r1, mkexpr(op2));
5262 assign(op2, load(Ity_I32, mkexpr(op2addr)));
5264 assign(result, binop(Iop_Add32, mkexpr(op2), mkexpr(op3)));
5266 store(mkexpr(op2addr), mkexpr(result));
5267 put_gpr_w1(r1, mkexpr(op2));
5279 assign(op2, load(Ity_I64, mkexpr(op2addr)));
5281 assign(result, binop(Iop_Add64, mkexpr(op2), mkexpr(op3)));
5283 store(mkexpr(op2addr), mkexpr(result));
5284 put_gpr_dw0(r1, mkexpr(op2));
5296 assign(op2, load(Ity_I32, mkexpr(op2addr)));
5298 assign(result, binop(Iop_And32, mkexpr(op2), mkexpr(op3)));
5300 store(mkexpr(op2addr), mkexpr(result));
5301 put_gpr_w1(r1, mkexpr(op2));
5313 assign(op2, load(Ity_I64, mkexpr(op2addr)));
5315 assign(result, binop(Iop_And64, mkexpr(op2), mkexpr(op3)));
5317 store(mkexpr(op2addr), mkexpr(result));
5318 put_gpr_dw0(r1, mkexpr(op2));
5330 assign(op2, load(Ity_I32, mkexpr(op2addr)));
5332 assign(result, binop(Iop_Xor32, mkexpr(op2), mkexpr(op3)));
5334 store(mkexpr(op2addr), mkexpr(result));
5335 put_gpr_w1(r1, mkexpr(op2));
5347 assign(op2, load(Ity_I64, mkexpr(op2addr)));
5349 assign(result, binop(Iop_Xor64, mkexpr(op2), mkexpr(op3)));
5351 store(mkexpr(op2addr), mkexpr(result));
5352 put_gpr_dw0(r1, mkexpr(op2));
5364 assign(op2, load(Ity_I32, mkexpr(op2addr)));
5366 assign(result, binop(Iop_Or32, mkexpr(op2), mkexpr(op3)));
5368 store(mkexpr(op2addr), mkexpr(result));
5369 put_gpr_w1(r1, mkexpr(op2));
5381 assign(op2, load(Ity_I64, mkexpr(op2addr)));
5383 assign(result, binop(Iop_Or64, mkexpr(op2), mkexpr(op3)));
5385 store(mkexpr(op2addr), mkexpr(result));
5386 put_gpr_dw0(r1, mkexpr(op2));
5397 put_gpr_w1(r1, mkexpr(op2));
5409 put_gpr_dw0(r1, mkexpr(op2));
5421 put_gpr_dw0(r1, mkexpr(op2));
5432 assign(op2, load(Ity_I32, mkexpr(op2addr)));
5433 put_gpr_w1(r1, mkexpr(op2));
5444 assign(op2, load(Ity_I64, mkexpr(op2addr)));
5445 put_gpr_dw0(r1, mkexpr(op2));
5456 assign(op2, unop(Iop_32Sto64, load(Ity_I32, mkexpr(op2addr))));
5457 put_gpr_dw0(r1, mkexpr(op2));
5482 put_gpr_w1(r1, unop(Iop_8Sto32, load(Ity_I8, mkexpr(op2addr))));
5490 put_gpr_dw0(r1, unop(Iop_8Sto64, load(Ity_I8, mkexpr(op2addr))));
5498 put_gpr_w0(r1, unop(Iop_8Sto32, load(Ity_I8, mkexpr(op2addr))));
5512 assign(result, binop(Iop_Sub32, mkU32((UInt)op1), mkexpr(op2)));
5513 put_gpr_w1(r1, mkexpr(result));
5529 assign(result, binop(Iop_Sub64, mkU64((ULong)op1), mkexpr(op2)));
5530 put_gpr_dw0(r1, mkexpr(result));
5546 assign(result, binop(Iop_Sub64, mkU64((ULong)op1), mkexpr(op2)));
5547 put_gpr_dw0(r1, mkexpr(result));
5573 put_gpr_w1(r1, unop(Iop_16Sto32, load(Ity_I16, mkexpr(op2addr))));
5581 put_gpr_w1(r1, unop(Iop_16Sto32, load(Ity_I16, mkexpr(op2addr))));
5589 put_gpr_dw0(r1, unop(Iop_16Sto64, load(Ity_I16, mkexpr(op2addr))));
5631 put_gpr_w0(r1, unop(Iop_16Sto32, load(Ity_I16, mkexpr(op2addr))));
5639 put_gpr_w0(r1, load(Ity_I32, mkexpr(op2addr)));
5655 put_gpr_dw0(r1, unop(Iop_32Uto64, load(Ity_I32, mkexpr(op2addr))));
5688 put_gpr_w1(r1, unop(Iop_8Uto32, load(Ity_I8, mkexpr(op2addr))));
5696 put_gpr_dw0(r1, unop(Iop_8Uto64, load(Ity_I8, mkexpr(op2addr))));
5704 put_gpr_w0(r1, unop(Iop_8Uto32, load(Ity_I8, mkexpr(op2addr))));
5728 put_gpr_w1(r1, unop(Iop_16Uto32, load(Ity_I16, mkexpr(op2addr))));
5736 put_gpr_dw0(r1, unop(Iop_16Uto64, load(Ity_I16, mkexpr(op2addr))));
5762 put_gpr_w0(r1, unop(Iop_16Uto32, load(Ity_I16, mkexpr(op2addr))));
5828 mkexpr(op2addr)), mkU32(2147483647))));
5840 assign(result, mkite(binop(Iop_CmpLE32S, mkexpr(op2), mkU32(0)), mkexpr(op2),
5841 binop(Iop_Sub32, mkU32(0), mkexpr(op2))));
5842 put_gpr_w1(r1, mkexpr(result));
5855 assign(result, mkite(binop(Iop_CmpLE64S, mkexpr(op2), mkU64(0)), mkexpr(op2),
5856 binop(Iop_Sub64, mkU64(0), mkexpr(op2))));
5857 put_gpr_dw0(r1, mkexpr(result));
5870 assign(result, mkite(binop(Iop_CmpLE64S, mkexpr(op2), mkU64(0)), mkexpr(op2),
5871 binop(Iop_Sub64, mkU64(0), mkexpr(op2))));
5872 put_gpr_dw0(r1, mkexpr(result));
5900 put_gpr_w1(r1, load(Ity_I32, mkexpr(op2addr)));
5909 put_gpr_dw0(r1, load(Ity_I64, mkexpr(op2addr)));
5917 put_gpr_dw0(r1, load(Ity_I64, mkexpr(op2addr)));
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)));
5933 put_gpr_w1(r1, mkexpr(result));
5946 assign(result, mkite(binop(Iop_CmpLT64S, mkexpr(op2), mkU64(0)),
5947 binop(Iop_Sub64, mkU64(0), mkexpr(op2)), mkexpr(op2)));
5948 put_gpr_dw0(r1, mkexpr(result));
5961 assign(result, mkite(binop(Iop_CmpLT64S, mkexpr(op2), mkU64(0)),
5962 binop(Iop_Sub64, mkU64(0), mkexpr(op2)), mkexpr(op2)));
5963 put_gpr_dw0(r1, mkexpr(result));
5981 put_gpr_b4(r1, mkexpr(b3));
5982 put_gpr_b5(r1, mkexpr(b2));
5983 put_gpr_b6(r1, mkexpr(b1));
5984 put_gpr_b7(r1, mkexpr(b0));
6009 put_gpr_b0(r1, mkexpr(b7));
6010 put_gpr_b1(r1, mkexpr(b6));
6011 put_gpr_b2(r1, mkexpr(b5));
6012 put_gpr_b3(r1, mkexpr(b4));
6013 put_gpr_b4(r1, mkexpr(b3));
6014 put_gpr_b5(r1, mkexpr(b2));
6015 put_gpr_b6(r1, mkexpr(b1));
6016 put_gpr_b7(r1, mkexpr(b0));
6026 assign(op2, load(Ity_I16, mkexpr(op2addr)));
6027 put_gpr_b6(r1, unop(Iop_16to8, mkexpr(op2)));
6028 put_gpr_b7(r1, unop(Iop_16HIto8, mkexpr(op2)));
6038 assign(op2, load(Ity_I32, mkexpr(op2addr)));
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),
6055 assign(op2, load(Ity_I64, mkexpr(op2addr)));
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),
6078 store(mkexpr(op1addr), mkU16(i2));
6086 store(mkexpr(op1addr), mkU32((UInt)(Int)(Short)i2));
6094 store(mkexpr(op1addr), mkU64((ULong)(Long)(Short)i2));
6102 store(mkexpr(op1addr), mkU8(i2));
6110 store(mkexpr(op1addr), mkU8(i2));
6124 assign(result, binop(Iop_MullS32, mkexpr(op1), mkexpr(op2)));
6125 put_gpr_w1(r1, unop(Iop_64HIto32, mkexpr(result)));
6126 put_gpr_w1(r1 + 1, unop(Iop_64to32, mkexpr(result)));
6139 assign(op2, load(Ity_I32, mkexpr(op2addr)));
6140 assign(result, binop(Iop_MullS32, mkexpr(op1), mkexpr(op2)));
6141 put_gpr_w1(r1, unop(Iop_64HIto32, mkexpr(result)));
6142 put_gpr_w1(r1 + 1, unop(Iop_64to32, mkexpr(result)));
6155 assign(op2, load(Ity_I32, mkexpr(op2addr)));
6156 assign(result, binop(Iop_MullS32, mkexpr(op1), mkexpr(op2)));
6157 put_gpr_w1(r1, unop(Iop_64HIto32, mkexpr(result)));
6158 put_gpr_w1(r1 + 1, unop(Iop_64to32, mkexpr(result)));
6171 assign(op2, load(Ity_I16, mkexpr(op2addr)));
6172 assign(result, binop(Iop_MullS32, mkexpr(op1), unop(Iop_16Sto32, mkexpr(op2))
6174 put_gpr_w1(r1, unop(Iop_64to32, mkexpr(result)));
6187 assign(op2, load(Ity_I16, mkexpr(op2addr)));
6188 assign(result, binop(Iop_MullS32, mkexpr(op1), unop(Iop_16Sto32, mkexpr(op2))
6190 put_gpr_w1(r1, unop(Iop_64to32, mkexpr(result)));
6204 assign(result, binop(Iop_MullS32, mkexpr(op1), unop(Iop_16Sto32,
6206 put_gpr_w1(r1, unop(Iop_64to32, mkexpr(result)));
6220 assign(result, binop(Iop_MullS64, mkexpr(op1), unop(Iop_16Sto64,
6222 put_gpr_dw0(r1, unop(Iop_128to64, mkexpr(result)));
6236 assign(result, binop(Iop_MullU32, mkexpr(op1), mkexpr(op2)));
6237 put_gpr_w1(r1, unop(Iop_64HIto32, mkexpr(result)));
6238 put_gpr_w1(r1 + 1, unop(Iop_64to32, mkexpr(result)));
6252 assign(result, binop(Iop_MullU64, mkexpr(op1), mkexpr(op2)));
6253 put_gpr_dw0(r1, unop(Iop_128HIto64, mkexpr(result)));
6254 put_gpr_dw0(r1 + 1, unop(Iop_128to64, mkexpr(result)));
6267 assign(op2, load(Ity_I32, mkexpr(op2addr)));
6268 assign(result, binop(Iop_MullU32, mkexpr(op1), mkexpr(op2)));
6269 put_gpr_w1(r1, unop(Iop_64HIto32, mkexpr(result)));
6270 put_gpr_w1(r1 + 1, unop(Iop_64to32, mkexpr(result)));
6283 assign(op2, load(Ity_I64, mkexpr(op2addr)));
6284 assign(result, binop(Iop_MullU64, mkexpr(op1), mkexpr(op2)));
6285 put_gpr_dw0(r1, unop(Iop_128HIto64, mkexpr(result)));
6286 put_gpr_dw0(r1 + 1, unop(Iop_128to64, mkexpr(result)));
6300 assign(result, binop(Iop_MullS32, mkexpr(op1), mkexpr(op2)));
6301 put_gpr_w1(r1, unop(Iop_64to32, mkexpr(result)));
6315 assign(result, binop(Iop_MullS64, mkexpr(op1), mkexpr(op2)));
6316 put_gpr_dw0(r1, unop(Iop_128to64, mkexpr(result)));
6330 assign(result, binop(Iop_MullS64, mkexpr(op1), unop(Iop_32Sto64, mkexpr(op2))
6332 put_gpr_dw0(r1, unop(Iop_128to64, mkexpr(result)));
6345 assign(op2, load(Ity_I32, mkexpr(op2addr)));
6346 assign(result, binop(Iop_MullS32, mkexpr(op1), mkexpr(op2)));
6347 put_gpr_w1(r1, unop(Iop_64to32, mkexpr(result)));
6360 assign(op2, load(Ity_I32, mkexpr(op2addr)));
6361 assign(result, binop(Iop_MullS32, mkexpr(op1), mkexpr(op2)));
6362 put_gpr_w1(r1, unop(Iop_64to32, mkexpr(result)));
6375 assign(op2, load(Ity_I64, mkexpr(op2addr)));
6376 assign(result, binop(Iop_MullS64, mkexpr(op1), mkexpr(op2)));
6377 put_gpr_dw0(r1, unop(Iop_128to64, mkexpr(result)));
6390 assign(op2, load(Ity_I32, mkexpr(op2addr)));
6391 assign(result, binop(Iop_MullS64, mkexpr(op1), unop(Iop_32Sto64, mkexpr(op2))
6393 put_gpr_dw0(r1, unop(Iop_128to64, mkexpr(result)));
6407 assign(result, binop(Iop_MullS32, mkexpr(op1), mkU32((UInt)op2)));
6408 put_gpr_w1(r1, unop(Iop_64to32, mkexpr(result)));
6422 assign(result, binop(Iop_MullS64, mkexpr(op1), unop(Iop_32Sto64, mkU32((UInt)
6424 put_gpr_dw0(r1, unop(Iop_128to64, mkexpr(result)));
6438 assign(result, binop(Iop_Or32, mkexpr(op1), mkexpr(op2)));
6440 put_gpr_w1(r1, mkexpr(result));
6454 assign(result, binop(Iop_Or64, mkexpr(op1), mkexpr(op2)));
6456 put_gpr_dw0(r1, mkexpr(result));
6470 assign(result, binop(Iop_Or32, mkexpr(op2), mkexpr(op3)));
6472 put_gpr_w1(r1, mkexpr(result));
6486 assign(result, binop(Iop_Or64, mkexpr(op2), mkexpr(op3)));
6488 put_gpr_dw0(r1, mkexpr(result));
6501 assign(op2, load(Ity_I32, mkexpr(op2addr)));
6502 assign(result, binop(Iop_Or32, mkexpr(op1), mkexpr(op2)));
6504 put_gpr_w1(r1, mkexpr(result));
6517 assign(op2, load(Ity_I32, mkexpr(op2addr)));
6518 assign(result, binop(Iop_Or32, mkexpr(op1), mkexpr(op2)));
6520 put_gpr_w1(r1, mkexpr(result));
6533 assign(op2, load(Ity_I64, mkexpr(op2addr)));
6534 assign(result, binop(Iop_Or64, mkexpr(op1), mkexpr(op2)));
6536 put_gpr_dw0(r1, mkexpr(result));
6548 assign(op1, load(Ity_I8, mkexpr(op1addr)));
6550 assign(result, binop(Iop_Or8, mkexpr(op1), mkU8(op2)));
6552 store(mkexpr(op1addr), mkexpr(result));
6564 assign(op1, load(Ity_I8, mkexpr(op1addr)));
6566 assign(result, binop(Iop_Or8, mkexpr(op1), mkU8(op2)));
6568 store(mkexpr(op1addr), mkexpr(result));
6582 assign(result, binop(Iop_Or32, mkexpr(op1), mkU32(op2)));
6584 put_gpr_w0(r1, mkexpr(result));
6598 assign(result, binop(Iop_Or16, mkexpr(op1), mkU16(op2)));
6600 put_gpr_hw0(r1, mkexpr(result));
6614 assign(result, binop(Iop_Or16, mkexpr(op1), mkU16(op2)));
6616 put_gpr_hw1(r1, mkexpr(result));
6630 assign(result, binop(Iop_Or32, mkexpr(op1), mkU32(op2)));
6632 put_gpr_w1(r1, mkexpr(result));
6646 assign(result, binop(Iop_Or16, mkexpr(op1), mkU16(op2)));
6648 put_gpr_hw2(r1, mkexpr(result));
6662 assign(result, binop(Iop_Or16, mkexpr(op1), mkU16(op2)));
6664 put_gpr_hw3(r1, mkexpr(result));
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))))));
6741 assign(result, binop(Iop_And64, binop(Iop_And64, get_gpr_dw0(r1), mkexpr(op2)
6745 mkU64(maskc)), mkexpr(result)));
6780 assign(result, binop(Iop_And64, binop(Iop_Xor64, get_gpr_dw0(r1), mkexpr(op2)
6784 mkU64(maskc)), mkexpr(result)));
6819 assign(result, binop(Iop_And64, binop(Iop_Or64, get_gpr_dw0(r1), mkexpr(op2)
6823 mkU64(maskc)), mkexpr(result)));
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),
6897 unop(Iop_64to8, mkexpr(shift_amount))), mkU64(~sign_mask)),
6898 binop(Iop_And64, mkexpr(op), mkU64(sign_mask))));
6899 put_gpr_w1(r1, unop(Iop_64HIto32, mkexpr(result)));
6900 put_gpr_w1(r1 + 1, unop(Iop_64to32, mkexpr(result)));
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,
6917 mkexpr(op2addr), mkU64(63)))));
6918 put_gpr_w1(r1, unop(Iop_64HIto32, mkexpr(result)));
6919 put_gpr_w1(r1 + 1, unop(Iop_64to32, mkexpr(result)));
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),
6938 unop(Iop_64to8, mkexpr(shift_amount))), mkU32(~sign_mask)),
6939 binop(Iop_And32, mkexpr(uop), mkU32(sign_mask))));
6940 put_gpr_w1(r1, mkexpr(result));
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),
6960 unop(Iop_64to8, mkexpr(shift_amount))), mkU32(~sign_mask)),
6961 binop(Iop_And32, mkexpr(uop), mkU32(sign_mask))));
6962 put_gpr_w1(r1, mkexpr(result));
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),
6982 unop(Iop_64to8, mkexpr(shift_amount))), mkU64(~sign_mask)),
6983 binop(Iop_And64, mkexpr(uop), mkU64(sign_mask))));
6984 put_gpr_dw0(r1, mkexpr(result));
6994 binop(Iop_And64, mkexpr(op2addr), mkU64(63)))));
7003 binop(Iop_And64, mkexpr(op2addr), mkU64(63)))));
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,
7028 mkexpr(op2addr), mkU64(63)))));
7029 put_gpr_w1(r1, unop(Iop_64HIto32, mkexpr(result)));
7030 put_gpr_w1(r1 + 1, unop(Iop_64to32, mkexpr(result)));
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,
7047 mkexpr(op2addr), mkU64(63)))));
7048 put_gpr_w1(r1, unop(Iop_64HIto32, mkexpr(result)));
7049 put_gpr_w1(r1 + 1, unop(Iop_64to32, mkexpr(result)));
7061 assign(result, binop(Iop_Sar32, mkexpr(op), unop(Iop_64to8, binop(Iop_And64,
7062 mkexpr(op2addr), mkU64(63)))));
7063 put_gpr_w1(r1, mkexpr(result));
7076 assign(result, binop(Iop_Sar32, mkexpr(op), unop(Iop_64to8, binop(Iop_And64,
7077 mkexpr(op2addr), mkU64(63)))));
7078 put_gpr_w1(r1, mkexpr(result));
7091 assign(result, binop(Iop_Sar64, mkexpr(op), unop(Iop_64to8, binop(Iop_And64,
7092 mkexpr(op2addr), mkU64(63)))));
7093 put_gpr_dw0(r1, mkexpr(result));
7105 put_gpr_w1(r1, binop(Iop_Shr32, mkexpr(op), unop(Iop_64to8, binop(Iop_And64,
7106 mkexpr(op2addr), mkU64(63)))));
7117 put_gpr_w1(r1, binop(Iop_Shr32, mkexpr(op), unop(Iop_64to8, binop(Iop_And64,
7118 mkexpr(op2addr), mkU64(63)))));
7129 put_gpr_dw0(r1, binop(Iop_Shr64, mkexpr(op), unop(Iop_64to8, binop(Iop_And64,
7130 mkexpr(op2addr), mkU64(63)))));
7138 store(mkexpr(op2addr), get_gpr_w1(r1));
7146 store(mkexpr(op2addr), get_gpr_w1(r1));
7154 store(mkexpr(op2addr), get_gpr_dw0(r1));
7180 store(mkexpr(op2addr), get_gpr_b7(r1));
7188 store(mkexpr(op2addr), get_gpr_b7(r1));
7196 store(mkexpr(op2addr), get_gpr_b3(r1));
7210 store(mkexpr(op2addr), get_gpr_b4(r1));
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));
7237 store(mkexpr(op2addr), get_gpr_b4(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));
7264 store(mkexpr(op2addr), get_gpr_b0(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));
7285 store(mkexpr(op2addr), get_gpr_hw3(r1));
7293 store(mkexpr(op2addr), get_gpr_hw3(r1));
7310 store(mkexpr(op2addr), get_gpr_hw1(r1));
7318 store(mkexpr(op2addr), get_gpr_w0(r1));
7327 store(mkexpr(op2addr), get_gpr_w1(r1));
7336 store(mkexpr(op2addr), get_gpr_dw0(r1));
7344 store(mkexpr(op2addr), get_gpr_dw0(r1));
7345 store(binop(Iop_Add64, mkexpr(op2addr), mkU64(8)), get_gpr_dw0(r1 + 1));
7353 store(mkexpr(op2addr), get_gpr_b7(r1));
7354 store(binop(Iop_Add64, mkexpr(op2addr), mkU64(1)), get_gpr_b6(r1));
7362 store(mkexpr(op2addr), get_gpr_b7(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));
7373 store(mkexpr(op2addr), get_gpr_b7(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)));
7396 put_gpr_w1(r1, mkexpr(result));
7410 assign(result, binop(Iop_Sub64, mkexpr(op1), mkexpr(op2)));
7412 put_gpr_dw0(r1, mkexpr(result));
7426 assign(result, binop(Iop_Sub64, mkexpr(op1), mkexpr(op2)));
7428 put_gpr_dw0(r1, mkexpr(result));
7442 assign(result, binop(Iop_Sub32, mkexpr(op2), mkexpr(op3)));
7444 put_gpr_w1(r1, mkexpr(result));
7458 assign(result, binop(Iop_Sub64, mkexpr(op2), mkexpr(op3)));
7460 put_gpr_dw0(r1, mkexpr(result));
7473 assign(op2, load(Ity_I32, mkexpr(op2addr)));
7474 assign(result, binop(Iop_Sub32, mkexpr(op1), mkexpr(op2)));
7476 put_gpr_w1(r1, mkexpr(result));
7489 assign(op2, load(Ity_I32, mkexpr(op2addr)));
7490 assign(result, binop(Iop_Sub32, mkexpr(op1), mkexpr(op2)));
7492 put_gpr_w1(r1, mkexpr(result));
7505 assign(op2, load(Ity_I64, mkexpr(op2addr)));
7506 assign(result, binop(Iop_Sub64, mkexpr(op1), mkexpr(op2)));
7508 put_gpr_dw0(r1, mkexpr(result));
7521 assign(op2, unop(Iop_32Sto64, load(Ity_I32, mkexpr(op2addr))));
7522 assign(result, binop(Iop_Sub64, mkexpr(op1), mkexpr(op2)));
7524 put_gpr_dw0(r1, mkexpr(result));
7537 assign(op2, unop(Iop_16Sto32, load(Ity_I16, mkexpr(op2addr))));
7538 assign(result, binop(Iop_Sub32, mkexpr(op1), mkexpr(op2)));
7540 put_gpr_w1(r1, mkexpr(result));
7553 assign(op2, unop(Iop_16Sto32, load(Ity_I16, mkexpr(op2addr))));
7554 assign(result, binop(Iop_Sub32, mkexpr(op1), mkexpr(op2)));
7556 put_gpr_w1(r1, mkexpr(result));
7570 assign(result, binop(Iop_Sub32, mkexpr(op2), mkexpr(op3)));
7572 put_gpr_w0(r1, mkexpr(result));
7586 assign(result, binop(Iop_Sub32, mkexpr(op2), mkexpr(op3)));
7588 put_gpr_w0(r1, mkexpr(result));
7602 assign(result, binop(Iop_Sub32, mkexpr(op1), mkexpr(op2)));
7604 put_gpr_w1(r1, mkexpr(result));
7618 assign(result, binop(Iop_Sub64, mkexpr(op1), mkexpr(op2)));
7620 put_gpr_dw0(r1, mkexpr(result));
7634 assign(result, binop(Iop_Sub64, mkexpr(op1), mkexpr(op2)));
7636 put_gpr_dw0(r1, mkexpr(result));
7650 assign(result, binop(Iop_Sub32, mkexpr(op2), mkexpr(op3)));
7652 put_gpr_w1(r1, mkexpr(result));
7666 assign(result, binop(Iop_Sub64, mkexpr(op2), mkexpr(op3)));
7668 put_gpr_dw0(r1, mkexpr(result));
7681 assign(op2, load(Ity_I32, mkexpr(op2addr)));
7682 assign(result, binop(Iop_Sub32, mkexpr(op1), mkexpr(op2)));
7684 put_gpr_w1(r1, mkexpr(result));
7697 assign(op2, load(Ity_I32, mkexpr(op2addr)));
7698 assign(result, binop(Iop_Sub32, mkexpr(op1), mkexpr(op2)));
7700 put_gpr_w1(r1, mkexpr(result));
7713 assign(op2, load(Ity_I64, mkexpr(op2addr)));
7714 assign(result, binop(Iop_Sub64, mkexpr(op1), mkexpr(op2)));
7716 put_gpr_dw0(r1, mkexpr(result));
7729 assign(op2, unop(Iop_32Uto64, load(Ity_I32, mkexpr(op2addr))));
7730 assign(result, binop(Iop_Sub64, mkexpr(op1), mkexpr(op2)));
7732 put_gpr_dw0(r1, mkexpr(result));
7746 assign(result, binop(Iop_Sub32, mkexpr(op1), mkU32(op2)));
7749 put_gpr_w1(r1, mkexpr(result));
7763 assign(result, binop(Iop_Sub64, mkexpr(op1), mkU64(op2)));
7766 put_gpr_dw0(r1, mkexpr(result));
7780 assign(result, binop(Iop_Sub32, mkexpr(op2), mkexpr(op3)));
7782 put_gpr_w0(r1, mkexpr(result));
7796 assign(result, binop(Iop_Sub32, mkexpr(op2), mkexpr(op3)));
7798 put_gpr_w0(r1, mkexpr(result));
7815 assign(result, binop(Iop_Sub32, binop(Iop_Sub32, mkexpr(op1), mkexpr(op2)),
7816 mkexpr(borrow_in)));
7818 put_gpr_w1(r1, mkexpr(result));
7835 assign(result, binop(Iop_Sub64, binop(Iop_Sub64, mkexpr(op1), mkexpr(op2)),
7836 mkexpr(borrow_in)));
7838 put_gpr_dw0(r1, mkexpr(result));
7852 assign(op2, load(Ity_I32, mkexpr(op2addr)));
7855 assign(result, binop(Iop_Sub32, binop(Iop_Sub32, mkexpr(op1), mkexpr(op2)),
7856 mkexpr(borrow_in)));
7858 put_gpr_w1(r1, mkexpr(result));
7872 assign(op2, load(Ity_I64, mkexpr(op2addr)));
7875 assign(result, binop(Iop_Sub64, binop(Iop_Sub64, mkexpr(op1), mkexpr(op2)),
7876 mkexpr(borrow_in)));
7878 put_gpr_dw0(r1, mkexpr(result));
7893 system_call(mkexpr(sysno));
7905 assign(value, load(Ity_I8, mkexpr(op1addr)));
7919 assign(value, load(Ity_I8, mkexpr(op1addr)));
8018 put_fpr_w0(r1, load(Ity_F32, mkexpr(op2addr)));
8026 put_fpr_dw0(r1, load(Ity_F64, mkexpr(op2addr)));
8034 put_fpr_w0(r1, load(Ity_F32, mkexpr(op2addr)));
8042 put_fpr_dw0(r1, load(Ity_F64, mkexpr(op2addr)));
8050 put_fpc_w0(load(Ity_I32, mkexpr(op2addr)));
8087 binop(Iop_And32, unop(Iop_64to32, mkexpr(op2addr)), mkU32(mask)))
8104 store(mkexpr(op2addr), get_fpr_w0(r1));
8112 store(mkexpr(op2addr), get_fpr_dw0(r1));
8120 store(mkexpr(op2addr), get_fpr_w0(r1));
8128 store(mkexpr(op2addr), get_fpr_dw0(r1));
8136 store(mkexpr(op2addr), get_fpc_w0());
8150 assign(result, triop(Iop_AddF32, mkU32(Irrm_NEAREST), mkexpr(op1),
8151 mkexpr(op2)));
8153 put_fpr_w0(r1, mkexpr(result));
8167 assign(result, triop(Iop_AddF64, mkU32(Irrm_NEAREST), mkexpr(op1),
8168 mkexpr(op2)));
8170 put_fpr_dw0(r1, mkexpr(result));
8183 assign(op2, load(Ity_F32, mkexpr(op2addr)));
8184 assign(result, triop(Iop_AddF32, mkU32(Irrm_NEAREST), mkexpr(op1),
8185 mkexpr(op2)));
8187 put_fpr_w0(r1, mkexpr(result));
8200 assign(op2, load(Ity_F64, mkexpr(op2addr)));
8201 assign(result, triop(Iop_AddF64, mkU32(Irrm_NEAREST), mkexpr(op1),
8202 mkexpr(op2)));
8204 put_fpr_dw0(r1, mkexpr(result));
8215 put_fpr_w0(r1, binop(Iop_I32StoF32, mkU32(Irrm_NEAREST), mkexpr(op2)));
8226 put_fpr_dw0(r1, unop(Iop_I32StoF64, 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)));
8261 mkexpr(op)));
8262 put_gpr_w1(r1, mkexpr(result));
8276 mkexpr(op)));
8277 put_gpr_w1(r1, mkexpr(result));
8291 mkexpr(op)));
8292 put_gpr_dw0(r1, mkexpr(result));
8306 mkexpr(op)));
8307 put_gpr_dw0(r1, mkexpr(result));
8322 assign(result, triop(Iop_DivF32, mkU32(Irrm_NEAREST), mkexpr(op1),
8323 mkexpr(op2)));
8324 put_fpr_w0(r1, mkexpr(result));
8338 assign(result, triop(Iop_DivF64, mkU32(Irrm_NEAREST), mkexpr(op1),
8339 mkexpr(op2)));
8340 put_fpr_dw0(r1, mkexpr(result));
8353 assign(op2, load(Ity_F32, mkexpr(op2addr)));
8354 assign(result, triop(Iop_DivF32, mkU32(Irrm_NEAREST), mkexpr(op1),
8355 mkexpr(op2)));
8356 put_fpr_w0(r1, mkexpr(result));
8369 assign(op2, load(Ity_F64, mkexpr(op2addr)));
8370 assign(result, triop(Iop_DivF64, mkU32(Irrm_NEAREST), mkexpr(op1),
8371 mkexpr(op2)));
8372 put_fpr_dw0(r1, mkexpr(result));
8383 put_fpr_w0(r1, mkexpr(result));
8395 put_fpr_dw0(r1, mkexpr(result));
8407 put_fpr_w0(r1, mkexpr(result));
8419 put_fpr_dw0(r1, mkexpr(result));
8431 put_fpr_dw0(r1, unop(Iop_F32toF64, mkexpr(op)));
8441 assign(op, load(Ity_F32, mkexpr(op2addr)));
8442 put_fpr_dw0(r1, unop(Iop_F32toF64, mkexpr(op)));
8453 put_fpr_w0(r1, binop(Iop_F64toF32, mkU32(Irrm_NEAREST), mkexpr(op)));
8467 assign(result, triop(Iop_MulF32, mkU32(Irrm_NEAREST), mkexpr(op1),
8468 mkexpr(op2)));
8469 put_fpr_w0(r1, mkexpr(result));
8483 assign(result, triop(Iop_MulF64, mkU32(Irrm_NEAREST), mkexpr(op1),
8484 mkexpr(op2)));
8485 put_fpr_dw0(r1, mkexpr(result));
8498 assign(op2, load(Ity_F32, mkexpr(op2addr)));
8499 assign(result, triop(Iop_MulF32, mkU32(Irrm_NEAREST), mkexpr(op1),
8500 mkexpr(op2)));
8501 put_fpr_w0(r1, mkexpr(result));
8514 assign(op2, load(Ity_F64, mkexpr(op2addr)));
8515 assign(result, triop(Iop_MulF64, mkU32(Irrm_NEAREST), mkexpr(op1),
8516 mkexpr(op2)));
8517 put_fpr_dw0(r1, mkexpr(result));
8531 assign(result, triop(Iop_SubF32, mkU32(Irrm_NEAREST), mkexpr(op1),
8532 mkexpr(op2)));
8534 put_fpr_w0(r1, mkexpr(result));
8548 assign(result, triop(Iop_SubF64, mkU32(Irrm_NEAREST), mkexpr(op1),
8549 mkexpr(op2)));
8551 put_fpr_dw0(r1, mkexpr(result));
8564 assign(op2, load(Ity_F32, mkexpr(op2addr)));
8565 assign(result, triop(Iop_SubF32, mkU32(Irrm_NEAREST), mkexpr(op1),
8566 mkexpr(op2)));
8568 put_fpr_w0(r1, mkexpr(result));
8581 assign(op2, load(Ity_F64, mkexpr(op2addr)));
8582 assign(result, triop(Iop_SubF64, mkU32(Irrm_NEAREST), mkexpr(op1),
8583 mkexpr(op2)));
8585 put_fpr_dw0(r1, mkexpr(result));
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),
8628 mkexpr(len2)), mkU32(0)));
8636 mkite(binop(Iop_CmpEQ32, mkexpr(len1), mkU32(0)),
8637 mkU64(guest_IA_curr_instr), mkexpr(addr1)));
8639 mkite(binop(Iop_CmpEQ32, mkexpr(len1), mkU32(0)),
8640 mkexpr(pad), load(Ity_I8, mkexpr(addr1_load))));
8643 mkite(binop(Iop_CmpEQ32, mkexpr(len2), mkU32(0)),
8644 mkU64(guest_IA_curr_instr), mkexpr(addr2)));
8646 mkite(binop(Iop_CmpEQ32, mkexpr(len2), mkU32(0)),
8647 mkexpr(pad), load(Ity_I8, mkexpr(addr2_load))));
8651 next_insn_if(binop(Iop_CmpNE8, mkexpr(single1), mkexpr(single2)));
8655 mkite(binop(Iop_CmpEQ32, mkexpr(len1), mkU32(0)),
8656 mkexpr(addr1),
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)),
8668 mkexpr(addr2),
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),
8704 mkexpr(len3)), mkU64(0)));
8710 mkite(binop(Iop_CmpEQ64, mkexpr(len1), mkU64(0)),
8711 mkU64(guest_IA_curr_instr), mkexpr(addr1)));
8715 mkite(binop(Iop_CmpEQ64, mkexpr(len3), mkU64(0)),
8716 mkU64(guest_IA_curr_instr), mkexpr(addr3)));
8719 mkite(binop(Iop_CmpEQ64, mkexpr(len1), mkU64(0)),
8720 unop(Iop_64to8, mkexpr(pad2)),
8721 load(Ity_I8, mkexpr(addr1_load))));
8724 mkite(binop(Iop_CmpEQ64, mkexpr(len3), mkU64(0)),
8725 unop(Iop_64to8, mkexpr(pad2)),
8726 load(Ity_I8, mkexpr(addr3_load))));
8730 next_insn_if(binop(Iop_CmpNE8, mkexpr(single1), mkexpr(single3)));
8734 mkite(binop(Iop_CmpEQ64, mkexpr(len1), mkU64(0)),
8735 mkexpr(addr1),
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)),
8744 mkexpr(addr3),
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),
8789 mkexpr(counter))));
8790 assign(current2, load(Ity_I8, binop(Iop_Add64, mkexpr(start2),
8791 mkexpr(counter))));
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)));
8834 assign(op1, load(Ity_I8, mkexpr(result)));
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)));
8870 assign(torun, load(Ity_I64, mkexpr(addr2)));
8872 assign(cond, binop(Iop_CmpNE64, mkexpr(torun), mkU64(last_execute_target)));
8875 mkIRExprVec_1(mkexpr(torun)));
8876 d->guard = mkexpr(cond);
8883 restart_if(mkexpr(cond));
8908 mkIRExprVec_1(load(Ity_I64, mkexpr(addr2))));
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),
8980 mkIRExprVec_1(mkexpr(torun)));
8981 d->guard = mkexpr(cond);
8987 restart_if(mkexpr(cond));
9043 put_gpr_dw0(r2, binop(Iop_Sub64, mkexpr(address), mkexpr(counter)));
9044 next_insn_if(binop(Iop_CmpEQ64, mkexpr(address), mkexpr(next)));
9046 assign(byte, load(Ity_I8, mkexpr(address)));
9051 put_gpr_dw0(r1, mkexpr(address));
9052 next_insn_if(binop(Iop_CmpEQ8, mkexpr(delim), mkexpr(byte)));
9055 put_counter_dw0(binop(Iop_Add64, mkexpr(counter), mkU64(1)));
9056 put_gpr_dw0(r1, mkexpr(next));
9057 put_gpr_dw0(r2, binop(Iop_Add64, mkexpr(address), mkU64(1)));
9079 assign(byte1, load(Ity_I8, mkexpr(address1)));
9080 assign(byte2, load(Ity_I8, mkexpr(address2)));
9084 put_gpr_dw0(r1, binop(Iop_Sub64, mkexpr(address1), mkexpr(counter)));
9085 put_gpr_dw0(r2, binop(Iop_Sub64, mkexpr(address2), mkexpr(counter)));
9088 binop(Iop_Xor8, mkexpr(byte1), mkexpr(end)),
9089 binop(Iop_Xor8, mkexpr(byte2), mkexpr(end)))));
9091 put_gpr_dw0(r1, mkexpr(address1));
9092 put_gpr_dw0(r2, mkexpr(address2));
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)),
9105 unop(Iop_8Uto32, mkexpr(byte2))));
9109 next_insn_if(binop(Iop_CmpLT32U, unop(Iop_8Uto32, mkexpr(byte2)),
9110 unop(Iop_8Uto32, mkexpr(byte1))));
9113 put_counter_dw0(binop(Iop_Add64, mkexpr(counter), mkU64(1)));
9128 assign(addr, mkexpr(op2addr));
9134 put_gpr_w1(reg, load(Ity_I32, mkexpr(addr)));
9136 assign(addr, binop(Iop_Add64, mkexpr(old), mkU64(4)));
9163 assign(addr, mkexpr(op2addr));
9169 put_gpr_w0(reg, load(Ity_I32, mkexpr(addr)));
9171 assign(addr, binop(Iop_Add64, mkexpr(old), mkU64(4)));
9184 assign(addr, mkexpr(op2addr));
9190 put_gpr_dw0(reg, load(Ity_I64, mkexpr(addr)));
9192 assign(addr, binop(Iop_Add64, mkexpr(old), mkU64(8)));
9205 assign(addr, mkexpr(op2addr));
9211 store(mkexpr(addr), get_gpr_w1(reg));
9213 assign(addr, binop(Iop_Add64, mkexpr(old), mkU64(4)));
9240 assign(addr, mkexpr(op2addr));
9246 store(mkexpr(addr), get_gpr_w0(reg));
9248 assign(addr, binop(Iop_Add64, mkexpr(old), mkU64(4)));
9261 assign(addr, mkexpr(op2addr));
9267 store(mkexpr(addr), get_gpr_dw0(reg));
9269 assign(addr, binop(Iop_Add64, mkexpr(old), mkU64(8)));
9287 assign(addr1, binop(Iop_Add64, mkexpr(start1),
9288 unop(Iop_32Uto64, mkexpr(counter))));
9290 assign(old1, load(Ity_I8, mkexpr(addr1)));
9291 assign(old2, load(Ity_I8, binop(Iop_Add64, mkexpr(start2),
9292 unop(Iop_32Uto64,mkexpr(counter)))));
9293 assign(new1, binop(op, mkexpr(old1), mkexpr(old2)));
9297 store(mkexpr(addr1),
9298 mkite(binop(Iop_CmpEQ64, mkexpr(start1), mkexpr(start2)),
9299 mkU8(0), mkexpr(new1)));
9301 store(mkexpr(addr1), mkexpr(new1));
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)));
9338 store(binop(Iop_Add64, mkexpr(start), mkU64(i)), mkU8(0));
9343 assign(addr, binop(Iop_Add64, mkexpr(start),
9344 unop(Iop_32Uto64, mkexpr(counter))));
9346 store(mkexpr(addr), mkU8(0));
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),
9431 unop(Iop_32Uto64, mkexpr(len1))))));
9435 mkexpr(addr1),
9436 binop(Iop_Add64, mkexpr(addr2),
9437 unop(Iop_32Uto64, mkexpr(len2))))));
9441 binop(Iop_And32, mkexpr(cond1), mkexpr(cond2)),
9442 mkexpr(cond3)),
9448 mkite(binop(Iop_CmpEQ32, mkexpr(len2), mkU32(0)),
9449 mkU64(guest_IA_curr_instr), mkexpr(addr2)));
9451 mkite(binop(Iop_CmpEQ32, mkexpr(len2), mkU32(0)),
9452 mkexpr(pad), load(Ity_I8, mkexpr(addr2_load))));
9454 store(mkexpr(addr1), mkexpr(single));
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)),
9463 mkexpr(addr2),
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)),
9505 mkU64(guest_IA_curr_instr), mkexpr(addr3)));
9508 mkite(binop(Iop_CmpEQ64, mkexpr(len3), mkU64(0)),
9509 unop(Iop_64to8, mkexpr(pad2)),
9510 load(Ity_I8, mkexpr(addr3_load))));
9511 store(mkexpr(addr1), mkexpr(single));
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)),
9519 mkexpr(addr3),
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)));
9569 assign(result, binop(op, mkexpr(op1), mkexpr(op2)));
9570 put_gpr_w1(r1, unop(Iop_64HIto32, mkexpr(result))); // remainder
9571 put_gpr_w1(r1 + 1, unop(Iop_64to32, mkexpr(result))); // quotient
9583 assign(result, binop(op, mkexpr(op1), mkexpr(op2)));
9584 put_gpr_dw0(r1, unop(Iop_128HIto64, mkexpr(result))); // remainder
9585 put_gpr_dw0(r1 + 1, unop(Iop_128to64, mkexpr(result))); // quotient
9595 assign(result, binop(op, mkexpr(op1), mkexpr(op2)));
9596 put_gpr_dw0(r1, unop(Iop_128HIto64, mkexpr(result))); // remainder
9597 put_gpr_dw0(r1 + 1, unop(Iop_128to64, mkexpr(result))); // quotient
9617 assign(op2, load(Ity_I32, mkexpr(op2addr)));
9641 assign(op2, load(Ity_I32, mkexpr(op2addr)));
9653 assign(op2, load(Ity_I64, mkexpr(op2addr)));
9689 assign(op2, load(Ity_I64, mkexpr(op2addr)));
9713 assign(op2, unop(Iop_32Sto64, load(Ity_I32, mkexpr(op2addr))));
9726 assign(addr, mkexpr(op2addr));
9732 put_ar_w0(reg, load(Ity_I32, mkexpr(addr)));
9734 assign(addr, binop(Iop_Add64, mkexpr(old), mkU64(4)));
9761 assign(addr, mkexpr(op2addr));
9767 store(mkexpr(addr), get_ar_w0(reg));
9769 assign(addr, binop(Iop_Add64, mkexpr(old), mkU64(4)));
9808 Iend_BE, mkexpr(op2addr),
9809 NULL, mkexpr(op1), /* expected value */
9810 NULL, mkexpr(op3) /* new value */);
9814 assign(result, binop(Iop_Sub32, mkexpr(op1), mkexpr(old_mem)));
9820 put_gpr_w1(r1, mkite(mkexpr(nequal), mkexpr(old_mem), mkexpr(op1)));
9821 yield_if(mkexpr(nequal));
9856 Iend_BE, mkexpr(op2addr),
9857 NULL, mkexpr(op1), /* expected value */
9858 NULL, mkexpr(op3) /* new value */);
9862 assign(result, binop(Iop_Sub64, mkexpr(op1), mkexpr(old_mem)));
9868 put_gpr_dw0(r1, mkite(mkexpr(nequal), mkexpr(old_mem), mkexpr(op1)));
9869 yield_if(mkexpr(nequal));
9896 Iend_BE, mkexpr(op2addr),
9897 mkexpr(op1_high), mkexpr(op1_low), /* expected value */
9898 mkexpr(op3_high), mkexpr(op3_low) /* new value */);
9905 binop(Iop_Xor32, mkexpr(op1_high), mkexpr(old_mem_high)),
9906 binop(Iop_Xor32, mkexpr(op1_low), mkexpr(old_mem_low))),
9914 put_gpr_w1(r1, mkite(mkexpr(nequal), mkexpr(old_mem_high), mkexpr(op1_high)));
9915 put_gpr_w1(r1+1, mkite(mkexpr(nequal), mkexpr(old_mem_low), mkexpr(op1_low)));
9916 yield_if(mkexpr(nequal));
9956 Iend_BE, mkexpr(op2addr),
9957 mkexpr(op1_high), mkexpr(op1_low), /* expected value */
9958 mkexpr(op3_high), mkexpr(op3_low) /* new value */);
9965 binop(Iop_Xor64, mkexpr(op1_high), mkexpr(old_mem_high)),
9966 binop(Iop_Xor64, mkexpr(op1_low), mkexpr(old_mem_low))),
9974 put_gpr_dw0(r1, mkite(mkexpr(nequal), mkexpr(old_mem_high), mkexpr(op1_high)));
9975 put_gpr_dw0(r1+1, mkite(mkexpr(nequal), mkexpr(old_mem_low), mkexpr(op1_low)));
9976 yield_if(mkexpr(nequal));
9993 assign(result, triop(Iop_AddF128, mkU32(Irrm_NEAREST), mkexpr(op1),
9994 mkexpr(op2)));
9995 put_fpr_pair(r1, mkexpr(result));
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)),
10037 assign(cc0, mkexpr(b0));
10038 assign(cc1, binop(Iop_Or32, mkexpr(b2),
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)));
10110 assign(op2, load(Ity_F32, mkexpr(op2addr)));
10111 assign(cc_vex, binop(Iop_CmpF32, mkexpr(op1), mkexpr(op2)));
10128 assign(op2, load(Ity_F64, mkexpr(op2addr)));
10129 assign(cc_vex, binop(Iop_CmpF64, mkexpr(op1), mkexpr(op2)));
10143 put_fpr_pair(r1, unop(Iop_I32StoF128, mkexpr(op2)));
10154 put_fpr_pair(r1, unop(Iop_I64StoF128, mkexpr(op2)));
10167 mkexpr(op)));
10168 put_gpr_w1(r1, mkexpr(result));
10182 mkexpr(op)));
10183 put_gpr_dw0(r1, mkexpr(result));
10198 assign(result, triop(Iop_DivF128, mkU32(Irrm_NEAREST), mkexpr(op1),
10199 mkexpr(op2)));
10200 put_fpr_pair(r1, mkexpr(result));
10211 put_fpr_pair(r1, mkexpr(result));
10223 put_fpr_pair(r1, mkexpr(result));
10235 put_fpr_pair(r1, unop(Iop_F64toF128, mkexpr(op)));
10246 put_fpr_pair(r1, unop(Iop_F32toF128, mkexpr(op)));
10256 assign(op, load(Ity_F64, mkexpr(op2addr)));
10257 put_fpr_pair(r1, unop(Iop_F64toF128, mkexpr(op)));
10267 assign(op, load(Ity_F32, mkexpr(op2addr)));
10268 put_fpr_pair(r1, unop(Iop_F32toF128, mkexpr(op)));
10279 put_fpr_w0(r1, mkexpr(result));
10291 put_fpr_dw0(r1, mkexpr(result));
10303 put_fpr_pair(r1, mkexpr(result));
10315 put_fpr_w0(r1, mkexpr(result));
10327 put_fpr_dw0(r1, mkexpr(result));
10339 put_fpr_pair(r1, mkexpr(result));
10351 put_fpr_dw0(r1, mkexpr(result));
10362 put_fpr_w0(r1, mkexpr(result));
10376 assign(result, triop(Iop_MulF128, mkU32(Irrm_NEAREST), mkexpr(op1),
10377 mkexpr(op2)));
10378 put_fpr_pair(r1, mkexpr(result));
10404 IRExpr *op2 = load(Ity_F32, mkexpr(op2addr));
10415 IRExpr *op2 = load(Ity_F64, mkexpr(op2addr));
10444 IRExpr *op2 = load(Ity_F32, mkexpr(op2addr));
10455 IRExpr *op2 = load(Ity_F64, mkexpr(op2addr));
10469 put_fpr_w0(r1, mkexpr(result));
10480 put_fpr_dw0(r1, mkexpr(result));
10491 put_fpr_pair(r1, mkexpr(result));
10501 assign(op, load(Ity_F32, mkexpr(op2addr)));
10502 put_fpr_w0(r1, binop(Iop_SqrtF32, mkU32(Irrm_NEAREST), mkexpr(op)));
10512 assign(op, load(Ity_F64, mkexpr(op2addr)));
10513 put_fpr_dw0(r1, binop(Iop_SqrtF64, mkU32(Irrm_NEAREST), mkexpr(op)));
10527 assign(result, triop(Iop_SubF128, mkU32(Irrm_NEAREST), mkexpr(op1),
10528 mkexpr(op2)));
10529 put_fpr_pair(r1, mkexpr(result));
10577 put_fpr_dw0(r1, mkexpr(result));
10588 put_fpr_dw0(r1, mkexpr(result));
10599 put_fpr_dw0(r1, mkexpr(result));
10631 put_fpr_dw0(r1, unop(Iop_ReinterpI64asF64, binop(Iop_Or64, mkexpr(value),
10632 mkexpr(sign))));
10656 put_gpr_w1(r1, s390_call_cvb(load(Ity_I64, mkexpr(op2addr))));
10664 put_gpr_w1(r1, s390_call_cvb(load(Ity_I64, mkexpr(op2addr))));
10688 store(mkexpr(op2addr), s390_call_cvd(unop(Iop_32Uto64, get_gpr_w1(r1))));
10696 store(mkexpr(op2addr), s390_call_cvd(get_gpr_w1(r1)));
10718 assign(not_zero, binop(Iop_Or64, mkexpr(input), mkU64(1)));
10719 assign(tmpnum, unop(Iop_Clz64, mkexpr(not_zero)));
10722 assign(num, mkite(binop(Iop_CmpEQ64, mkexpr(input), mkU64(0)),
10724 /* != 0 */ mkexpr(tmpnum)));
10726 put_gpr_dw0(r1, mkexpr(num));
10737 assign(shift_amount, unop(Iop_64to8, binop(Iop_Add64, mkexpr(num),
10741 mkite(binop(Iop_CmpLE64U, mkexpr(input), mkU64(1)),
10745 binop(Iop_Shl64, mkexpr(input),
10746 mkexpr(shift_amount)),
10747 mkexpr(shift_amount))));
10764 mkIRExprVec_1(mkexpr(op2addr)));
10766 d->mAddr = mkexpr(op2addr);
10770 mkexpr(cc), mkU64(0), mkU64(0));
10782 mkIRExprVec_1(mkexpr(op2addr)));
10784 d->mAddr = mkexpr(op2addr);
10788 mkexpr(cc), mkU64(0), mkU64(0));
10800 mkIRExprVec_1(mkexpr(op2addr)));
10802 d->mAddr = mkexpr(op2addr);
10806 mkexpr(cc), mkU64(0), mkU64(0));
10818 mkIRExprVec_1(mkexpr(op2addr)));
10829 d->mAddr = mkexpr(op2addr);
10836 s390_cc_thunk_fill(mkU64(S390_CC_OP_SET), mkexpr(cc), mkU64(0), mkU64(0));
10862 next_insn_if(binop(Iop_CmpEQ64, mkexpr(len), mkU64(0)));
10866 assign(inc, mkite(binop(Iop_CmpLT64U, mkexpr(len), mkU64(4)),
10867 mkexpr(len), mkU64(4)));
10874 assign(mask, mkite(binop(Iop_CmpLT64U, mkexpr(len), mkU64(4)),
10883 mkexpr(len), mkU64(3))),
10887 assign(op, load(Ity_I32, mkexpr(addr)));
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)),
10894 mkexpr(result)));
10896 put_gpr_w1(r1, mkexpr(result1));
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)));
10931 assign(op, load(Ity_I8, mkexpr(src_addr)));
10933 assign(result, binop(Iop_Add64, unop(Iop_8Uto64, mkexpr(op)),
10934 mkexpr(tab_addr)));
10935 assign(op1, load(Ity_I8, mkexpr(result)));
10939 next_insn_if(binop(Iop_CmpEQ8, mkexpr(op1), mkexpr(test_byte)));
10941 store(get_gpr_dw0(r1), mkexpr(op1));
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)));
10978 assign(op, load(Ity_I16, mkexpr(src_addr)));
10980 assign(result, binop(Iop_Add64, unop(Iop_16Uto64, mkexpr(op)),
10981 mkexpr(tab_addr)));
10983 assign(op1, load(Ity_I8, mkexpr(result)));
10987 next_insn_if(binop(Iop_CmpEQ8, mkexpr(op1), mkexpr(test_byte)));
10989 store(get_gpr_dw0(r1), mkexpr(op1));
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)),
11029 mkexpr(tab_addr)));
11030 assign(op1, load(Ity_I16, mkexpr(result)));
11034 next_insn_if(binop(Iop_CmpEQ16, mkexpr(op1), mkexpr(test_byte)));
11036 store(get_gpr_dw0(r1), mkexpr(op1));
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)),
11076 mkexpr(tab_addr)));
11077 assign(op1, load(Ity_I16, mkexpr(result)));
11081 next_insn_if(binop(Iop_CmpEQ16, mkexpr(op1), mkexpr(test_byte)));
11084 store(get_gpr_dw0(r1), mkexpr(op1));
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)));
11129 assign(op, load(Ity_I8, mkexpr(src_addr)));
11132 next_insn_if(binop(Iop_CmpEQ8, mkexpr(op), mkexpr(test_byte)));
11134 assign(result, binop(Iop_Add64, unop(Iop_8Uto64, mkexpr(op)),
11135 mkexpr(tab_addr)));
11137 assign(op1, load(Ity_I8, mkexpr(result)));
11139 store(get_gpr_dw0(r1), mkexpr(op1));
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)));
11183 assign(srcval, unop(Iop_16Uto32, load(Ity_I16, mkexpr(addr2))));
11188 IRExpr *flag1 = mkite(binop(Iop_CmpLE32U, mkU32(0xd800), mkexpr(srcval)),
11190 IRExpr *flag2 = mkite(binop(Iop_CmpLE32U, mkexpr(srcval), mkU32(0xdbff)),
11197 mkite(binop(Iop_CmpLT64U, mkexpr(len2), mkU64(4)), mkU32(1), mkU32(0));
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)),
11215 assign(retval, s390_call_cu21(unop(Iop_32Uto64, mkexpr(srcval)),
11216 unop(Iop_32Uto64, mkexpr(low_surrogate))));
11222 binop(Iop_And64, mkexpr(retval), mkU64(0xff));
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)));
11249 mkIRExprVec_3(mkexpr(addr1), mkexpr(data),
11250 mkexpr(num_bytes)));
11251 d->guard = binop(Iop_CmpEQ64, mkexpr(num_bytes), mkU64(i));
11253 d->mAddr = mkexpr(addr1);
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)));
11310 mkexpr(addr2))));
11315 IRExpr *flag1 = mkite(binop(Iop_CmpLE32U, mkU32(0xd800), mkexpr(srcval)),
11317 IRExpr *flag2 = mkite(binop(Iop_CmpLE32U, mkexpr(srcval), mkU32(0xdbff)),
11324 mkite(binop(Iop_CmpLT64U, mkexpr(len2), mkU64(4)), mkU32(1), mkU32(0));
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)),
11343 assign(retval, s390_call_cu24(unop(Iop_32Uto64, mkexpr(srcval)),
11344 unop(Iop_32Uto64, mkexpr(low_surrogate))));
11350 binop(Iop_And64, mkexpr(retval), mkU64(0xff));
11358 next_insn_if(binop(Iop_CmpLT64U, mkexpr(len1), mkU64(4)));
11361 IRExpr *data = unop(Iop_64to32, binop(Iop_Shr64, mkexpr(retval), mkU8(8)));
11363 store(mkexpr(addr1), data);
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)));
11417 assign(srcval, load(Ity_I32, mkexpr(addr2)));
11421 assign(retval, s390_call_cu42(unop(Iop_32Uto64, mkexpr(srcval))));
11425 IRExpr *invalid_character = binop(Iop_And64, mkexpr(retval), mkU64(0xff));
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)));
11454 mkIRExprVec_3(mkexpr(addr1), mkexpr(data),
11455 mkexpr(num_bytes)));
11456 d->guard = binop(Iop_CmpEQ64, mkexpr(num_bytes), mkU64(i));
11458 d->mAddr = mkexpr(addr1);
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)));
11511 assign(srcval, load(Ity_I32, mkexpr(addr2)));
11515 assign(retval, s390_call_cu41(unop(Iop_32Uto64, mkexpr(srcval))));
11519 IRExpr *invalid_character = binop(Iop_And64, mkexpr(retval), mkU64(0xff));
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)));
11545 mkIRExprVec_3(mkexpr(addr1), mkexpr(data),
11546 mkexpr(num_bytes)));
11547 d->guard = binop(Iop_CmpEQ64, mkexpr(num_bytes), mkU64(i));
11549 d->mAddr = mkexpr(addr1);
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)));
11634 assign(byte1, unop(Iop_8Uto64, load(Ity_I8, mkexpr(addr2))));
11638 assign(retval1, s390_call_cu12_cu14_helper1(mkexpr(byte1),
11642 IRExpr *is_invalid = unop(Iop_64to1, mkexpr(retval1));
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));
11671 binop(Iop_Shl64, mkexpr(num_src_bytes), mkU8(1)),
11676 assign(retval2, s390_call_cu12_helper2(mkexpr(byte1), byte2, byte3,
11679 assign(retval2, s390_call_cu14_helper2(mkexpr(byte1), byte2, byte3,
11685 is_invalid = unop(Iop_64to1, mkexpr(retval2));
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)));
11713 mkIRExprVec_3(mkexpr(addr1), mkexpr(data),
11714 mkexpr(num_bytes)));
11715 d->guard = binop(Iop_CmpEQ64, mkexpr(num_bytes), mkU64(i));
11717 d->mAddr = mkexpr(addr1);
11723 store(mkexpr(addr1), unop(Iop_64to32, mkexpr(data)));
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)));