Home | History | Annotate | Download | only in priv

Lines Matching refs:binop

300 static IRExpr* binop ( IROp op, IRExpr* a1, IRExpr* a2 )
352 binop(Iop_Or32,
353 binop(Iop_Shl32, mkexpr(src), mkU8(32 - rot)),
354 binop(Iop_Shr32, mkexpr(src), mkU8(rot)));
359 return binop(Iop_64HLtoV128, mkU64(i), mkU64(i));
367 return binop(Iop_And32, e, mkU32(~3));
541 // e = binop(Iop_And32, e, mkU32(~3));
923 assign(nyu, binop(Iop_Or32, mkexpr(old), e) );
948 assign(masked, binop(Iop_Shr32, e, mkU8(lowbits_to_ignore)));
979 assign(ge10, binop(Iop_And32, mkexpr(t32), mkU32(0x00008000)));
980 assign(ge32, binop(Iop_And32, mkexpr(t32), mkU32(0x80000000)));
997 assign(ge0, binop
998 assign(ge1, binop(Iop_And32, mkexpr(t32), mkU32(0x00008000)));
999 assign(ge2, binop(Iop_And32, mkexpr(t32), mkU32(0x00800000)));
1000 assign(ge3, binop(Iop_And32, mkexpr(t32), mkU32(0x80000000)));
1034 binop(Iop_Shr32, IRExpr_Get(OFFB_FPSCR, Ity_I32), mkU8(22)));
1037 binop(Iop_Or32,
1038 binop(Iop_And32,
1039 binop(Iop_Shl32, mkexpr(armEncd), mkU8(1)),
1041 binop(Iop_And32,
1042 binop(Iop_Shr32, mkexpr(armEncd), mkU8(1)),
1104 binop(Iop_Or32, IRExpr_Get(OFFB_CC_OP, Ity_I32), cond),
1216 args1 = mkIRExprVec_4 ( binop(Iop_GetElem32x4, resL, mkU8(0)),
1217 binop(Iop_GetElem32x4, resL, mkU8(1)),
1218 binop(Iop_GetElem32x4, resR, mkU8(0)),
1219 binop(Iop_GetElem32x4, resR, mkU8(1)) );
1220 args2 = mkIRExprVec_4 ( binop(Iop_GetElem32x4, resL, mkU8(2)),
1221 binop(Iop_GetElem32x4, resL, mkU8(3)),
1222 binop(Iop_GetElem32x4, resR, mkU8(2)),
1223 binop(Iop_GetElem32x4, resR, mkU8(3)) );
1225 args1 = mkIRExprVec_4 ( binop(Iop_GetElem32x2, resL, mkU8(0)),
1226 binop(Iop_GetElem32x2, resL, mkU8(1)),
1227 binop(Iop_GetElem32x2, resR, mkU8(0)),
1228 binop(Iop_GetElem32x2, resR, mkU8(1)) );
1247 res = binop(Iop_Or32, call1, call2);
1254 binop(Iop_CmpNE32,
1255 binop(Iop_Or32,
1256 binop(Iop_Or32,
1257 binop(Iop_Xor32,
1260 binop(Iop_Xor32,
1263 binop(Iop_Or32,
1264 binop(Iop_Xor32,
1267 binop(Iop_Xor32,
1273 binop(Iop_CmpNE32,
1274 binop(Iop_Or32,
1275 binop(Iop_Xor32,
1278 binop(Iop_Xor32,
1293 binop(Iop_Or32,
1295 binop(Iop_Shl32,
1452 binop(Iop_CmpNE32, mkexpr(t), mkU32(0)),
1477 binop(Iop_Shr32, mkexpr(old_itstate), mkU8(8)));
1507 binop(Iop_Or32,
1509 binop(Iop_Shl32,
1511 binop(Iop_CmpNE32,
1518 = unop(Iop_1Uto32, binop(Iop_CmpNE32, get_GEFLAG32(0), mkU32(0)));
1520 = unop(Iop_1Uto32, binop(Iop_CmpNE32, get_GEFLAG32(1), mkU32(0)));
1522 = unop(Iop_1Uto32, binop(Iop_CmpNE32, get_GEFLAG32(2), mkU32(0)));
1524 = unop(Iop_1Uto32, binop(Iop_CmpNE32, get_GEFLAG32(3), mkU32(0)));
1527 binop(Iop_Or32,
1529 binop(Iop_Or32,
1530 binop(Iop_Or32,
1531 binop(Iop_Shl32, ge0, mkU8(16)),
1532 binop(Iop_Shl32, ge1, mkU8(17))),
1533 binop(Iop_Or32,
1534 binop(Iop_Shl32, ge2, mkU8(18)),
1535 binop(Iop_Shl32, ge3, mkU8(19))) )));
1549 assign(immT, binop(Iop_And32, mkexpr(apsrT), mkU32(0xF0000000)) );
1553 assign(qnewT, binop(Iop_And32, mkexpr(apsrT), mkU32(ARMG_CC_MASK_Q)));
1558 put_GEFLAG32(0, 0, binop(Iop_And32, mkexpr(apsrT), mkU32(1<<16)),
1560 put_GEFLAG32(1, 0, binop(Iop_And32, mkexpr(apsrT), mkU32(1<<17)),
1562 put_GEFLAG32(2, 0, binop(Iop_And32, mkexpr(apsrT), mkU32(1<<18)),
1564 put_GEFLAG32(3, 0, binop(Iop_And32, mkexpr(apsrT), mkU32(1<<19)),
1608 assign( node2, binop( Iop_CmpLT32S, mkexpr(node1), mkexpr(node0) ) );
1613 assign( node5, binop( Iop_CmpLT32S, mkexpr(node3), mkexpr(node4) ) );
1622 assign( *resQ, binop(Iop_Xor32, mkexpr(*res), mkexpr(regT)) );
1656 assign( node2, binop( Iop_CmpLT32S, mkexpr(node1), mkexpr(node0) ) );
1660 assign( node5, binop( Iop_CmpLT32S, mkexpr(node3), mkexpr(node4) ) );
1668 assign( *resQ, binop(Iop_Xor32, mkexpr(*res), mkexpr(regT)) );
1683 binop( Iop_Shr32,
1684 binop( Iop_And32,
1685 binop( Iop_Xor32, mkexpr(res), mkexpr(argL) ),
1686 binop( Iop_Xor32, mkexpr(res), mkexpr(argR) )),
1698 binop( Iop_Shr32,
1699 binop( Iop_And32,
1700 binop( Iop_Xor32, mkexpr(argL), mkexpr(argR) ),
1701 binop( Iop_Xor32, mkexpr(res), mkexpr(argL) )),
1747 binop(Iop_And32,
1748 binop(Iop_Shr32, mkexpr(rMt),
1753 binop(Iop_Shl32, mkexpr(rMt), mkU8(shift_amt)) );
1773 assign( amtT, binop(Iop_And32, mkexpr(rSt), mkU32(255)) );
1789 binop(Iop_CmpEQ32, mkexpr(amtT), mkU32(0))),
1792 binop(Iop_CmpLE32U, mkexpr(amtT), mkU32(32))),
1794 binop(Iop_And32,
1795 binop(Iop_Shr32,
1798 binop(Iop_And32,
1799 binop(Iop_Sub32,
1819 binop(
1821 binop(Iop_Shl32,
1824 binop(Iop_And32, mkexpr(rSt), mkU32(31)))),
1825 binop(Iop_Sar32,
1826 binop(Iop_Sub32,
1848 binop(Iop_And32,
1849 binop(Iop_Shr32, mkexpr(rMt), mkU8(31)),
1861 binop(Iop_And32,
1862 binop(Iop_Shr32, mkexpr(rMt),
1867 binop(Iop_Shr32, mkexpr(rMt), mkU8(shift_amt)) );
1887 assign( amtT, binop(Iop_And32, mkexpr(rSt), mkU32(255)) );
1901 binop(Iop_CmpEQ32, mkexpr(amtT), mkU32(0))),
1904 binop(Iop_CmpLE32U, mkexpr(amtT), mkU32(32))),
1906 binop(Iop_And32,
1907 binop(Iop_Shr32,
1910 binop(Iop_And32,
1911 binop(Iop_Sub32,
1931 binop(
1933 binop(Iop_Shr32,
1936 binop(Iop_And32, mkexpr(rSt), mkU32(31)))),
1937 binop(Iop_Sar32,
1938 binop(Iop_Sub32,
1960 binop(Iop_And32,
1961 binop(Iop_Shr32, mkexpr(rMt), mkU8(31)),
1964 assign( *res, binop(Iop_Sar32, mkexpr(rMt), mkU8(31)) );
1973 binop(Iop_And32,
1974 binop(Iop_Shr32, mkexpr(rMt),
1979 binop(Iop_Sar32, mkexpr(rMt), mkU8(shift_amt)) );
1999 assign( amtT, binop(Iop_And32, mkexpr(rSt), mkU32(255)) );
2013 binop(Iop_CmpEQ32, mkexpr(amtT), mkU32(0))),
2016 binop(Iop_CmpLE32U, mkexpr(amtT), mkU32(32))),
2017 binop(Iop_And32,
2018 binop(Iop_Shr32,
2024 binop(Iop_And32,
2025 binop(Iop_Shr32,
2028 binop(Iop_And32,
2029 binop(Iop_Sub32,
2046 binop(
2054 binop(Iop_CmpLT32U, mkexpr(amtT), mkU32(32))),
2074 assign( amtT, binop(Iop_And32, mkexpr(rSt), mkU32(255)) );
2076 assign( amt5T, binop(Iop_And32, mkexpr(rSt), mkU32(31)) );
2085 binop(Iop_And32,
2086 binop(Iop_Shr32,
2089 binop(Iop_And32,
2090 binop(Iop_Sub32,
2107 binop(Iop_Or32,
2108 binop(Iop_Shr32,
2112 binop(Iop_Shl32,
2115 binop(Iop_Sub32, mkU32(32), mkexpr(amt5T))
2182 binop(Iop_And32, mkexpr(rMt), mkU32(1)));
2186 binop(Iop_Or32,
2187 binop(Iop_Shl32, mkexpr(oldcT), mkU8(31)),
2188 binop(Iop_Shr32, mkexpr(rMt), mkU8(1))) );
2197 binop(Iop_And32,
2198 binop(Iop_Shr32, mkexpr(rMt),
2203 binop(Iop_Or32,
2204 binop(Iop_Shr32, mkexpr(rMt), mkU8(shift_amt)),
2205 binop(Iop_Shl32, mkexpr(rMt),
2385 binop( (bU == 1 ? Iop_Add32 : Iop_Sub32),
2409 index = binop(Iop_Shl32, getIRegA(rM), mkU8(imm5));
2417 index = binop(Iop_Shr32, getIRegA(rM), mkU8(imm5));
2426 index = binop(Iop_Sar32, getIRegA(rM), mkU8(31));
2429 index = binop(Iop_Sar32, getIRegA(rM), mkU8(imm5));
2440 index = binop(Iop_Or32,
2441 binop(Iop_Shl32, mkexpr(cflagT), mkU8(31)),
2442 binop(Iop_Shr32, mkexpr(rmT), mkU8(1)));
2448 binop(Iop_Or32,
2449 binop(Iop_Shl32, mkexpr(rmT), mkU8(32-imm5)),
2450 binop(Iop_Shr32, mkexpr(rmT), mkU8(imm5)));
2458 return binop(bU == 1 ? Iop_Add32 : Iop_Sub32,
2474 binop( (bU == 1 ? Iop_Add32 : Iop_Sub32),
2491 return binop(bU == 1 ? Iop_Add32 : Iop_Sub32,
2540 binop(Iop_Or32,
2541 binop(Iop_And32,
2542 binop(Iop_Shr32, mkexpr(irRes), mkU8(5)),
2544 binop(Iop_And32, mkexpr(irRes), mkU32(1))));
2548 binop(Iop_Add32,
2549 binop(Iop_Shr32,
2550 binop(Iop_Sub32,
2551 binop(Iop_Shl32,
2552 binop(Iop_Xor32, mkexpr(ix), mkU32(1)),
2560 binop(Iop_And32,
2561 binop(Iop_And32,
2563 binop(Iop_Shr32, mkexpr(ix), mkU8(1))),
2566 assign(nzcv, binop(Iop_Sub32, mkexpr(termL), mkexpr(termR)));
2721 binop(Iop_Or32,
2722 binop(Iop_Shl32,
2723 binop(Iop_And32, mkexpr(x0), mkU32(c1)),
2725 binop(Iop_Shr32,
2726 binop(Iop_And32, mkexpr(x0), mkU32(~c1)),
2730 binop(Iop_Or32,
2731 binop(Iop_Shl32,
2732 binop(Iop_And32, mkexpr(x1), mkU32(c2)),
2734 binop(Iop_Shr32,
2735 binop(Iop_And32, mkexpr(x1), mkU32(~c2)),
2739 binop(Iop_Or32,
2740 binop(Iop_Shl32,
2741 binop(Iop_And32, mkexpr(x2), mkU32(c3)),
2743 binop(Iop_Shr32,
2744 binop(Iop_And32, mkexpr(x2), mkU32(~c3)),
2748 binop(Iop_Or32,
2749 binop(Iop_Shl32,
2750 binop(Iop_And32, mkexpr(x3), mkU32(c4)),
2752 binop(Iop_Shr32,
2753 binop(Iop_And32, mkexpr(x3), mkU32(~c4)),
2757 binop(Iop_Or32,
2758 binop(Iop_Shl32,
2759 binop(Iop_And32, mkexpr(x4), mkU32(c5)),
2761 binop(Iop_Shr32,
2762 binop(Iop_And32, mkexpr(x4), mkU32(~c5)),
2775 binop(Iop_Or32,
2776 binop(Iop_Shl32, mkexpr(arg), mkU8(24)),
2777 binop(Iop_Or32,
2778 binop(Iop_And32, binop(Iop_Shl32, mkexpr(arg), mkU8(8)),
2780 binop(Iop_Or32,
2781 binop(Iop_And32, binop(Iop_Shr32, mkexpr(arg), mkU8(8)),
2783 binop(Iop_And32, binop(Iop_Shr32, mkexpr(arg), mkU8(24)),
2796 binop(Iop_Or32,
2797 binop(Iop_And32,
2798 binop(Iop_Shl32, mkexpr(arg), mkU8(8)),
2800 binop(Iop_And32,
2801 binop(Iop_Shr32, mkexpr(arg), mkU8(8)),
2927 assign(new_arg, binop(Iop_Sub8x8, mkexpr(old_arg), mkU64(imm)));
2928 assign(cur_mask, binop(cmp, mkU64(imm), mkexpr(old_arg)));
2929 assign(new_mask, binop(Iop_Or64, mkexpr(old_mask), mkexpr(cur_mask)));
2930 assign(new_res, binop(Iop_Or64,
2932 binop(Iop_And64,
2933 binop(Iop_Perm8x8,
2935 binop(Iop_And64,
2946 assign(new_res, binop(Iop_Or64,
2947 binop(Iop_And64,
3009 assign(res, unop(op, binop(op2, mkexpr(arg_m), mkU8(index))));
3071 imm_val = binop(Iop_64HLtoV128, mkU64(imm), mkU64(imm));
3113 binop(addOp,
3114 binop(addOp,
3115 binop(shOp, mkexpr(arg_m), mkU8(1)),
3116 binop(shOp, mkexpr(arg_n), mkU8(1))),
3117 binop(shOp,
3118 binop(addOp,
3119 binop(andOp, mkexpr(arg_m), imm_val),
3120 binop(andOp, mkexpr(arg_n), imm_val)),
3178 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
3180 assign(tmp, binop(op2, mkexpr(arg_n), mkexpr(arg_m)));
3245 assign(cc, binop(shift_op,
3246 binop(add_op,
3247 binop(add_op,
3248 binop(Iop_AndV128,
3250 binop(Iop_64HLtoV128,
3253 binop(Iop_AndV128,
3255 binop(Iop_64HLtoV128,
3258 binop(Iop_64HLtoV128,
3262 assign(res, binop(add_op,
3263 binop(add_op,
3264 binop(shift_op,
3267 binop(shift_op,
3273 assign(cc, binop(shift_op,
3274 binop(add_op,
3275 binop(add_op,
3276 binop(Iop_And64,
3279 binop(Iop_And64,
3284 assign(res, binop(add_op,
3285 binop(add_op,
3286 binop(shift_op,
3289 binop(shift_op,
3304 assign(res, binop(Iop_AndV128, mkexpr(arg_n),
3307 assign(res, binop(Iop_And64, mkexpr(arg_n),
3318 assign(res, binop(Iop_AndV128,mkexpr(arg_n),
3321 assign(res, binop(Iop_And64, mkexpr(arg_n),
3333 assign(res, binop(Iop_OrV128, mkexpr(arg_n),
3336 assign(res, binop(Iop_Or64, mkexpr(arg_n),
3352 assign(res, binop(Iop_OrV128,mkexpr(arg_n),
3355 assign(res, binop(Iop_Or64, mkexpr(arg_n),
3368 assign(res, binop(Iop_XorV128, mkexpr(arg_n),
3371 assign(res, binop(Iop_Xor64, mkexpr(arg_n),
3383 binop(Iop_OrV128,
3384 binop(Iop_AndV128, mkexpr(arg_n),
3386 binop(Iop_AndV128,
3394 binop(Iop_Or64,
3395 binop(Iop_And64, mkexpr(arg_n),
3397 binop(Iop_And64,
3411 binop(Iop_OrV128,
3412 binop(Iop_AndV128, mkexpr(arg_n),
3414 binop(Iop_AndV128,
3421 binop(Iop_Or64,
3422 binop(Iop_And64, mkexpr(arg_n),
3424 binop(Iop_And64,
3438 binop(Iop_OrV128,
3439 binop(Iop_AndV128, mkexpr(reg_d),
3441 binop(Iop_AndV128,
3448 binop(Iop_Or64,
3449 binop(Iop_And64, mkexpr(reg_d),
3451 binop(Iop_And64,
3482 imm_val = binop(Iop_64HLtoV128, mkU64(imm), mkU64(imm));
3526 binop(subOp,
3527 binop(subOp,
3528 binop(shOp, mkexpr(arg_n), mkU8(1)),
3529 binop(shOp, mkexpr(arg_m), mkU8(1))),
3530 binop(andOp,
3531 binop(andOp,
3590 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
3592 assign(tmp, binop(op2, mkexpr(arg_n), mkexpr(arg_m)));
3622 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
3635 binop(op, mkexpr(arg_m), mkexpr(arg_n))));
3681 assign(res, binop(op, mkexpr(arg_m),
3684 assign(res, binop(op, mkexpr(arg_m), mkexpr(arg_n)));
3687 assign(tmp, binop(sub_op,
3688 binop(Iop_64HLtoV128, mkU64(0), mkU64(0)),
3691 assign(tmp, binop(sub_op, mkU64(0), mkexpr(arg_n)));
3693 assign(res, binop(op, mkexpr(arg_m),
3696 assign(res, binop(op, mkexpr(arg_m), mkexpr(tmp)));
3778 assign(res, binop(op, mkexpr(arg_m), mkexpr(arg_n)));
3782 assign(shval, binop(op_shrn,
3783 binop(op_shln,
3790 assign(shval, binop(Q ? Iop_OrV128 : Iop_Or64,
3792 binop(op_shln,
3802 setFlag_QC(binop(Q ? Iop_AndV128 : Iop_And64,
3803 binop(cmp_gt, mkexpr(shval),
3811 assign(mask, binop(cmp_gt, mkexpr(shval),
3814 assign(tmp, binop(op_rev, mkexpr(res),
3817 assign(tmp, binop(op_rev, mkexpr(res), mkexpr(arg_n)));
3818 setFlag_QC(binop(Q ? Iop_AndV128 : Iop_And64,
3820 binop(Q ? Iop_AndV128 : Iop_And64,
3915 assign(shval, binop(op_shrn,
3916 binop(op_shln,
3923 assign(shval, binop(Q ? Iop_OrV128 : Iop_Or64,
3925 binop(op_shln,
3931 assign(round, binop(Q ? Iop_AndV128 : Iop_And64,
3932 binop(op,
3935 binop(op_add,
3938 binop(Q ? Iop_AndV128 : Iop_And64,
3940 binop(cmp_gt,
3943 assign(res, binop(op_add,
3944 binop(op,
3949 assign(round, binop(Q ? Iop_AndV128 : Iop_And64,
3950 binop(op,
3952 binop(op_add,
3955 binop(Q ? Iop_AndV128 : Iop_And64,
3957 binop(cmp_gt,
3960 assign(res, binop(op_add,
3961 binop(op, mkexpr(arg_m), mkexpr(arg_n)),
4065 assign(shval, binop(op_shrn,
4066 binop(op_shln,
4073 assign(shval, binop(Q ? Iop_OrV128 : Iop_Or64,
4075 binop(op_shln,
4080 assign(round, binop(Q ? Iop_AndV128 : Iop_And64,
4081 binop(op,
4083 binop(op_add,
4086 binop(Q ? Iop_AndV128 : Iop_And64,
4088 binop(cmp_gt,
4091 assign(res, binop(op_add,
4092 binop(op, mkexpr(arg_m), mkexpr(arg_n)),
4101 setFlag_QC(binop(Q ? Iop_AndV128 : Iop_And64,
4102 binop(cmp_gt, mkexpr(shval),
4110 assign(mask, binop(cmp_gt, mkexpr(shval),
4113 assign(tmp, binop(op_rev, mkexpr(res),
4116 assign(tmp, binop(op_rev, mkexpr(res), mkexpr(arg_n)));
4117 setFlag_QC(binop(Q ? Iop_AndV128 : Iop_And64,
4119 binop(Q ? Iop_AndV128 : Iop_And64,
4151 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
4176 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
4235 assign(cond, binop(op_cmp, mkexpr(arg_n), mkexpr(arg_m)));
4236 assign(res, binop(Q ? Iop_OrV128 : Iop_Or64,
4237 binop(Q ? Iop_AndV128 : Iop_And64,
4238 binop(op_sub, mkexpr(arg_n),
4241 binop(Q ? Iop_AndV128 : Iop_And64,
4242 binop(op_sub, mkexpr(arg_m),
4313 assign(cond, binop(op_cmp, mkexpr(arg_n), mkexpr(arg_m)));
4314 assign(tmp, binop(Q ? Iop_OrV128 : Iop_Or64,
4315 binop(Q ? Iop_AndV128 : Iop_And64,
4316 binop(op_sub, mkexpr(arg_n),
4319 binop(Q ? Iop_AndV128 : Iop_And64,
4320 binop(op_sub, mkexpr(arg_m),
4324 assign(res, binop(op_add, mkexpr(acc), mkexpr(tmp)));
4359 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
4371 assign(res, unop(op, binop(Q ? Iop_AndV128 : Iop_And64,
4381 binop(Q ? Iop_XorV128 : Iop_Xor64,
4434 assign(res, binop(op2,
4436 binop(op, mkexpr(arg_n), mkexpr(arg_m))));
4462 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
4492 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
4524 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
4526 setFlag_QC(binop(Q ? Iop_AndV128 : Iop_And64,
4527 binop(op2, mkexpr(arg_n),
4529 binop(op2, mkexpr(arg_m),
4560 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
4562 setFlag_QC(binop(Q ? Iop_AndV128 : Iop_And64,
4563 binop(op2, mkexpr(arg_n),
4565 binop(op2, mkexpr(arg_m),
4587 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
4623 binop(Iop_Sub32Fx4,
4628 binop(Iop_Sub32Fx2,
4638 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
4663 assign(res, binop(op2,
4665 binop(op, mkexpr(arg_n), mkexpr(arg_m))));
4676 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
4692 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
4706 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
4716 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
4730 assign(res, binop(op,
4735 assign(res, binop(op,
4761 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
4776 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
4784 assign(res, binop(Q ? Iop_Recps32Fx4 : Iop_Recps32Fx2,
4793 assign(res, binop(Q ? Iop_Rsqrts32Fx4 : Iop_Rsqrts32Fx2,
4864 putQReg(dreg, binop(op, mkexpr(arg_n), mkexpr(arg_m)),
4908 assign(tmp, binop(op, getQReg(nreg), getQReg(mreg)));
4911 assign(res, binop(op, mkexpr(tmp),
4912 binop(Iop_64HLtoV128, mkU64(imm), mkU64(imm))));
4916 putDRegI64(dreg, unop(cvt, binop(sh, mkexpr(res), mkU8(8 << size))),
4962 assign(cond, unop(cvt2, binop(cmp, getDRegI64(nreg),
4964 assign(res, binop(op2,
4965 binop(Iop_OrV128,
4966 binop(Iop_AndV128,
4967 binop(op, mkexpr(arg_n), mkexpr(arg_m)),
4969 binop(Iop_AndV128,
4970 binop(op, mkexpr(arg_m), mkexpr(arg_n)),
5018 assign(tmp, binop(op, getQReg(nreg), getQReg(mreg)));
5021 assign(res, binop(op2, mkexpr(tmp),
5022 binop(Iop_64HLtoV128, mkU64(imm), mkU64(imm))));
5026 putDRegI64(dreg, unop(cvt, binop(sh, mkexpr(res), mkU8(8 << size))),
5069 assign(cond, unop(cvt2, binop(cmp, getDRegI64(nreg),
5071 assign(res, binop(Iop_OrV128,
5072 binop(Iop_AndV128,
5073 binop(op, mkexpr(arg_n), mkexpr(arg_m)),
5075 binop(Iop_AndV128,
5076 binop(op, mkexpr(arg_m), mkexpr(arg_n)),
5108 assign(res, binop(op, getDRegI64(nreg),getDRegI64(mreg)));
5109 putQReg(dreg, binop(op2, getQReg(dreg), mkexpr(res)), condT);
5147 assign(res, binop(op, getDRegI64(nreg), getDRegI64(mreg)));
5149 assign(tmp, binop(op2, getQReg(dreg), mkexpr(res)));
5150 setFlag_QC(mkexpr(tmp), binop(add, getQReg(dreg), mkexpr(res)),
5152 setFlag_QC(binop(Iop_And64,
5153 binop(cmp, getDRegI64(nreg), mkU64(imm)),
5154 binop(cmp, getDRegI64(mreg), mkU64(imm))),
5158 putQReg(dreg, binop(add, getQReg(dreg), mkexpr(res)), condT);
5184 putQReg(dreg, binop(op, getDRegI64(nreg),
5217 putQReg(dreg, binop(op, getDRegI64(nreg), getDRegI64(mreg)),
5220 setFlag_QC(binop(Iop_And64,
5221 binop(op2, getDRegI64(nreg), mkU64(imm)),
5222 binop(op2, getDRegI64(mreg), mkU64(imm))),
5283 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5308 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5344 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
5346 putQReg(dreg, binop(op2, getQReg(dreg), mkexpr(res)),
5349 putDRegI64(dreg, binop(op2, getDRegI64(dreg), mkexpr(res)),
5387 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5406 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
5407 putQReg(dreg, binop(op2, getQReg(dreg), mkexpr(res)), condT);
5446 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5473 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
5475 assign(tmp, binop(op2, getQReg(dreg), mkexpr(res)));
5476 setFlag_QC(binop(Iop_And64,
5477 binop(cmp, mkexpr(arg_n), mkU64(imm)),
5478 binop(cmp, mkexpr(arg_m), mkU64(imm))),
5481 setFlag_QC(mkexpr(tmp), binop(add, getQReg(dreg), mkexpr(res)),
5484 putQReg(dreg, binop(add, getQReg(dreg), mkexpr(res)), condT);
5522 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5547 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5576 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
5617 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5624 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
5661 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5682 putQReg(dreg, binop(op, mkexpr(arg_n), mkexpr(arg_m)),
5685 setFlag_QC(binop(Iop_And64,
5686 binop(op2, mkexpr(arg_n), mkU64(imm)),
5687 binop(op2, mkexpr(arg_m), mkU64(imm))),
5729 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5754 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5776 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
5778 setFlag_QC(binop(Q ? Iop_AndV128 : Iop_And64,
5779 binop(op2, mkexpr(arg_n),
5781 binop(op2, mkexpr(arg_m),
5829 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5854 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5876 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
5878 setFlag_QC(binop(Q ? Iop_AndV128 : Iop_And64,
5879 binop(op2, mkexpr(arg_n),
5881 binop(op2, mkexpr(arg_m),
5965 imm_val = binop(Iop_64HLtoV128, mkU64(imm), mkU64(imm));
6014 binop(add,
6015 binop(op,
6018 binop(Q ? Iop_AndV128 : Iop_And64,
6019 binop(op,
6034 putQReg(dreg, binop(add, mkexpr(res), getQReg(dreg)),
6037 putDRegI64(dreg, binop(add, mkexpr(res), getDRegI64(dreg)),
6108 assign(res, binop(op, mkexpr(reg_m), mkU8(shift_imm)));
6111 putQReg(dreg, binop(add, mkexpr(res), getQReg(dreg)),
6114 putDRegI64(dreg, binop(add, mkexpr(res), getDRegI64(dreg)),
6148 assign(mask, binop(op, binop(Iop_64HLtoV128,
6152 assign(res, binop(Iop_OrV128,
6153 binop(Iop_AndV128,
6157 binop(op,
6162 assign(mask, binop(op, mkU64(0xFFFFFFFFFFFFFFFFLL),
6164 assign(res, binop(Iop_Or64,
6165 binop(Iop_And64,
6169 binop(op,
6197 assign(mask, binop(op, binop(Iop_64HLtoV128,
6201 assign(res, binop(Iop_OrV128,
6202 binop(Iop_AndV128,
6206 binop(op,
6211 assign(mask, binop(op, mkU64(0xFFFFFFFFFFFFFFFFLL),
6213 assign(res, binop(Iop_Or64,
6214 binop(Iop_And64,
6218 binop(op,
6242 assign(res, binop(op, Q ? getQReg(mreg) : getDRegI64(mreg),
6347 assign(res, binop(op, mkexpr(reg_m), mkU8(shift_imm)));
6349 assign(tmp, binop(op_rev, mkexpr(res), mkU8(shift_imm)));
6390 binop(op,
6412 imm_val = binop(Iop_64HLtoV128, mkU64(imm), mkU64(imm));
6433 binop(addOp,
6434 binop(shOp,
6437 binop(Iop_AndV128,
6438 binop(shOp,
6530 assign(res, binop(add,
6531 binop(op, mkexpr(reg_m), mkU8(shift_imm)),
6532 binop(Iop_AndV128,
6533 binop(op,
6539 assign(res, binop(op, mkexpr(reg_m), mkU8(shift_imm)));
6575 assign(res, binop(op, unop(cvt, getDRegI64(mreg)), mkU8(shift_imm)));
6610 putQReg(dreg, binop(op, getQReg(mreg),
6613 putDRegI64(dreg, binop(op, getDRegI64(mreg),
6842 assign(res, binop(add_op, unop(op, mkexpr(arg_m)),
6855 zero1 = binop(Iop_64HLtoV128, mkU64(0), mkU64(0));
6856 zero2 = binop(Iop_64HLtoV128, mkU64(0), mkU64(0));
6886 assign(mask, binop(op_cmp, mkexpr(arg_m), zero1));
6887 neg = binop(op_qsub, zero2, mkexpr(arg_m));
6888 neg2 = binop(op_sub, zero2, mkexpr(arg_m));
6889 assign(res, binop(Q ? Iop_OrV128 : Iop_Or64,
6890 binop(Q ? Iop_AndV128 : Iop_And64,
6893 binop(Q ? Iop_AndV128 : Iop_And64,
6898 assign(tmp, binop(Q ? Iop_OrV128 : Iop_Or64,
6899 binop(Q ? Iop_AndV128 : Iop_And64,
6902 binop(Q ? Iop_AndV128 : Iop_And64,
6917 zero = binop(Iop_64HLtoV128, mkU64(0), mkU64(0));
6939 assign(res, binop(op, zero, mkexpr(arg_m)));
6941 setFlag_QC(mkexpr(res), binop(op2, zero, mkexpr(arg_m)),
6973 zero = binop(Iop_64HLtoV128, mkU64(0), mkU64(0));
6992 assign(res, binop(op, mkexpr(arg_m), zero));
7002 zero = binop(Iop_64HLtoV128, mkU64(0), mkU64(0));
7012 assign(res, binop(op, mkexpr(arg_m), zero));
7022 binop(op, zero, mkexpr(arg_m))));
7034 zero = binop(Iop_64HLtoV128, mkU64(0), mkU64(0));
7043 assign(res, binop(op, zero, mkexpr(arg_m)));
7064 zero = binop(Iop_64HLtoV128, mkU64(0), mkU64(0));
7074 assign(res, binop(op, zero, mkexpr(arg_m)));
7084 binop(op, mkexpr(arg_m), zero)));
7095 zero = binop(Iop_64HLtoV128, mkU64(0), mkU64(0));
7105 assign(res, binop(op, zero, mkexpr(arg_m)));
7114 assign(res, binop(op, zero, mkexpr(arg_m)));
7156 zero = binop(Iop_64HLtoV128, mkU64(0), mkU64(0));
7167 assign(res, binop(op, zero, mkexpr(arg_m)));
7258 assign(res1, binop(op_lo, mkexpr(arg_m), mkexpr(arg_d)));
7259 assign(res2, binop(op_hi, mkexpr(arg_m), mkexpr(arg_d)));
7309 assign(res1, binop(op_lo, mkexpr(arg_m), mkexpr(arg_d)));
7310 assign(res2, binop(op_hi, mkexpr(arg_m), mkexpr(arg_d)));
7360 assign(res1, binop(op_lo, mkexpr(arg_m), mkexpr(arg_d)));
7361 assign(res2, binop(op_hi, mkexpr(arg_m), mkexpr(arg_d)));
7465 assign(res, binop(op, unop(cvt, getDRegI64(mreg)),
7727 imm_val = binop(Iop_64HLtoV128, mkU64(imm), mkU64(imm));
7764 expr = binop(Iop_OrV128, mkexpr(tmp_var), imm_val);
7766 expr = binop(Iop_Or64, mkexpr(tmp_var), imm_val);
7771 expr = binop(Iop_AndV128, mkexpr(tmp_var),
7774 expr = binop(Iop_And64, mkexpr(tmp_var), unop(Iop_Not64, imm_val));
7869 loadLE(Ity_I8, binop(Iop_Add32,
7879 loadLE(Ity_I16, binop(Iop_Add32,
7889 loadLE(Ity_I32, binop(Iop_Add32,
7910 binop(Iop_GetElem8x8, getDRegI64(rD), mkU8(index)));
7914 binop(Iop_GetElem16x4, getDRegI64(rD), mkU8(index)));
7918 binop(Iop_GetElem32x2, getDRegI64(rD), mkU8(index)));
7926 storeLE(binop(Iop_Add32, mkexpr(addr), mkU32(i * 1)),
7927 binop(Iop_GetElem8x8, getDRegI64(rD + i * inc),
7931 storeLE(binop(Iop_Add32, mkexpr(addr), mkU32(i * 2)),
7932 binop(Iop_GetElem16x4, getDRegI64(rD + i * inc),
7936 storeLE(binop(Iop_Add32, mkexpr(addr), mkU32(i * 4)),
7937 binop(Iop_GetElem32x2, getDRegI64(rD + i * inc),
8081 loadLE(Ity_I8, binop(Iop_Add32,
8089 loadLE(Ity_I16, binop(Iop_Add32,
8097 loadLE(Ity_I32, binop(Iop_Add32,
8125 IRExpr* e = binop(Iop_Add32,
8133 IRExpr* e = binop(Iop_Add32,
8197 assign(tmp, binop(Iop_Add32, mkexpr(addr),
8205 IRExpr* e = binop(Iop_Add32,
8213 IRExpr* e = binop(Iop_Add32,
8415 assign( srcN, binop(Iop_Sar32,
8416 binop(Iop_Shl32,
8419 assign( srcM, binop(Iop_Sar32,
8420 binop(Iop_Shl32,
8423 assign( res, binop(Iop_Mul32, mkexpr(srcN), mkexpr(srcM)) );
8470 binop(Iop_MullS32,
8472 binop(Iop_Sar32,
8473 binop(Iop_Shl32,
8478 IRExpr* ire_result = binop(Iop_Or32,
8479 binop( Iop_Shl32,
8482 binop( Iop_Shr32,
8541 = binop( Iop_Or32,
8542 binop(Iop_And32, mkexpr(irt_regM_shift), mkU32(mask)),
8543 binop(Iop_And32, isT ? getIRegT(regN) : getIRegA(regN),
8710 assign( irt_regN_lo, binop( Iop_Sar32,
8711 binop(Iop_Shl32, mkexpr(irt_regN), mkU8(16)),
8713 assign( irt_regN_hi, binop(Iop_Sar32, mkexpr(irt_regN), mkU8(16)) );
8721 IRExpr* ire_result = binop( Iop_Or32,
8722 binop(Iop_Shl32, mkexpr(irt_res_hi), mkU8(16)),
8770 assign(res, binop(Iop_Add16x2, mkexpr(rNt), mkexpr(rMt)));
8776 assign(reso, binop(Iop_HAdd16Ux2, mkexpr(rNt), mkexpr(rMt)));
8819 assign(res, binop(Iop_Add16x2, mkexpr(rNt), mkexpr(rMt)));
8826 binop(Iop_HAdd16Sx2, mkexpr(rNt), mkexpr(rMt))));
8869 assign(res, binop(Iop_Sub16x2, mkexpr(rNt), mkexpr(rMt)));
8876 binop(Iop_HSub16Ux2, mkexpr(rNt), mkexpr(rMt))));
8919 assign(res, binop(Iop_Sub16x2, mkexpr(rNt), mkexpr(rMt)));
8926 binop(Iop_HSub16Sx2, mkexpr(rNt), mkexpr(rMt))));
8969 assign(res, binop(Iop_Add8x4, mkexpr(rNt), mkexpr(rMt)));
8975 assign(reso, binop(Iop_HAdd8Ux4, mkexpr(rNt), mkexpr(rMt)));
9018 assign(res, binop(Iop_Add8x4, mkexpr(rNt), mkexpr(rMt)));
9025 binop(Iop_HAdd8Sx4, mkexpr(rNt), mkexpr(rMt))));
9068 assign(res, binop(Iop_Sub8x4, mkexpr(rNt), mkexpr(rMt)));
9075 binop(Iop_HSub8Ux4, mkexpr(rNt), mkexpr(rMt))));
9118 assign(res, binop(Iop_Sub8x4, mkexpr(rNt), mkexpr(rMt)));
9125 binop(Iop_HSub8Sx4, mkexpr(rNt), mkexpr(rMt))));
9167 assign(res_q, binop(Iop_QAdd8Sx4, mkexpr(rNt), mkexpr(rMt)));
9212 assign(res_q, binop(Iop_QSub8Sx4, mkexpr(rNt), mkexpr(rMt)));
9257 assign(res_q, binop(Iop_QAdd8Ux4, mkexpr(rNt), mkexpr(rMt)));
9302 assign(res_q, binop(Iop_QSub8Ux4, mkexpr(rNt), mkexpr(rMt)));
9347 assign(res_q, binop(Iop_HAdd8Ux4, mkexpr(rNt), mkexpr(rMt)));
9392 assign(res_q, binop(Iop_HAdd16Ux2, mkexpr(rNt), mkexpr(rMt)));
9437 assign(res_q, binop(Iop_HAdd8Sx4, mkexpr(rNt), mkexpr(rMt)));
9482 assign(res_q, binop(Iop_QAdd16Sx2, mkexpr(rNt), mkexpr(rMt)));
9527 assign(res_q, binop(Iop_QSub16Sx2, mkexpr(rNt), mkexpr(rMt)));
9584 binop( Iop_Sub32,
9585 binop( Iop_Sar32, mkexpr(irt_regN), mkU8(16) ),
9586 binop( Iop_Sar32,
9587 binop(Iop_Shl32, mkexpr(irt_regM), mkU8(16)),
9592 binop( Iop_Add32,
9593 binop( Iop_Sar32,
9594 binop( Iop_Shl32, mkexpr(irt_regN), mkU8(16) ),
9596 binop( Iop_Sar32, mkexpr(irt_regM), mkU8(16) )) );
9599 IRExpr* ire_result = binop( Iop_Or32,
9600 binop( Iop_Shl32, mkexpr(irt_diff_res),
9602 binop( Iop_And32, mkexpr(irt_sum_res),
9653 binop( Iop_Sub32,
9654 binop( Iop_Sar32,
9655 binop( Iop_Shl32, mkexpr(irt_regN), mkU8(16) ),
9657 binop( Iop_Sar32, mkexpr(irt_regM), mkU8(16) ) ) );
9661 binop( Iop_Add32,
9662 binop( Iop_Sar32, mkexpr(irt_regN), mkU8(16) ),
9663 binop( Iop_Sar32,
9664 binop( Iop_Shl32, mkexpr(irt_regM), mkU8(16) ),
9669 = binop( Iop_Or32,
9670 binop( Iop_Shl32, mkexpr(irt_res_sum), mkU8(16) ),
9671 binop( Iop_And32, mkexpr(irt_res_diff), mkU32(0xFFFF) ) );
9719 binop( Iop_Sub32,
9720 binop( Iop_Sar32,
9721 binop( Iop_Shl32, mkexpr(irt_regN), mkU8(16) ),
9723 binop( Iop_Sar32, mkexpr(irt_regM), mkU8(16) ) ) );
9726 binop( Iop_Add32,
9727 binop( Iop_Sar32, mkexpr(irt_regN), mkU8(16) ),
9728 binop( Iop_Sar32,
9729 binop( Iop_Shl32, mkexpr(irt_regM), mkU8(16) ),
9733 = binop( Iop_Or32,
9734 binop( Iop_Shl32, mkexpr(irt_sum), mkU8(16) ),
9735 binop( Iop_And32, mkexpr(irt_diff), mkU32(0xFFFF) ) );
9802 binop( Iop_Mul32,
9803 binop( Iop_Sar32,
9804 binop(Iop_Shl32, mkexpr(irt_regN), mkU8(16)),
9806 binop( Iop_Sar32,
9807 binop(Iop_Shl32, mkexpr(irt_regM), mkU8(16)),
9809 assign( irt_prod_hi, binop(Iop_Mul32,
9810 binop(Iop_Sar32, mkexpr(irt_regN), mkU8(16)),
9811 binop(Iop_Sar32, mkexpr(irt_regM), mkU8(16))) );
9813 = binop( isAD ? Iop_Add32 : Iop_Sub32,
9886 binop(Iop_Mul32,
9887 binop(Iop_Sar32,
9888 binop( Iop_Shl32, mkexpr(irt_regN), mkU8(16) ),
9890 binop(Iop_Sar32,
9891 binop( Iop_Shl32, mkexpr(irt_regM), mkU8(16) ),
9894 binop( Iop_Mul32,
9895 binop( Iop_Sar32, mkexpr(irt_regN), mkU8(16) ),
9896 binop( Iop_Sar32, mkexpr(irt_regM), mkU8(16) ) ) );
9897 assign( irt_sum, binop( isAD ? Iop_Add32 : Iop_Sub32,
9900 IRExpr* ire_result = binop(Iop_Add32, mkexpr(irt_sum), mkexpr(irt_regA));
9964 binop(Iop_Mul32,
9965 binop(Iop_Sar32,
9966 binop(Iop_Shl32,
9970 binop(Iop_Sar32,
9971 binop(Iop_Shl32,
9978 IRExpr* ire_result = binop(Iop_Add32, mkexpr(irt_prod), mkexpr(irt_regA));
10032 binop(Iop_MullS32,
10034 binop(Iop_Sar32,
10035 binop(Iop_Shl32,
10044 binop(Iop_Or32,
10045 binop(Iop_Shl32, unop(Iop_64HIto32, mkexpr(irt_prod)), mkU8(16)),
10046 binop(Iop_Shr32, unop(Iop_64to32, mkexpr(irt_prod)), mkU8(16))
10049 IRExpr* ire_result = binop(Iop_Add32, mkexpr(prod32), mkexpr(irt_regA));
10108 = binop(Iop_Or32, mkexpr(irt_ge_flag0),
10109 binop(Iop_Sub32, mkU32(0), mkexpr(irt_ge_flag0)));
10111 = binop(Iop_Or32, mkexpr(irt_ge_flag1),
10112 binop(Iop_Sub32, mkU32(0), mkexpr(irt_ge_flag1)));
10114 = binop(Iop_Or32, mkexpr(irt_ge_flag2),
10115 binop(Iop_Sub32, mkU32(0), mkexpr(irt_ge_flag2)));
10117 = binop(Iop_Or32, mkexpr(irt_ge_flag3),
10118 binop(Iop_Sub32, mkU32(0), mkexpr(irt_ge_flag3)));
10121 = binop( Iop_Or32,
10122 binop(Iop_Or32,
10123 binop(Iop_And32,
10124 binop(Iop_Sar32, ire_ge_flag0_or, mkU8(31)),
10126 binop(Iop_And32,
10127 binop(Iop_Sar32, ire_ge_flag1_or, mkU8(31)),
10129 binop(Iop_Or32,
10130 binop(Iop_And32,
10131 binop(Iop_Sar32, ire_ge_flag2_or, mkU8(31)),
10133 binop(Iop_And32,
10134 binop(Iop_Sar32, ire_ge_flag3_or, mkU8(31)),
10138 = binop(Iop_Or32,
10139 binop(Iop_And32,
10142 binop(Iop_And32,
10191 assign( irt_rot, binop(Iop_And32,
10196 = binop(Iop_And32,
10197 binop(Iop_Add32, mkexpr(irt_regN), mkexpr(irt_rot)),
10201 = binop(Iop_Add32,
10202 binop(Iop_And32, mkexpr(irt_regN), mkU32(0xFFFF0000)),
10203 binop(Iop_And32, mkexpr(irt_rot), mkU32(0xFFFF0000)));
10206 = binop( Iop_Or32, resHi, resLo );
10253 IRExpr* res = binop(Iop_Add32,
10254 binop(Iop_Sad8Ux4, rNe, rMe),
10306 assign(res_q, binop(Iop_QAdd32S, mkexpr(rMt), mkexpr(rNt)));
10314 binop(Iop_Add32, mkexpr(rMt), mkexpr(rNt)), rMt, rNt),
10360 binop(Iop_Add32, mkexpr(rNt), mkexpr(rNt)), rNt, rNt),
10364 assign(rN_d, binop(Iop_QAdd32S, mkexpr(rNt), mkexpr(rNt)));
10365 assign(res_q, binop(Iop_QAdd32S, mkexpr(rMt), mkexpr(rN_d)));
10373 binop(Iop_Add32, mkexpr(rMt), mkexpr(rN_d)), rMt, rN_d),
10416 assign(res_q, binop(Iop_QSub32S, mkexpr(rMt), mkexpr(rNt)));
10424 binop(Iop_Sub32, mkexpr(rMt), mkexpr(rNt)), rMt, rNt),
10470 binop(Iop_Add32, mkexpr(rNt), mkexpr(rNt)), rNt, rNt),
10474 assign(rN_d, binop(Iop_QAdd32S, mkexpr(rNt), mkexpr(rNt)));
10475 assign(res_q, binop(Iop_QSub32S, mkexpr(rMt), mkexpr(rN_d)));
10483 binop(Iop_Sub32, mkexpr(rMt), mkexpr(rN_d)), rMt, rN_d),
10526 assign(res_q, binop(Iop_QSub16Ux2, mkexpr(rNt), mkexpr(rMt)));
10571 assign(res_q, binop(Iop_HAdd16Sx2, mkexpr(rNt), mkexpr(rMt)));
10616 assign(res_q, binop(Iop_HSub8Ux4, mkexpr(rNt), mkexpr(rMt)));
10661 assign(res_q, binop(Iop_HSub16Ux2, mkexpr(rNt), mkexpr(rMt)));
10720 /* assign(anchorT, binop(Iop_And32, mkexpr(oldRnT), mkU32(~3U))); */
10741 IRExpr* e = binop(opADDorSUB, mkexpr(oldRnT), mkU32(4*nRegs));
10842 binop(opADDorSUB, mkexpr(anchorT),
10856 storeLE( binop(opADDorSUB, mkexpr(anchorT), mkU32(xOff[i])),
10865 IRExpr* e = binop(opADDorSUB, mkexpr(oldRnT), mkU32(4*nRegs));
11011 assign(rnTnew, binop(summary == 2 ? Iop_Add32 : Iop_Sub32,
11032 IRExpr* addr = binop(Iop_Add32, mkexpr(taT), mkU32(8*i));
11148 assign(rnTnew, binop(summary == 2 ? Iop_Add32 : Iop_Sub32,
11169 IRExpr* addr = binop(Iop_Add32, mkexpr(taT), mkU32(8*i));
11219 assign(nzcvT, binop(Iop_And32,
11263 binop(Iop_32HLto64,
11404 binop(Iop_GetElem8x8,
11418 binop(Iop_GetElem16x4,
11431 IRExpr* e = binop(Iop_GetElem32x2, getDRegI64(rN), mkU8(index));
11547 assign(ea, binop(bU ? Iop_Add32 : Iop_Sub32,
11674 assign(irRes, binop(Iop_CmpF64, mkexpr(argL), mkexpr(argR)));
11698 binop(Iop_Or32,
11699 binop(Iop_And32, mkexpr(oldFPSCR), mkU32(0x0FFFFFFF)),
11700 binop(Iop_Shl32, mkexpr(nzcv), mkU8(28))));
11744 putDReg(dD, binop(Iop_SqrtF64, rm, getDReg(dM)), condT);
11797 binop(Iop_F64toI32S, mkexpr(rmode),
11805 binop(Iop_F64toI32U, mkexpr(rmode),
11897 assign(rnTnew, binop(summary == 2 ? Iop_Add32 : Iop_Sub32,
11918 IRExpr* addr = binop(Iop_Add32, mkexpr(taT), mkU32(4*i));
12009 assign(ea, binop(bU ? Iop_Add32 : Iop_Sub32,
12142 assign(irRes, binop(Iop_CmpF64, mkexpr(argL), mkexpr(argR)));
12166 binop(Iop_Or32,
12167 binop(Iop_And32, mkexpr(oldFPSCR), mkU32(0x0FFFFFFF)),
12168 binop(Iop_Shl32, mkexpr(nzcv), mkU8(28))));
12215 putFReg(fD, binop(Iop_SqrtF32, rm, getFReg(fM)), condT);
12246 putFReg(fD, binop(Iop_F64toF32,
12254 putFReg(fD, binop(Iop_F64toF32,
12281 binop(Iop_F64toI32S, mkexpr(rmode),
12290 binop(Iop_F64toI32U, mkexpr(rmode),
12324 putFReg(fD, binop(Iop_F64toF32, mkexpr(rmode), getDReg(dM)),
12393 IRExpr* resF32 = binop(Iop_F64toF32, mkexpr(rmode), resF64);
12784 assign(res, binop(op, mkexpr(shop), mkexpr(rNt)) );
12788 assign(res, binop(op, mkexpr(rNt),
12792 assign(res, binop(op, mkexpr(rNt), mkexpr(shop)) );
12923 assign( res, binop(isTEQ ? Iop_Xor32 : Iop_And32,
12960 binop(Iop_Add32,
12961 binop(Iop_Add32, mkexpr(rNt), mkexpr(shop)),
12966 binop(Iop_Sub32,
12967 binop(Iop_Sub32, mkexpr(rNt), mkexpr(shop)),
12968 binop(Iop_Xor32, mkexpr(oldC), mkU32(1)) ));
12972 binop(Iop_Sub32,
12973 binop(Iop_Sub32, mkexpr(shop), mkexpr(rNt)),
12974 binop(Iop_Xor32, mkexpr(oldC), mkU32(1)) ));
13637 unop(Iop_1Uto8,binop(Iop_CmpEQ32, mkexpr(arg),
13666 assign( res, binop(Iop_Mul32, mkexpr(argL), mkexpr(argR)) );
13677 assign( pair, binop(Iop_Or32,
13678 binop(Iop_Shl32, mkexpr(oldC), mkU8(1)),
13705 assign(res, binop(Iop_DivS32, mkexpr(argL), mkexpr(argR)));
13727 assign(res, binop(Iop_DivU32, mkexpr(argL), mkexpr(argR)));
13760 assign( res, binop(isMLS ? Iop_Sub32 : Iop_Add32,
13762 binop(Iop_Mul32, mkexpr(argL), mkexpr(argR)) ));
13774 assign( pair, binop(Iop_Or32,
13775 binop(Iop_Shl32, mkexpr(oldC), mkU8(1)),
13809 assign( res, binop(mulOp, mkexpr(argL), mkexpr(argR)) );
13823 assign( pair, binop(Iop_Or32,
13824 binop(Iop_Shl32, mkexpr(oldC), mkU8(1)),
13859 assign( old, binop(Iop_32HLto64, getIRegA(rDhi), getIRegA(rDlo)) );
13860 assign( res, binop(Iop_Add64,
13862 binop(mulOp, mkexpr(argL), mkexpr(argR))) );
13876 assign( pair, binop(Iop_Or32,
13877 binop(Iop_Shl32, mkexpr(oldC), mkU8(1)),
14111 ? binop(Iop_32HLto64, getIRegA(rT+1), getIRegA(rT+0))
14150 binop(Iop_Or32,
14151 binop(Iop_And32, getIRegA(rD), mkU32(0xFFFF)),
14201 assign(dstT, binop(Iop_And32, mkexpr(rotT), mkU32(0x00FF00FF)));
14207 assign(lo32, binop(Iop_And32, mkexpr(rotT), mkU32(0xFF)));
14208 assign(hi32, binop(Iop_Shr32, mkexpr(rotT), mkU8(16)));
14211 binop(Iop_Or32,
14212 binop(Iop_And32,
14216 binop(Iop_Shl32,
14255 binop(Iop_Or32,
14256 binop(Iop_And32,
14257 binop(Iop_Shl32, mkexpr(src), mkU8(lsb)),
14259 binop(Iop_And32,
14298 assign(tmp, binop(Iop_And32,
14299 binop(Iop_Shr32, mkexpr(src), mkU8(lsb)),
14301 assign(res, binop(isU ? Iop_Shr32 : Iop_Sar32,
14302 binop(Iop_Shl32, mkexpr(tmp), mkU8(31-wm1)),
14450 storeLE( binop(Iop_Add32, mkexpr(taT), mkU32(0)), getIRegA(rD+0) );
14451 storeLE( binop(Iop_Add32, mkexpr(taT), mkU32(4)), getIRegA(rD+1) );
14455 loadLE(Ity_I32, binop(Iop_Add32, mkexpr(taT), mkU32(0))),
14458 loadLE(Ity_I32, binop(Iop_Add32, mkexpr(taT), mkU32(4))),
14509 assign(res, binop(Iop_Add32,
14539 assign(res, binop(Iop_Add32,
14595 binop(Iop_Add64,
14596 binop(Iop_MullS32, getIRegA(rN), getIRegA(rM)),
14617 binop(Iop_Add64,
14618 binop(Iop_Add64,
14619 binop(Iop_32HLto64, getIRegA(rA), mkU32(0)),
14620 binop(Iop_MullS32, getIRegA(rN), getIRegA(rM))),
14794 binop(Iop_Xor32,
15103 // binop(Iop_Shr32, mkexpr(old_itstate), mkU8(8)));
15120 // binop(Iop_Xor32,
15121 // binop(Iop_And32, mkexpr(old_itstate), mkU32(0xF0)),
15134 // unop(Iop_32to8, binop(Iop_And32,
15150 // binop(Iop_Xor32,
15151 // binop(Iop_And32, mkexpr(old_itstate), mkU32(1)),
15160 // binop(Iop_And32, mkexpr(notInITt), mkexpr(condT)));
15171 binop(Iop_Shr32, mkexpr(old_itstate), mkU8(8)));
15185 binop(Iop_Xor32,
15186 binop(Iop_And32, mkexpr(old_itstate), mkU32(0xF0)),
15215 unop(Iop_32to8, binop(Iop_And32,
15228 binop(Iop_Xor32,
15229 binop(Iop_And32, mkexpr(old_itstate), mkU32(1)),
15238 binop(Iop_And32, mkexpr(notInITt), mkexpr(condT)));
15308 assign( res, binop(Iop_And32, getIRegT(rN), getIRegT(rM)) );
15325 putIRegT(rD, binop(Iop_Sub32, mkexpr(zero), mkexpr(arg)), condT);
15371 assign( res, binop(anOp, getIRegT(rD), getIRegT(rM) ));
15391 assign( res, binop(Iop_And32, getIRegT(rD),
15414 assign(res, binop(Iop_Add32,
15415 binop(Iop_Add32, mkexpr(argL), mkexpr(argR)),
15437 assign(res, binop(Iop_Sub32,
15438 binop(Iop_Sub32, mkexpr(argL), mkexpr(argR)),
15439 binop(Iop_Xor32, mkexpr(oldC), mkU32(1))));
15453 putIRegT(rD, binop(Iop_And32, getIRegT(rM), mkU32(0xFF)),
15464 putIRegT(rD, binop(Iop_Sar32,
15465 binop(Iop_Shl32, getIRegT(rM), mkU8(24)),
15477 putIRegT(rD, binop(Iop_And32, getIRegT(rM), mkU32(0xFFFF)),
15488 putIRegT(rD, binop(Iop_Sar32,
15489 binop(Iop_Shl32, getIRegT(rM), mkU8(16)),
15581 putIRegT(13, binop(Iop_Add32, getIRegT(13), mkU32(uimm7 * 4)),
15590 putIRegT(13, binop(Iop_Sub32, getIRegT(13), mkU32(uimm7 * 4)),
15692 assign( res, binop(Iop_Add32, getIRegT(rD), getIRegT(rM) ));
15703 irsb->next = binop(Iop_Or32, mkexpr(res), mkU32(1));
15753 llPutIReg(15, binop(Iop_Or32, mkexpr(val), mkU32(1)));
15800 assign( kond, binop(bOP ? Iop_CmpNE32 : Iop_CmpEQ32,
15860 assign(newSP, binop(Iop_Sub32, getIRegT(13), mkU32(4 * nRegs)));
15866 assign(base, binop(Iop_And32, mkexpr(newSP), mkU32(~3)));
15872 storeLE( binop(Iop_Add32, mkexpr(base), mkU32(4 * nRegs)),
15918 assign(base, binop(Iop_And32, mkexpr(oldSP), mkU32(~3)));
15924 assign(newSP, binop(Iop_Add32, mkexpr(oldSP),
15932 binop(Iop_Add32, mkexpr(base),
15943 binop(Iop_Add32, mkexpr(base),
15982 putIRegT(rD, binop(isSub ? Iop_Sub32 : Iop_Add32,
16003 putIRegT( rD, binop(isSub ? Iop_Sub32 : Iop_Add32,
16026 IRExpr* ea = binop(Iop_Add32, getIRegT(rN), getIRegT(rM));
16053 IRExpr* ea = binop(Iop_Add32, getIRegT(rN), getIRegT(rM));
16078 IRExpr* ea = binop(Iop_Add32, getIRegT(rN), getIRegT(rM));
16099 IRExpr* ea = binop(Iop_Add32, getIRegT(rN), getIRegT(rM));
16123 IRExpr* ea = binop(Iop_Add32, getIRegT(rN), getIRegT(rM));
16158 putIRegT( rN, binop(isSub ? Iop_Sub32 : Iop_Add32,
16172 putIRegT(rD, binop(Iop_Add32,
16173 binop(Iop_And32, getIRegT(15), mkU32(~3U)),
16184 putIRegT(rD, binop(Iop_Add32, getIRegT(13), mkU32(imm8 * 4)),
16232 assign(ea, binop(Iop_Add32,
16233 binop(Iop_And32, getIRegT(15), mkU32(~3U)),
16258 IRExpr* ea = binop(Iop_Add32, getIRegT(rN), mkU32(imm5 * 4));
16285 IRExpr* ea = binop(Iop_Add32, getIRegT(rN), mkU32(imm5 * 2));
16313 IRExpr* ea = binop(Iop_Add32, getIRegT(rN), mkU32(imm5));
16340 IRExpr* ea = binop(Iop_Add32, getIRegT(13), mkU32(imm8 * 4));
16368 assign(base, binop(Iop_And32, mkexpr(oldRn), mkU32(~3U)));
16375 binop(Iop_Add32, mkexpr(base),
16384 binop(Iop_Add32, mkexpr(oldRn),
16422 assign(base, binop(Iop_And32, mkexpr(oldRn), mkU32(~3U)));
16427 storeLE( binop(Iop_Add32, mkexpr(base), mkU32(nRegs * 4 - 4)),
16432 binop(Iop_Add32, mkexpr(oldRn),
16724 assign(res, binop(Iop_Add32, mkexpr(argL), mkexpr(argR)));
16751 assign(res, binop(Iop_Add32, mkexpr(argL), mkexpr(argR)));
16799 assign(res, binop(isTST ? Iop_And32 : Iop_Xor32,
16834 ? binop(Iop_Sub32, mkexpr(argR), mkexpr(argL))
16835 : binop(Iop_Sub32, mkexpr(argL), mkexpr(argR)));
16866 assign(res, binop(Iop_Sub32, mkexpr(argL), mkexpr(argR)));
16898 binop(Iop_Add32,
16899 binop(Iop_Add32, mkexpr(argL), mkexpr(argR)),
16909 binop(Iop_Sub32,
16910 binop(Iop_Sub32, mkexpr(argL), mkexpr(argR)),
16911 binop(Iop_Xor32, mkexpr(oldC), mkU32(1)) ));
16961 assign(res, binop(op, mkexpr(argL), mkexpr(argR)));
17032 ? binop(op, mkexpr(argR), mkexpr(argL))
17033 : binop(op, mkexpr(argL), mkexpr(argR)));
17094 binop(Iop_Add32,
17095 binop(Iop_Add32, mkexpr(argL), mkexpr(argR)),
17105 binop(Iop_Sub32,
17106 binop(Iop_Sub32, mkexpr(argL), mkexpr(argR)),
17107 binop(Iop_Xor32, mkexpr(oldC), mkU32(1)) ));
17172 assign(res, binop(op, mkexpr(rNt),
17175 assign(res, binop(op, mkexpr(rNt), mkexpr(argR)));
17300 assign(res, binop(isTST ? Iop_And32 : Iop_Xor32,
17399 binop(Iop_Or32,
17400 binop(Iop_And32, getIRegT(rD), mkU32(0xFFFF)),
17487 assign(postAddr, binop(bU == 1 ? Iop_Add32 : Iop_Sub32,
17664 binop( Iop_Add32,
17666 binop(Iop_Shl32, getIRegT(rM), mkU8(imm2)) ));
17805 assign(rNt, binop(Iop_And32, getIRegT(rN), mkU32(~3)));
17812 binop( Iop_Add32, mkexpr(rNt), mkU32(imm12) ));
17899 assign(postAddr, binop(bU == 1 ? Iop_Add32 : Iop_Sub32,
17911 storeLE(binop(Iop_Add32, mkexpr(transAddr), mkU32(4)),
17921 binop(Iop_Add32, mkexpr(transAddr), mkU32(4))));
18043 = binop(Iop_Add32,
18045 bH ? binop(Iop_Shl32, getIRegT(rM), mkU8(1))
18057 binop(Iop_Or32,
18058 binop(Iop_Add32,
18060 binop(Iop_Shl32, mkexpr(delta), mkU8(1))
18095 assign(tmp, binop(Iop_And32,
18096 binop(Iop_Shr32, mkexpr(src), mkU8(lsb)),
18098 assign(res, binop(isU ? Iop_Shr32 : Iop_Sar32,
18099 binop(Iop_Shl32, mkexpr(tmp), mkU8(31-wm1)),
18159 assign(dstT, binop(Iop_And32, mkexpr(rotT),
18166 assign(lo32, binop(Iop_And32, mkexpr(rotT), mkU32(0xFF)));
18167 assign(hi32, binop(Iop_Shr32, mkexpr(rotT), mkU8(16)));
18170 binop(Iop_Or32,
18171 binop(Iop_And32,
18175 binop(Iop_Shl32,
18199 assign(res, binop(Iop_Mul32, getIRegT(rN), getIRegT(rM)));
18218 assign(res, binop(Iop_DivS32, mkexpr(argL), mkexpr(argR)));
18237 assign(res, binop(Iop_DivU32, mkexpr(argL), mkexpr(argR)));
18255 assign(res, binop(isU ? Iop_MullU32 : Iop_MullS32,
18278 binop(isMLA ? Iop_Add32 : Iop_Sub32,
18280 binop(Iop_Mul32, getIRegT(rN), getIRegT(rM))));
18296 putIRegT(rD, binop(Iop_Add32,
18297 binop(Iop_And32, getIRegT(15), mkU32(~3U)),
18326 assign( old, binop(Iop_32HLto64, getIRegT(rDhi), getIRegT(rDlo)) );
18327 assign( res, binop(Iop_Add64,
18329 binop(mulOp, mkexpr(argL), mkexpr(argR))) );
18348 putIRegT(rD, binop(Iop_Sub32,
18349 binop(Iop_And32, getIRegT(15), mkU32(~3U)),
18378 binop(Iop_Or32,
18379 binop(Iop_And32,
18380 binop(Iop_Shl32, mkexpr(src), mkU8(lsb)),
18382 binop(Iop_And32,
18417 assign(res, binop(Iop_Add32,
18446 assign(res, binop(Iop_Add32,
18470 unop(Iop_1Uto8,binop(Iop_CmpEQ32,
18560 binop(Iop_Add32, getIRegT(rN), mkU32(imm8 * 4)),
18627 binop(Iop_Add32, getIRegT(rN), mkU32(imm8 * 4)),
18685 assign(data, binop(Iop_32HLto64, getIRegT(rT2), getIRegT(rT)));
18819 binop(Iop_Add64,
18820 binop(Iop_MullS32, getIRegT(rN), getIRegT(rM)),
18841 binop(Iop_Add64,
18842 binop(Iop_Add64,
18843 binop(Iop_32HLto64, getIRegT(rA), mkU32(0)),
18844 binop(Iop_MullS32, getIRegT(rN), getIRegT(rM))),