Lines Matching defs:binop
303 static IRExpr* binop ( IROp op, IRExpr* a1, IRExpr* a2 )
341 binop(Iop_CmpNE32, mkexpr(guardT), mkU32(0))) );
373 binop(Iop_CmpNE32, mkexpr(guardT), mkU32(0))) );
398 binop(Iop_Or32,
399 binop(Iop_Shl32, mkexpr(src), mkU8(32 - rot)),
400 binop(Iop_Shr32, mkexpr(src), mkU8(rot)));
405 return binop(Iop_64HLtoV128, mkU64(i), mkU64(i));
413 return binop(Iop_And32, e, mkU32(~3));
590 // e = binop(Iop_And32, e, mkU32(~3));
599 IRExpr_ITE( binop(Iop_CmpNE32, mkexpr(guardT), mkU32(0)),
632 IRExpr_ITE( binop(Iop_CmpNE32, mkexpr(guardT), mkU32(0)),
727 IRExpr_ITE( binop(Iop_CmpNE32, mkexpr(guardT), mkU32(0)),
770 IRExpr_ITE( binop(Iop_CmpNE32, mkexpr(guardT), mkU32(0)),
836 IRExpr_ITE( binop(Iop_CmpNE32, mkexpr(guardT), mkU32(0)),
895 IRExpr_ITE( binop(Iop_CmpNE32, mkexpr(guardT), mkU32(0)),
924 IRExpr_ITE( binop(Iop_CmpNE32, mkexpr(guardT), mkU32(0)),
964 assign(nyu, binop(Iop_Or32, mkexpr(old), e) );
989 assign(masked, binop(Iop_Shr32, e, mkU8(lowbits_to_ignore)));
1020 assign(ge10, binop(Iop_And32, mkexpr(t32), mkU32(0x00008000)));
1021 assign(ge32, binop(Iop_And32, mkexpr(t32), mkU32(0x80000000)));
1038 assign(ge0, binop(Iop_And32, mkexpr(t32), mkU32(0x00000080)));
1039 assign(ge1, binop(Iop_And32, mkexpr(t32), mkU32(0x00008000)));
1040 assign(ge2, binop(Iop_And32, mkexpr(t32), mkU32(0x00800000)));
1041 assign(ge3, binop(Iop_And32, mkexpr(t32), mkU32(0x80000000)));
1075 binop(Iop_Shr32, IRExpr_Get(OFFB_FPSCR, Ity_I32), mkU8(22)));
1078 binop(Iop_Or32,
1079 binop(Iop_And32,
1080 binop(Iop_Shl32, mkexpr(armEncd), mkU8(1)),
1082 binop(Iop_And32,
1083 binop(Iop_Shr32, mkexpr(armEncd), mkU8(1)),
1145 binop(Iop_Or32, IRExpr_Get(OFFB_CC_OP, Ity_I32), cond),
1257 args1 = mkIRExprVec_4 ( binop(Iop_GetElem32x4, resL, mkU8(0)),
1258 binop(Iop_GetElem32x4, resL, mkU8(1)),
1259 binop(Iop_GetElem32x4, resR, mkU8(0)),
1260 binop(Iop_GetElem32x4, resR, mkU8(1)) );
1261 args2 = mkIRExprVec_4 ( binop(Iop_GetElem32x4, resL, mkU8(2)),
1262 binop(Iop_GetElem32x4, resL, mkU8(3)),
1263 binop(Iop_GetElem32x4, resR, mkU8(2)),
1264 binop(Iop_GetElem32x4, resR, mkU8(3)) );
1266 args1 = mkIRExprVec_4 ( binop(Iop_GetElem32x2, resL, mkU8(0)),
1267 binop(Iop_GetElem32x2, resL, mkU8(1)),
1268 binop(Iop_GetElem32x2, resR, mkU8(0)),
1269 binop(Iop_GetElem32x2, resR, mkU8(1)) );
1287 res = binop(Iop_Or32, call1, call2);
1300 binop(Iop_Or32,
1302 binop(Iop_Shl32,
1329 assign( c1, binop(Iop_CmpNE32, mkexpr(guardT), mkU32(0)) );
1458 binop(Iop_CmpNE32, mkexpr(t), mkU32(0)),
1483 binop(Iop_Shr32, mkexpr(old_itstate), mkU8(8)));
1513 binop(Iop_Or32,
1515 binop(Iop_Shl32,
1517 binop(Iop_CmpNE32,
1524 = unop(Iop_1Uto32, binop(Iop_CmpNE32, get_GEFLAG32(0), mkU32(0)));
1526 = unop(Iop_1Uto32, binop(Iop_CmpNE32, get_GEFLAG32(1), mkU32(0)));
1528 = unop(Iop_1Uto32, binop(Iop_CmpNE32, get_GEFLAG32(2), mkU32(0)));
1530 = unop(Iop_1Uto32, binop(Iop_CmpNE32, get_GEFLAG32(3), mkU32(0)));
1533 binop(Iop_Or32,
1535 binop(Iop_Or32,
1536 binop(Iop_Or32,
1537 binop(Iop_Shl32, ge0, mkU8(16)),
1538 binop(Iop_Shl32, ge1, mkU8(17))),
1539 binop(Iop_Or32,
1540 binop(Iop_Shl32, ge2, mkU8(18)),
1541 binop(Iop_Shl32, ge3, mkU8(19))) )));
1555 assign(immT, binop(Iop_And32, mkexpr(apsrT), mkU32(0xF0000000)) );
1559 assign(qnewT, binop(Iop_And32, mkexpr(apsrT), mkU32(ARMG_CC_MASK_Q)));
1564 put_GEFLAG32(0, 0, binop(Iop_And32, mkexpr(apsrT), mkU32(1<<16)),
1566 put_GEFLAG32(1, 0, binop(Iop_And32, mkexpr(apsrT), mkU32(1<<17)),
1568 put_GEFLAG32(2, 0, binop(Iop_And32, mkexpr(apsrT), mkU32(1<<18)),
1570 put_GEFLAG32(3, 0, binop(Iop_And32, mkexpr(apsrT), mkU32(1<<19)),
1614 assign( nd2, binop( Iop_CmpLT32S, mkexpr(nd1), mkexpr(nd0) ) );
1617 assign( nd5, binop( Iop_CmpLT32S, mkexpr(nd3), mkexpr(nd4) ) );
1624 assign( *resQ, binop(Iop_Xor32, mkexpr(*res), mkexpr(regT)) );
1658 assign( nd2, binop( Iop_CmpLT32S, mkexpr(nd1), mkexpr(nd0) ) );
1661 assign( nd5, binop( Iop_CmpLT32S, mkexpr(nd3), mkexpr(nd4) ) );
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)) );
1788 binop(Iop_CmpEQ32, mkexpr(amtT), mkU32(0)),
1791 binop(Iop_CmpLE32U, mkexpr(amtT), mkU32(32)),
1792 binop(Iop_And32,
1793 binop(Iop_Shr32,
1796 binop(Iop_And32,
1797 binop(Iop_Sub32,
1817 binop(
1819 binop(Iop_Shl32,
1822 binop(Iop_And32, mkexpr(rSt), mkU32(31)))),
1823 binop(Iop_Sar32,
1824 binop(Iop_Sub32,
1846 binop(Iop_And32,
1847 binop(Iop_Shr32, mkexpr(rMt), mkU8(31)),
1859 binop(Iop_And32,
1860 binop(Iop_Shr32, mkexpr(rMt),
1865 binop(Iop_Shr32, mkexpr(rMt), mkU8(shift_amt)) );
1885 assign( amtT, binop(Iop_And32, mkexpr(rSt), mkU32(255)) );
1898 binop(Iop_CmpEQ32, mkexpr(amtT), mkU32(0)),
1901 binop(Iop_CmpLE32U, mkexpr(amtT), mkU32(32)),
1902 binop(Iop_And32,
1903 binop(Iop_Shr32,
1906 binop(Iop_And32,
1907 binop(Iop_Sub32,
1927 binop(
1929 binop(Iop_Shr32,
1932 binop(Iop_And32, mkexpr(rSt), mkU32(31)))),
1933 binop(Iop_Sar32,
1934 binop(Iop_Sub32,
1956 binop(Iop_And32,
1957 binop(Iop_Shr32, mkexpr(rMt), mkU8(31)),
1960 assign( *res, binop(Iop_Sar32, mkexpr(rMt), mkU8(31)) );
1969 binop(Iop_And32,
1970 binop(Iop_Shr32, mkexpr(rMt),
1975 binop(Iop_Sar32, mkexpr(rMt), mkU8(shift_amt)) );
1995 assign( amtT, binop(Iop_And32, mkexpr(rSt), mkU32(255)) );
2008 binop(Iop_CmpEQ32, mkexpr(amtT), mkU32(0)),
2011 binop(Iop_CmpLE32U, mkexpr(amtT), mkU32(32)),
2012 binop(Iop_And32,
2013 binop(Iop_Shr32,
2016 binop(Iop_And32,
2017 binop(Iop_Sub32,
2026 binop(Iop_And32,
2027 binop(Iop_Shr32,
2040 binop(
2046 binop(Iop_CmpLT32U, mkexpr(amtT), mkU32(32)),
2066 assign( amtT, binop(Iop_And32, mkexpr(rSt), mkU32(255)) );
2068 assign( amt5T, binop(Iop_And32, mkexpr(rSt), mkU32(31)) );
2075 binop(Iop_CmpNE32, mkexpr(amtT), mkU32(0)),
2076 binop(Iop_And32,
2077 binop(Iop_Shr32,
2080 binop(Iop_And32,
2081 binop(Iop_Sub32,
2098 binop(Iop_CmpNE32, mkexpr(amt5T), mkU32(0)),
2099 binop(Iop_Or32,
2100 binop(Iop_Shr32,
2104 binop(Iop_Shl32,
2107 binop(Iop_Sub32, mkU32(32), mkexpr(amt5T))
2175 binop(Iop_And32, mkexpr(rMt), mkU32(1)));
2179 binop(Iop_Or32,
2180 binop(Iop_Shl32, mkexpr(oldcT), mkU8(31)),
2181 binop(Iop_Shr32, mkexpr(rMt), mkU8(1))) );
2190 binop(Iop_And32,
2191 binop(Iop_Shr32, mkexpr(rMt),
2196 binop(Iop_Or32,
2197 binop(Iop_Shr32, mkexpr(rMt), mkU8(shift_amt)),
2198 binop(Iop_Shl32, mkexpr(rMt),
2378 binop( (bU == 1 ? Iop_Add32 : Iop_Sub32),
2402 index = binop(Iop_Shl32, getIRegA(rM), mkU8(imm5));
2410 index = binop(Iop_Shr32, getIRegA(rM), mkU8(imm5));
2419 index = binop(Iop_Sar32, getIRegA(rM), mkU8(31));
2422 index = binop(Iop_Sar32, getIRegA(rM), mkU8(imm5));
2433 index = binop(Iop_Or32,
2434 binop(Iop_Shl32, mkexpr(cflagT), mkU8(31)),
2435 binop(Iop_Shr32, mkexpr(rmT), mkU8(1)));
2441 index = binop(Iop_Or32,
2442 binop(Iop_Shl32, mkexpr(rmT), mkU8(32-imm5)),
2443 binop(Iop_Shr32, mkexpr(rmT), mkU8(imm5)));
2451 return binop(bU == 1 ? Iop_Add32 : Iop_Sub32,
2467 binop( (bU == 1 ? Iop_Add32 : Iop_Sub32),
2484 return binop(bU == 1 ? Iop_Add32 : Iop_Sub32,
2533 binop(Iop_Or32,
2534 binop(Iop_And32,
2535 binop(Iop_Shr32, mkexpr(irRes), mkU8(5)),
2537 binop(Iop_And32, mkexpr(irRes), mkU32(1))));
2541 binop(Iop_Add32,
2542 binop(Iop_Shr32,
2543 binop(Iop_Sub32,
2544 binop(Iop_Shl32,
2545 binop(Iop_Xor32, mkexpr(ix), mkU32(1)),
2553 binop(Iop_And32,
2554 binop(Iop_And32,
2556 binop(Iop_Shr32, mkexpr(ix), mkU8(1))),
2559 assign(nzcv, binop(Iop_Sub32, mkexpr(termL), mkexpr(termR)));
2714 binop(Iop_Or32,
2715 binop(Iop_Shl32,
2716 binop(Iop_And32, mkexpr(x0), mkU32(c1)),
2718 binop(Iop_Shr32,
2719 binop(Iop_And32, mkexpr(x0), mkU32(~c1)),
2723 binop(Iop_Or32,
2724 binop(Iop_Shl32,
2725 binop(Iop_And32, mkexpr(x1), mkU32(c2)),
2727 binop(Iop_Shr32,
2728 binop(Iop_And32, mkexpr(x1), mkU32(~c2)),
2732 binop(Iop_Or32,
2733 binop(Iop_Shl32,
2734 binop(Iop_And32, mkexpr(x2), mkU32(c3)),
2736 binop(Iop_Shr32,
2737 binop(Iop_And32, mkexpr(x2), mkU32(~c3)),
2741 binop(Iop_Or32,
2742 binop(Iop_Shl32,
2743 binop(Iop_And32, mkexpr(x3), mkU32(c4)),
2745 binop(Iop_Shr32,
2746 binop(Iop_And32, mkexpr(x3), mkU32(~c4)),
2750 binop(Iop_Or32,
2751 binop(Iop_Shl32,
2752 binop(Iop_And32, mkexpr(x4), mkU32(c5)),
2754 binop(Iop_Shr32,
2755 binop(Iop_And32, mkexpr(x4), mkU32(~c5)),
2768 binop(Iop_Or32,
2769 binop(Iop_Shl32, mkexpr(arg), mkU8(24)),
2770 binop(Iop_Or32,
2771 binop(Iop_And32, binop(Iop_Shl32, mkexpr(arg), mkU8(8)),
2773 binop(Iop_Or32,
2774 binop(Iop_And32, binop(Iop_Shr32, mkexpr(arg), mkU8(8)),
2776 binop(Iop_And32, binop(Iop_Shr32, mkexpr(arg), mkU8(24)),
2789 binop(Iop_Or32,
2790 binop(Iop_And32,
2791 binop(Iop_Shl32, mkexpr(arg), mkU8(8)),
2793 binop(Iop_And32,
2794 binop(Iop_Shr32, mkexpr(arg), mkU8(8)),
2896 return binop(op, argL, argR);
2945 assign(new_arg, binop(Iop_Sub8x8, mkexpr(old_arg), mkU64(imm)));
2946 assign(cur_mask, binop(cmp, mkU64(imm), mkexpr(old_arg)));
2947 assign(new_mask, binop(Iop_Or64, mkexpr(old_mask), mkexpr(cur_mask)));
2948 assign(new_res, binop(Iop_Or64,
2950 binop(Iop_And64,
2951 binop(Iop_Perm8x8,
2953 binop(Iop_And64,
2964 assign(new_res, binop(Iop_Or64,
2965 binop(Iop_And64,
3027 assign(res, unop(op, binop(op2, mkexpr(arg_m), mkU8(index))));
3089 imm_val = binop(Iop_64HLtoV128, mkU64(imm), mkU64(imm));
3131 binop(addOp,
3132 binop(addOp,
3133 binop(shOp, mkexpr(arg_m), mkU8(1)),
3134 binop(shOp, mkexpr(arg_n), mkU8(1))),
3135 binop(shOp,
3136 binop(addOp,
3137 binop(andOp, mkexpr(arg_m), imm_val),
3138 binop(andOp, mkexpr(arg_n), imm_val)),
3196 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
3197 assign(tmp, binop(op2, mkexpr(arg_n), mkexpr(arg_m)));
3261 assign(cc, binop(shift_op,
3262 binop(add_op,
3263 binop(add_op,
3264 binop(Iop_AndV128,
3266 binop(Iop_64HLtoV128,
3269 binop(Iop_AndV128,
3271 binop(Iop_64HLtoV128,
3274 binop(Iop_64HLtoV128,
3278 assign(res, binop(add_op,
3279 binop(add_op,
3280 binop(shift_op,
3283 binop(shift_op,
3289 assign(cc, binop(shift_op,
3290 binop(add_op,
3291 binop(add_op,
3292 binop(Iop_And64,
3295 binop(Iop_And64,
3300 assign(res, binop(add_op,
3301 binop(add_op,
3302 binop(shift_op,
3305 binop(shift_op,
3320 assign(res, binop(Iop_AndV128, mkexpr(arg_n),
3323 assign(res, binop(Iop_And64, mkexpr(arg_n),
3334 assign(res, binop(Iop_AndV128,mkexpr(arg_n),
3337 assign(res, binop(Iop_And64, mkexpr(arg_n),
3349 assign(res, binop(Iop_OrV128, mkexpr(arg_n),
3352 assign(res, binop(Iop_Or64, mkexpr(arg_n),
3368 assign(res, binop(Iop_OrV128,mkexpr(arg_n),
3371 assign(res, binop(Iop_Or64, mkexpr(arg_n),
3384 assign(res, binop(Iop_XorV128, mkexpr(arg_n),
3387 assign(res, binop(Iop_Xor64, mkexpr(arg_n),
3399 binop(Iop_OrV128,
3400 binop(Iop_AndV128, mkexpr(arg_n),
3402 binop(Iop_AndV128,
3410 binop(Iop_Or64,
3411 binop(Iop_And64, mkexpr(arg_n),
3413 binop(Iop_And64,
3427 binop(Iop_OrV128,
3428 binop(Iop_AndV128, mkexpr(arg_n),
3430 binop(Iop_AndV128,
3437 binop(Iop_Or64,
3438 binop(Iop_And64, mkexpr(arg_n),
3440 binop(Iop_And64,
3454 binop(Iop_OrV128,
3455 binop(Iop_AndV128, mkexpr(reg_d),
3457 binop(Iop_AndV128,
3464 binop(Iop_Or64,
3465 binop(Iop_And64, mkexpr(reg_d),
3467 binop(Iop_And64,
3498 imm_val = binop(Iop_64HLtoV128, mkU64(imm), mkU64(imm));
3542 binop(subOp,
3543 binop(subOp,
3544 binop(shOp, mkexpr(arg_n), mkU8(1)),
3545 binop(shOp, mkexpr(arg_m), mkU8(1))),
3546 binop(andOp,
3547 binop(andOp,
3606 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
3607 assign(tmp, binop(op2, mkexpr(arg_n), mkexpr(arg_m)));
3636 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
3649 binop(op, mkexpr(arg_m), mkexpr(arg_n))));
3695 assign(res, binop(op, mkexpr(arg_m),
3698 assign(res, binop(op, mkexpr(arg_m), mkexpr(arg_n)));
3701 assign(tmp, binop(sub_op,
3702 binop(Iop_64HLtoV128, mkU64(0), mkU64(0)),
3705 assign(tmp, binop(sub_op, mkU64(0), mkexpr(arg_n)));
3707 assign(res, binop(op, mkexpr(arg_m),
3710 assign(res, binop(op, mkexpr(arg_m), mkexpr(tmp)));
3792 assign(res, binop(op, mkexpr(arg_m), mkexpr(arg_n)));
3795 assign(shval, binop(op_shrn,
3796 binop(op_shln,
3803 assign(shval, binop(Q ? Iop_OrV128 : Iop_Or64,
3805 binop(op_shln,
3815 setFlag_QC(binop(Q ? Iop_AndV128 : Iop_And64,
3816 binop(cmp_gt, mkexpr(shval),
3824 assign(mask, binop(cmp_gt, mkexpr(shval),
3827 assign(tmp, binop(op_rev, mkexpr(res),
3830 assign(tmp, binop(op_rev, mkexpr(res), mkexpr(arg_n)));
3831 setFlag_QC(binop(Q ? Iop_AndV128 : Iop_And64,
3833 binop(Q ? Iop_AndV128 : Iop_And64,
3927 assign(shval, binop(op_shrn,
3928 binop(op_shln,
3935 assign(shval, binop(Q ? Iop_OrV128 : Iop_Or64,
3937 binop(op_shln,
3943 assign(round, binop(Q ? Iop_AndV128 : Iop_And64,
3944 binop(op,
3947 binop(op_add,
3950 binop(Q ? Iop_AndV128 : Iop_And64,
3952 binop(cmp_gt,
3955 assign(res, binop(op_add,
3956 binop(op,
3961 assign(round, binop(Q ? Iop_AndV128 : Iop_And64,
3962 binop(op,
3964 binop(op_add,
3967 binop(Q ? Iop_AndV128 : Iop_And64,
3969 binop(cmp_gt,
3972 assign(res, binop(op_add,
3973 binop(op, mkexpr(arg_m), mkexpr(arg_n)),
4077 assign(shval, binop(op_shrn,
4078 binop(op_shln,
4085 assign(shval, binop(Q ? Iop_OrV128 : Iop_Or64,
4087 binop(op_shln,
4092 assign(round, binop(Q ? Iop_AndV128 : Iop_And64,
4093 binop(op,
4095 binop(op_add,
4098 binop(Q ? Iop_AndV128 : Iop_And64,
4100 binop(cmp_gt,
4103 assign(res, binop(op_add,
4104 binop(op, mkexpr(arg_m), mkexpr(arg_n)),
4112 setFlag_QC(binop(Q ? Iop_AndV128 : Iop_And64,
4113 binop(cmp_gt, mkexpr(shval),
4121 assign(mask, binop(cmp_gt, mkexpr(shval),
4124 assign(tmp, binop(op_rev, mkexpr(res),
4127 assign(tmp, binop(op_rev, mkexpr(res), mkexpr(arg_n)));
4128 setFlag_QC(binop(Q ? Iop_AndV128 : Iop_And64,
4130 binop(Q ? Iop_AndV128 : Iop_And64,
4161 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
4186 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
4245 assign(cond, binop(op_cmp, mkexpr(arg_n), mkexpr(arg_m)));
4246 assign(res, binop(Q ? Iop_OrV128 : Iop_Or64,
4247 binop(Q ? Iop_AndV128 : Iop_And64,
4248 binop(op_sub, mkexpr(arg_n),
4251 binop(Q ? Iop_AndV128 : Iop_And64,
4252 binop(op_sub, mkexpr(arg_m),
4323 assign(cond, binop(op_cmp, mkexpr(arg_n), mkexpr(arg_m)));
4324 assign(tmp, binop(Q ? Iop_OrV128 : Iop_Or64,
4325 binop(Q ? Iop_AndV128 : Iop_And64,
4326 binop(op_sub, mkexpr(arg_n),
4329 binop(Q ? Iop_AndV128 : Iop_And64,
4330 binop(op_sub, mkexpr(arg_m),
4334 assign(res, binop(op_add, mkexpr(acc), mkexpr(tmp)));
4369 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
4381 assign(res, unop(op, binop(Q ? Iop_AndV128 : Iop_And64,
4391 binop(Q ? Iop_XorV128 : Iop_Xor64,
4444 assign(res, binop(op2,
4446 binop(op, mkexpr(arg_n), mkexpr(arg_m))));
4472 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
4502 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
4534 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
4535 setFlag_QC(binop(Q ? Iop_AndV128 : Iop_And64,
4536 binop(op2, mkexpr(arg_n),
4538 binop(op2, mkexpr(arg_m),
4568 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
4569 setFlag_QC(binop(Q ? Iop_AndV128 : Iop_And64,
4570 binop(op2, mkexpr(arg_n),
4572 binop(op2, mkexpr(arg_m),
4593 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
4635 binop(Iop_Sub32Fx2,
4701 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
4715 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
4725 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
4739 assign(res, binop(op,
4744 assign(res, binop(op,
4770 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
4785 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
4793 assign(res, binop(Q ? Iop_Recps32Fx4 : Iop_Recps32Fx2,
4802 assign(res, binop(Q ? Iop_Rsqrts32Fx4 : Iop_Rsqrts32Fx2,
4873 putQReg(dreg, binop(op, mkexpr(arg_n), mkexpr(arg_m)),
4917 assign(tmp, binop(op, getQReg(nreg), getQReg(mreg)));
4920 assign(res, binop(op, mkexpr(tmp),
4921 binop(Iop_64HLtoV128, mkU64(imm), mkU64(imm))));
4925 putDRegI64(dreg, unop(cvt, binop(sh, mkexpr(res), mkU8(8 << size))),
4971 assign(cond, unop(cvt2, binop(cmp, getDRegI64(nreg),
4973 assign(res, binop(op2,
4974 binop(Iop_OrV128,
4975 binop(Iop_AndV128,
4976 binop(op, mkexpr(arg_n), mkexpr(arg_m)),
4978 binop(Iop_AndV128,
4979 binop(op, mkexpr(arg_m), mkexpr(arg_n)),
5027 assign(tmp, binop(op, getQReg(nreg), getQReg(mreg)));
5030 assign(res, binop(op2, mkexpr(tmp),
5031 binop(Iop_64HLtoV128, mkU64(imm), mkU64(imm))));
5035 putDRegI64(dreg, unop(cvt, binop(sh, mkexpr(res), mkU8(8 << size))),
5078 assign(cond, unop(cvt2, binop(cmp, getDRegI64(nreg),
5080 assign(res, binop(Iop_OrV128,
5081 binop(Iop_AndV128,
5082 binop(op, mkexpr(arg_n), mkexpr(arg_m)),
5084 binop(Iop_AndV128,
5085 binop(op, mkexpr(arg_m), mkexpr(arg_n)),
5117 assign(res, binop(op, getDRegI64(nreg),getDRegI64(mreg)));
5118 putQReg(dreg, binop(op2, getQReg(dreg), mkexpr(res)), condT);
5156 assign(res, binop(op, getDRegI64(nreg), getDRegI64(mreg)));
5157 assign(tmp, binop(op2, getQReg(dreg), mkexpr(res)));
5158 setFlag_QC(mkexpr(tmp), binop(add, getQReg(dreg), mkexpr(res)),
5160 setFlag_QC(binop(Iop_And64,
5161 binop(cmp, getDRegI64(nreg), mkU64(imm)),
5162 binop(cmp, getDRegI64(mreg), mkU64(imm))),
5165 putQReg(dreg, binop(add, getQReg(dreg), mkexpr(res)), condT);
5191 putQReg(dreg, binop(op, getDRegI64(nreg),
5224 putQReg(dreg, binop(op, getDRegI64(nreg), getDRegI64(mreg)),
5226 setFlag_QC(binop(Iop_And64,
5227 binop(op2, getDRegI64(nreg), mkU64(imm)),
5228 binop(op2, getDRegI64(mreg), mkU64(imm))),
5288 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5313 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5354 putDRegI64(dreg, binop(op2, getDRegI64(dreg), mkexpr(res)),
5392 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5411 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
5412 putQReg(dreg, binop(op2, getQReg(dreg), mkexpr(res)), condT);
5451 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5478 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
5479 assign(tmp, binop(op2, getQReg(dreg), mkexpr(res)));
5480 setFlag_QC(binop(Iop_And64,
5481 binop(cmp, mkexpr(arg_n), mkU64(imm)),
5482 binop(cmp, mkexpr(arg_m), mkU64(imm))),
5485 setFlag_QC(mkexpr(tmp), binop(add, getQReg(dreg), mkexpr(res)),
5487 putQReg(dreg, binop(add, getQReg(dreg), mkexpr(res)), condT);
5525 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5550 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5620 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5627 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
5664 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5685 putQReg(dreg, binop(op, mkexpr(arg_n), mkexpr(arg_m)),
5687 setFlag_QC(binop(Iop_And64,
5688 binop(op2, mkexpr(arg_n), mkU64(imm)),
5689 binop(op2, mkexpr(arg_m), mkU64(imm))),
5730 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5755 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5777 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),
5828 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5853 assign(arg_m, unop(dup, binop(get, getDRegI64(mreg), mkU8(index))));
5875 assign(res, binop(op, mkexpr(arg_n), mkexpr(arg_m)));
5876 setFlag_QC(binop(Q ? Iop_AndV128 : Iop_And64,
5877 binop(op2, mkexpr(arg_n),
5879 binop(op2, mkexpr(arg_m),
5962 imm_val = binop(Iop_64HLtoV128, mkU64(imm), mkU64(imm));
6011 binop(add,
6012 binop(op,
6015 binop(Q ? Iop_AndV128 : Iop_And64,
6016 binop(op,
6031 binop(add, mkexpr(res), getQReg(dreg)),
6034 putDRegI64(dreg, binop(add, mkexpr(res), getDRegI64(dreg)),
6105 assign(res, binop(op, mkexpr(reg_m), mkU8(shift_imm)));
6108 putQReg(dreg, binop(add, mkexpr(res), getQReg(dreg)),
6111 putDRegI64(dreg, binop(add, mkexpr(res), getDRegI64(dreg)),
6145 assign(mask, binop(op, binop(Iop_64HLtoV128,
6149 assign(res, binop(Iop_OrV128,
6150 binop(Iop_AndV128,
6154 binop(op,
6159 assign(mask, binop(op, mkU64(0xFFFFFFFFFFFFFFFFLL),
6161 assign(res, binop(Iop_Or64,
6162 binop(Iop_And64,
6166 binop(op,
6194 assign(mask, binop(op, binop(Iop_64HLtoV128,
6198 assign(res, binop(Iop_OrV128,
6199 binop(Iop_AndV128,
6203 binop(op,
6208 assign(mask, binop(op, mkU64(0xFFFFFFFFFFFFFFFFLL),
6210 assign(res, binop(Iop_Or64,
6211 binop(Iop_And64,
6215 binop(op,
6239 assign(res, binop(op, Q ? getQReg(mreg) : getDRegI64(mreg),
6344 assign(res, binop(op, mkexpr(reg_m), mkU8(shift_imm)));
6345 assign(tmp, binop(op_rev, mkexpr(res), mkU8(shift_imm)));
6385 binop(op,
6407 imm_val = binop(Iop_64HLtoV128, mkU64(imm), mkU64(imm));
6428 binop(addOp,
6429 binop(shOp,
6432 binop(Iop_AndV128,
6433 binop(shOp,
6525 assign(res, binop(add,
6526 binop(op, mkexpr(reg_m), mkU8(shift_imm)),
6527 binop(Iop_AndV128,
6528 binop(op,
6534 assign(res, binop(op, mkexpr(reg_m), mkU8(shift_imm)));
6568 assign(res, binop(op, unop(cvt, getDRegI64(mreg)), mkU8(shift_imm)));
6603 putQReg(dreg, binop(op, getQReg(mreg),
6606 putDRegI64(dreg, binop(op, getDRegI64(mreg),
6835 assign(res, binop(add_op, unop(op, mkexpr(arg_m)),
6848 zero1 = binop(Iop_64HLtoV128, mkU64(0), mkU64(0));
6849 zero2 = binop(Iop_64HLtoV128, mkU64(0), mkU64(0));
6879 assign(mask, binop(op_cmp, mkexpr(arg_m), zero1));
6880 neg = binop(op_qsub, zero2, mkexpr(arg_m));
6881 neg2 = binop(op_sub, zero2, mkexpr(arg_m));
6882 assign(res, binop(Q ? Iop_OrV128 : Iop_Or64,
6883 binop(Q ? Iop_AndV128 : Iop_And64,
6886 binop(Q ? Iop_AndV128 : Iop_And64,
6890 assign(tmp, binop(Q ? Iop_OrV128 : Iop_Or64,
6891 binop(Q ? Iop_AndV128 : Iop_And64,
6894 binop(Q ? Iop_AndV128 : Iop_And64,
6908 zero = binop(Iop_64HLtoV128, mkU64(0), mkU64(0));
6930 assign(res, binop(op, zero, mkexpr(arg_m)));
6931 setFlag_QC(mkexpr(res), binop(op2, zero, mkexpr(arg_m)),
6962 zero = binop(Iop_64HLtoV128, mkU64(0), mkU64(0));
6981 assign(res, binop(op, mkexpr(arg_m), zero));
6991 zero = binop(Iop_64HLtoV128, mkU64(0), mkU64(0));
7001 assign(res, binop(op, mkexpr(arg_m), zero));
7011 binop(op, zero, mkexpr(arg_m))));
7023 zero = binop(Iop_64HLtoV128, mkU64(0), mkU64(0));
7032 assign(res, binop(op, zero, mkexpr(arg_m)));
7053 zero = binop(Iop_64HLtoV128, mkU64(0), mkU64(0));
7063 assign(res, binop(op, zero, mkexpr(arg_m)));
7073 binop(op, mkexpr(arg_m), zero)));
7084 zero = binop(Iop_64HLtoV128, mkU64(0), mkU64(0));
7094 assign(res, binop(op, zero, mkexpr(arg_m)));
7103 assign(res, binop(op, zero, mkexpr(arg_m)));
7145 zero = binop(Iop_64HLtoV128, mkU64(0), mkU64(0));
7156 assign(res, binop(op, zero, mkexpr(arg_m)));
7247 assign(new_d, binop(op_even, mkexpr(old_m), mkexpr(old_d)));
7248 assign(new_m, binop(op_odd, mkexpr(old_m), mkexpr(old_d)));
7298 assign(new_d, binop(op_even, mkexpr(old_m), mkexpr(old_d)));
7299 assign(new_m, binop(op_odd, mkexpr(old_m), mkexpr(old_d)));
7349 assign(new_d, binop(op_lo, mkexpr(old_m), mkexpr(old_d)));
7350 assign(new_m, binop(op_hi, mkexpr(old_m), mkexpr(old_d)));
7452 assign(res, binop(op, unop(cvt, getDRegI64(mreg)),
7714 imm_val = binop(Iop_64HLtoV128, mkU64(imm), mkU64(imm));
7751 expr = binop(Iop_OrV128, mkexpr(tmp_var), imm_val);
7753 expr = binop(Iop_Or64, mkexpr(tmp_var), imm_val);
7758 expr = binop(Iop_AndV128, mkexpr(tmp_var),
7761 expr = binop(Iop_And64, mkexpr(tmp_var), unop(Iop_Not64, imm_val));
7856 loadLE(Ity_I8, binop(Iop_Add32,
7866 loadLE(Ity_I16, binop(Iop_Add32,
7876 loadLE(Ity_I32, binop(Iop_Add32,
7897 binop(Iop_GetElem8x8, getDRegI64(rD), mkU8(index)));
7901 binop(Iop_GetElem16x4, getDRegI64(rD), mkU8(index)));
7905 binop(Iop_GetElem32x2, getDRegI64(rD), mkU8(index)));
7913 storeLE(binop(Iop_Add32, mkexpr(addr), mkU32(i * 1)),
7914 binop(Iop_GetElem8x8, getDRegI64(rD + i * inc),
7918 storeLE(binop(Iop_Add32, mkexpr(addr), mkU32(i * 2)),
7919 binop(Iop_GetElem16x4, getDRegI64(rD + i * inc),
7923 storeLE(binop(Iop_Add32, mkexpr(addr), mkU32(i * 4)),
7924 binop(Iop_GetElem32x2, getDRegI64(rD + i * inc),
7948 assign(*u0, binop(Iop_InterleaveLO32x2, mkexpr(i1), mkexpr(i0)));
7949 assign(*u1, binop(Iop_InterleaveHI32x2, mkexpr(i1), mkexpr(i0)));
7954 assign(*u0, binop(Iop_CatEvenLanes16x4, mkexpr(i1), mkexpr(i0)));
7955 assign(*u1, binop(Iop_CatOddLanes16x4, mkexpr(i1), mkexpr(i0)));
7960 assign(*u0, binop(Iop_CatEvenLanes8x8, mkexpr(i1), mkexpr(i0)));
7961 assign(*u1, binop(Iop_CatOddLanes8x8, mkexpr(i1), mkexpr(i0)));
7984 assign(*i0, binop(Iop_InterleaveLO32x2, mkexpr(u1), mkexpr(u0)));
7985 assign(*i1, binop(Iop_InterleaveHI32x2, mkexpr(u1), mkexpr(u0)));
7990 assign(*i0, binop(Iop_InterleaveLO16x4, mkexpr(u1), mkexpr(u0)));
7991 assign(*i1, binop(Iop_InterleaveHI16x4, mkexpr(u1), mkexpr(u0)));
7996 assign(*i0, binop(Iop_InterleaveLO8x8, mkexpr(u1), mkexpr(u0)));
7997 assign(*i1, binop(Iop_InterleaveHI8x8, mkexpr(u1), mkexpr(u0)));
8027 assign(h3, binop(Iop_InterleaveHI8x8,
8028 binop(Iop_Shl64, SRC_VEC(7), SRC_SHIFT(7)),
8029 binop(Iop_Shl64, SRC_VEC(6), SRC_SHIFT(6))));
8030 assign(h2, binop(Iop_InterleaveHI8x8,
8031 binop(Iop_Shl64, SRC_VEC(5), SRC_SHIFT(5)),
8032 binop(Iop_Shl64, SRC_VEC(4), SRC_SHIFT(4))));
8033 assign(h1, binop(Iop_InterleaveHI8x8,
8034 binop(Iop_Shl64, SRC_VEC(3), SRC_SHIFT(3)),
8035 binop(Iop_Shl64, SRC_VEC(2), SRC_SHIFT(2))));
8036 assign(h0, binop(Iop_InterleaveHI8x8,
8037 binop(Iop_Shl64, SRC_VEC(1), SRC_SHIFT(1)),
8038 binop(Iop_Shl64, SRC_VEC(0), SRC_SHIFT(0))));
8046 assign(w1, binop(Iop_InterleaveHI16x4, mkexpr(h3), mkexpr(h2)));
8047 assign(w0, binop(Iop_InterleaveHI16x4, mkexpr(h1), mkexpr(h0)));
8048 return binop(Iop_InterleaveHI32x2, mkexpr(w1), mkexpr(w0));
8058 # define IHI32x2(_e1, _e2) binop(Iop_InterleaveHI32x2, (_e1), (_e2))
8059 # define IHI16x4(_e1, _e2) binop(Iop_InterleaveHI16x4, (_e1), (_e2))
8060 # define SHL64(_tmp, _amt) binop(Iop_Shl64, mkexpr(_tmp), mkU8(_amt))
8113 # define IHI32x2(_e1, _e2) binop(Iop_InterleaveHI32x2, (_e1), (_e2))
8114 # define IHI16x4(_e1, _e2) binop(Iop_InterleaveHI16x4, (_e1), (_e2))
8115 # define SHL64(_tmp, _amt) binop(Iop_Shl64, mkexpr(_tmp), mkU8(_amt))
8170 binop(Iop_InterleaveHI32x2, mkexpr(_t1), mkexpr(_t2))
8172 binop(Iop_InterleaveLO32x2, mkexpr(_t1), mkexpr(_t2))
8174 binop(Iop_InterleaveHI16x4, mkexpr(_t1), mkexpr(_t2))
8176 binop(Iop_InterleaveLO16x4, mkexpr(_t1), mkexpr(_t2))
8178 binop(Iop_InterleaveHI8x8, mkexpr(_t1), _e2)
8180 binop(Iop_Shl64, mkexpr(_tmp), mkU8(_amt))
8250 binop(Iop_InterleaveHI32x2, mkexpr(_t1), mkexpr(_t2))
8252 binop(Iop_InterleaveLO32x2, mkexpr(_t1), mkexpr(_t2))
8254 binop(Iop_CatEvenLanes16x4, mkexpr(_t1), mkexpr(_t2))
8256 binop(Iop_CatOddLanes16x4, mkexpr(_t1), mkexpr(_t2))
8258 binop(Iop_CatOddLanes8x8, mkexpr(_t1), _e2)
8260 binop(Iop_Shl64, mkexpr(_tmp), mkU8(_amt))
8457 loadLE(Ity_I8, binop(Iop_Add32,
8465 loadLE(Ity_I16, binop(Iop_Add32,
8473 loadLE(Ity_I32, binop(Iop_Add32,
8501 IRExpr* e = binop(Iop_Add32,
8509 IRExpr* e = binop(Iop_Add32,
8589 assign(tmp, binop(Iop_Add32, mkexpr(addr), mkU32(8)));
8617 IRExpr* a0 = binop(Iop_Add32, mkexpr(addr), mkU32(0));
8618 IRExpr* a1 = binop(Iop_Add32, mkexpr(addr), mkU32(8));
8637 assign(tmp, binop(Iop_Add32, mkexpr(addr), mkU32(16)));
8642 IRExpr* a0 = binop(Iop_Add32, mkexpr(addr), mkU32(0));
8643 IRExpr* a1 = binop(Iop_Add32, mkexpr(addr), mkU32(8));
8644 IRExpr* a2 = binop(Iop_Add32, mkexpr(addr), mkU32(16));
8645 IRExpr* a3 = binop(Iop_Add32, mkexpr(addr), mkU32(24));
8681 assign(tmp, binop(Iop_Add32, mkexpr(addr), mkU32(32)));
8690 IRExpr* a0 = binop(Iop_Add32, mkexpr(addr), mkU32(0));
8691 IRExpr* a1 = binop(Iop_Add32, mkexpr(addr), mkU32(8));
8692 IRExpr* a2 = binop(Iop_Add32, mkexpr(addr), mkU32(16));
8717 assign(tmp, binop(Iop_Add32, mkexpr(addr), mkU32(24)));
8725 IRExpr* a0 = binop(Iop_Add32, mkexpr(addr), mkU32(0));
8726 IRExpr* a1 = binop(Iop_Add32, mkexpr(addr), mkU32(8));
8727 IRExpr* a2 = binop(Iop_Add32, mkexpr(addr), mkU32(16));
8728 IRExpr* a3 = binop(Iop_Add32, mkexpr(addr), mkU32(24));
8761 assign(tmp, binop(Iop_Add32, mkexpr(addr), mkU32(32)));
8772 e = binop(Iop_Add32, mkexpr(initialRn),
8775 e = binop(Iop_Add32, mkexpr(initialRn),
8978 assign( srcN, binop(Iop_Sar32,
8979 binop(Iop_Shl32,
8982 assign( srcM, binop(Iop_Sar32,
8983 binop(Iop_Shl32,
8986 assign( res, binop(Iop_Mul32, mkexpr(srcN), mkexpr(srcM)) );
9033 binop(Iop_MullS32,
9035 binop(Iop_Sar32,
9036 binop(Iop_Shl32,
9041 IRExpr* ire_result = binop(Iop_Or32,
9042 binop( Iop_Shl32,
9045 binop( Iop_Shr32,
9104 = binop( Iop_Or32,
9105 binop(Iop_And32, mkexpr(irt_regM_shift), mkU32(mask)),
9106 binop(Iop_And32, isT ? getIRegT(regN) : getIRegA(regN),
9276 binop( Iop_Sar32,
9277 binop(Iop_Shl32, mkexpr(irt_regN), mkU8(16)),
9279 assign( irt_regN_hi, binop(Iop_Sar32, mkexpr(irt_regN), mkU8(16)) );
9288 = binop(Iop_Or32,
9289 binop(Iop_And32, mkexpr(irt_res_lo), mkU32(0xFFFF)),
9290 binop(Iop_Shl32, mkexpr(irt_res_hi), mkU8(16)));
9337 assign( irt_regN_lo, binop( Iop_Sar32,
9338 binop(Iop_Shl32, mkexpr(irt_regN), mkU8(16)),
9340 assign( irt_regN_hi, binop(Iop_Sar32, mkexpr(irt_regN), mkU8(16)) );
9348 IRExpr* ire_result = binop( Iop_Or32,
9349 binop(Iop_Shl32, mkexpr(irt_res_hi), mkU8(16)),
9397 assign(res, binop(Iop_Add16x2, mkexpr(rNt), mkexpr(rMt)));
9403 assign(reso, binop(Iop_HAdd16Ux2, mkexpr(rNt), mkexpr(rMt)));
9446 assign(res, binop(Iop_Add16x2, mkexpr(rNt), mkexpr(rMt)));
9453 binop(Iop_HAdd16Sx2, mkexpr(rNt), mkexpr(rMt))));
9496 assign(res, binop(Iop_Sub16x2, mkexpr(rNt), mkexpr(rMt)));
9503 binop(Iop_HSub16Ux2, mkexpr(rNt), mkexpr(rMt))));
9546 assign(res, binop(Iop_Sub16x2, mkexpr(rNt), mkexpr(rMt)));
9553 binop(Iop_HSub16Sx2, mkexpr(rNt), mkexpr(rMt))));
9596 assign(res, binop(Iop_Add8x4, mkexpr(rNt), mkexpr(rMt)));
9602 assign(reso, binop(Iop_HAdd8Ux4, mkexpr(rNt), mkexpr(rMt)));
9645 assign(res, binop(Iop_Add8x4, mkexpr(rNt), mkexpr(rMt)));
9652 binop(Iop_HAdd8Sx4, mkexpr(rNt), mkexpr(rMt))));
9695 assign(res, binop(Iop_Sub8x4, mkexpr(rNt), mkexpr(rMt)));
9702 binop(Iop_HSub8Ux4, mkexpr(rNt), mkexpr(rMt))));
9745 assign(res, binop(Iop_Sub8x4, mkexpr(rNt), mkexpr(rMt)));
9752 binop(Iop_HSub8Sx4, mkexpr(rNt), mkexpr(rMt))));
9794 assign(res_q, binop(Iop_QAdd8Sx4, mkexpr(rNt), mkexpr(rMt)));
9839 assign(res_q, binop(Iop_QSub8Sx4, mkexpr(rNt), mkexpr(rMt)));
9884 assign(res_q, binop(Iop_QAdd8Ux4, mkexpr(rNt), mkexpr(rMt)));
9929 assign(res_q, binop(Iop_QSub8Ux4, mkexpr(rNt), mkexpr(rMt)));
9974 assign(res_q, binop(Iop_HAdd8Ux4, mkexpr(rNt), mkexpr(rMt)));
10019 assign(res_q, binop(Iop_HAdd16Ux2, mkexpr(rNt), mkexpr(rMt)));
10064 assign(res_q, binop(Iop_HAdd8Sx4, mkexpr(rNt), mkexpr(rMt)));
10109 assign(res_q, binop(Iop_QAdd16Sx2, mkexpr(rNt), mkexpr(rMt)));
10154 assign(res_q, binop(Iop_QSub16Sx2, mkexpr(rNt), mkexpr(rMt)));
10205 binop( Iop_Sub32,
10206 binop( Iop_Sar32, mkexpr(irt_regN), mkU8(16) ),
10207 binop( Iop_Sar32,
10208 binop(Iop_Shl32, mkexpr(irt_regM), mkU8(16)),
10213 binop( Iop_Add32,
10214 binop( Iop_Sar32,
10215 binop( Iop_Shl32, mkexpr(irt_regN), mkU8(16) ),
10217 binop( Iop_Sar32, mkexpr(irt_regM), mkU8(16) )) );
10220 IRExpr* ire_result = binop( Iop_Or32,
10221 binop( Iop_Shl32, mkexpr(irt_diff_res),
10223 binop( Iop_And32, mkexpr(irt_sum_res),
10274 binop( Iop_Sub32,
10275 binop( Iop_Sar32,
10276 binop( Iop_Shl32, mkexpr(irt_regN), mkU8(16) ),
10278 binop( Iop_Sar32, mkexpr(irt_regM), mkU8(16) ) ) );
10282 binop( Iop_Add32,
10283 binop( Iop_Sar32, mkexpr(irt_regN), mkU8(16) ),
10284 binop( Iop_Sar32,
10285 binop( Iop_Shl32, mkexpr(irt_regM), mkU8(16) ),
10290 = binop( Iop_Or32,
10291 binop( Iop_Shl32, mkexpr(irt_res_sum), mkU8(16) ),
10292 binop( Iop_And32, mkexpr(irt_res_diff), mkU32(0xFFFF) ) );
10340 binop( Iop_Sub32,
10341 binop( Iop_Sar32,
10342 binop( Iop_Shl32, mkexpr(irt_regN), mkU8(16) ),
10344 binop( Iop_Sar32, mkexpr(irt_regM), mkU8(16) ) ) );
10347 binop( Iop_Add32,
10348 binop( Iop_Sar32, mkexpr(irt_regN), mkU8(16) ),
10349 binop( Iop_Sar32,
10350 binop( Iop_Shl32, mkexpr(irt_regM), mkU8(16) ),
10354 = binop( Iop_Or32,
10355 binop( Iop_Shl32, mkexpr(irt_sum), mkU8(16) ),
10356 binop( Iop_And32, mkexpr(irt_diff), mkU32(0xFFFF) ) );
10423 binop( Iop_Mul32,
10424 binop( Iop_Sar32,
10425 binop(Iop_Shl32, mkexpr(irt_regN), mkU8(16)),
10427 binop( Iop_Sar32,
10428 binop(Iop_Shl32, mkexpr(irt_regM), mkU8(16)),
10430 assign( irt_prod_hi, binop(Iop_Mul32,
10431 binop(Iop_Sar32, mkexpr(irt_regN), mkU8(16)),
10432 binop(Iop_Sar32, mkexpr(irt_regM), mkU8(16))) );
10434 = binop( isAD ? Iop_Add32 : Iop_Sub32,
10507 binop(Iop_Mul32,
10508 binop(Iop_Sar32,
10509 binop( Iop_Shl32, mkexpr(irt_regN), mkU8(16) ),
10511 binop(Iop_Sar32,
10512 binop( Iop_Shl32, mkexpr(irt_regM), mkU8(16) ),
10515 binop( Iop_Mul32,
10516 binop( Iop_Sar32, mkexpr(irt_regN), mkU8(16) ),
10517 binop( Iop_Sar32, mkexpr(irt_regM), mkU8(16) ) ) );
10518 assign( irt_sum, binop( isAD ? Iop_Add32 : Iop_Sub32,
10521 IRExpr* ire_result = binop(Iop_Add32, mkexpr(irt_sum), mkexpr(irt_regA));
10585 binop(Iop_Mul32,
10586 binop(Iop_Sar32,
10587 binop(Iop_Shl32,
10591 binop(Iop_Sar32,
10592 binop(Iop_Shl32,
10599 IRExpr* ire_result = binop(Iop_Add32, mkexpr(irt_prod), mkexpr(irt_regA));
10659 binop(Iop_MullS32,
10660 binop(Iop_Sar32,
10661 binop(Iop_Shl32,
10665 binop(Iop_Sar32,
10666 binop(Iop_Shl32,
10671 assign( irt_regD, binop(Iop_32HLto64,
10674 assign( irt_res, binop(Iop_Add64, mkexpr(irt_regD), mkexpr(irt_prod)) );
10728 binop(Iop_MullS32,
10730 binop(Iop_Sar32,
10731 binop(Iop_Shl32,
10740 binop(Iop_Or32,
10741 binop(Iop_Shl32, unop(Iop_64HIto32, mkexpr(irt_prod)), mkU8(16)),
10742 binop(Iop_Shr32, unop(Iop_64to32, mkexpr(irt_prod)), mkU8(16))
10745 IRExpr* ire_result = binop(Iop_Add32, mkexpr(prod32), mkexpr(irt_regA));
10804 = binop(Iop_Or32, mkexpr(irt_ge_flag0),
10805 binop(Iop_Sub32, mkU32(0), mkexpr(irt_ge_flag0)));
10807 = binop(Iop_Or32, mkexpr(irt_ge_flag1),
10808 binop(Iop_Sub32, mkU32(0), mkexpr(irt_ge_flag1)));
10810 = binop(Iop_Or32, mkexpr(irt_ge_flag2),
10811 binop(Iop_Sub32, mkU32(0), mkexpr(irt_ge_flag2)));
10813 = binop(Iop_Or32, mkexpr(irt_ge_flag3),
10814 binop(Iop_Sub32, mkU32(0), mkexpr(irt_ge_flag3)));
10817 = binop( Iop_Or32,
10818 binop(Iop_Or32,
10819 binop(Iop_And32,
10820 binop(Iop_Sar32, ire_ge_flag0_or, mkU8(31)),
10822 binop(Iop_And32,
10823 binop(Iop_Sar32, ire_ge_flag1_or, mkU8(31)),
10825 binop(Iop_Or32,
10826 binop(Iop_And32,
10827 binop(Iop_Sar32, ire_ge_flag2_or, mkU8(31)),
10829 binop(Iop_And32,
10830 binop(Iop_Sar32, ire_ge_flag3_or, mkU8(31)),
10834 = binop(Iop_Or32,
10835 binop(Iop_And32,
10838 binop(Iop_And32,
10887 assign( irt_rot, binop(Iop_And32,
10892 = binop(Iop_And32,
10893 binop(Iop_Add32, mkexpr(irt_regN), mkexpr(irt_rot)),
10897 = binop(Iop_Add32,
10898 binop(Iop_And32, mkexpr(irt_regN), mkU32(0xFFFF0000)),
10899 binop(Iop_And32, mkexpr(irt_rot), mkU32(0xFFFF0000)));
10902 = binop( Iop_Or32, resHi, resLo );
10949 IRExpr* res = binop(Iop_Add32,
10950 binop(Iop_Sad8Ux4, rNe, rMe),
11002 assign(res_q, binop(Iop_QAdd32S, mkexpr(rMt), mkexpr(rNt)));
11010 binop(Iop_Add32, mkexpr(rMt), mkexpr(rNt)), rMt, rNt),
11056 binop(Iop_Add32, mkexpr(rNt), mkexpr(rNt)), rNt, rNt),
11060 assign(rN_d, binop(Iop_QAdd32S, mkexpr(rNt), mkexpr(rNt)));
11061 assign(res_q, binop(Iop_QAdd32S, mkexpr(rMt), mkexpr(rN_d)));
11069 binop(Iop_Add32, mkexpr(rMt), mkexpr(rN_d)), rMt, rN_d),
11112 assign(res_q, binop(Iop_QSub32S, mkexpr(rMt), mkexpr(rNt)));
11120 binop(Iop_Sub32, mkexpr(rMt), mkexpr(rNt)), rMt, rNt),
11166 binop(Iop_Add32, mkexpr(rNt), mkexpr(rNt)), rNt, rNt),
11170 assign(rN_d, binop(Iop_QAdd32S, mkexpr(rNt), mkexpr(rNt)));
11171 assign(res_q, binop(Iop_QSub32S, mkexpr(rMt), mkexpr(rN_d)));
11179 binop(Iop_Sub32, mkexpr(rMt), mkexpr(rN_d)), rMt, rN_d),
11222 assign(res_q, binop(Iop_QSub16Ux2, mkexpr(rNt), mkexpr(rMt)));
11267 assign(res_q, binop(Iop_HAdd16Sx2, mkexpr(rNt), mkexpr(rMt)));
11312 assign(res_q, binop(Iop_HSub8Ux4, mkexpr(rNt), mkexpr(rMt)));
11357 assign(res_q, binop(Iop_HSub16Ux2, mkexpr(rNt), mkexpr(rMt)));
11402 assign(res_q, binop(Iop_QAdd16Ux2, mkexpr(rNt), mkexpr(rMt)));
11451 binop( Iop_Sub32,
11452 binop( Iop_Shr32, mkexpr(irt_regN), mkU8(16) ),
11453 binop( Iop_Shr32,
11454 binop(Iop_Shl32, mkexpr(irt_regM), mkU8(16)),
11459 binop( Iop_Add32,
11460 binop( Iop_Shr32,
11461 binop( Iop_Shl32, mkexpr(irt_regN), mkU8(16) ),
11463 binop( Iop_Shr32, mkexpr(irt_regM), mkU8(16) )) );
11466 IRExpr* ire_result = binop( Iop_Or32,
11467 binop( Iop_Shl32, mkexpr(irt_diff_res),
11469 binop( Iop_And32, mkexpr(irt_sum_res),
11520 binop( Iop_Sub32,
11521 binop( Iop_Shr32,
11522 binop( Iop_Shl32, mkexpr(irt_regN), mkU8(16) ),
11524 binop( Iop_Shr32, mkexpr(irt_regM), mkU8(16) ) ) );
11528 binop( Iop_Add32,
11529 binop( Iop_Shr32, mkexpr(irt_regN), mkU8(16) ),
11530 binop( Iop_Shr32,
11531 binop( Iop_Shl32, mkexpr(irt_regM), mkU8(16) ),
11536 = binop( Iop_Or32,
11537 binop( Iop_Shl32, mkexpr(irt_res_sum), mkU8(16) ),
11538 binop( Iop_And32, mkexpr(irt_res_diff), mkU32(0xFFFF) ) );
11586 binop( Iop_Add32,
11590 binop( Iop_Shr32, mkexpr(irt_regM), mkU8(16) ) ) );
11593 binop( Iop_Sub32,
11594 binop( Iop_Shr32, mkexpr(irt_regN), mkU8(16) ),
11602 = binop( Iop_Or32,
11603 binop( Iop_Shl32, mkexpr(irt_diff), mkU8(16) ),
11604 binop( Iop_And32, mkexpr(irt_sum), mkU32(0xFFFF) ) );
11607 assign( ge10, IRExpr_ITE( binop( Iop_CmpLE32U,
11664 binop( Iop_Sub32,
11668 binop( Iop_Shr32, mkexpr(irt_regM), mkU8(16) ) ) );
11671 binop( Iop_Add32,
11672 binop( Iop_Shr32, mkexpr(irt_regN), mkU8(16) ),
11678 = binop( Iop_Or32,
11679 binop( Iop_Shl32, mkexpr(irt_sum), mkU8(16) ),
11680 binop( Iop_And32, mkexpr(irt_diff), mkU32(0xFFFF) ) );
11688 assign( ge32, IRExpr_ITE( binop( Iop_CmpLE32U,
11740 binop( Iop_Add32,
11741 binop( Iop_Sar32,
11742 binop( Iop_Shl32, mkexpr(irt_regN), mkU8(16) ),
11744 binop( Iop_Sar32, mkexpr(irt_regM), mkU8(16) ) ) );
11747 binop( Iop_Sub32,
11748 binop( Iop_Sar32, mkexpr(irt_regN), mkU8(16) ),
11749 binop( Iop_Sar32,
11750 binop( Iop_Shl32, mkexpr(irt_regM), mkU8(16) ),
11754 = binop( Iop_Or32,
11755 binop( Iop_Shl32, mkexpr(irt_diff), mkU8(16) ),
11756 binop( Iop_And32, mkexpr(irt_sum), mkU32(0xFFFF) ) );
11812 assign(res_q, binop(Iop_HSub8Sx4, mkexpr(rNt), mkexpr(rMt)));
11862 = binop(Iop_And32,
11863 binop(Iop_Add32,
11871 = binop(Iop_And32,
11872 binop(Iop_Add32,
11874 binop(Iop_Shl32,
11878 binop(Iop_Shr32,
11885 = binop( Iop_Or32, resHi, resLo );
11935 binop(Iop_Sub32,
11943 binop(Iop_Shr32,
11952 binop(Iop_Add32,
11955 binop(Iop_Shr32,
11968 binop(Iop_Or32,
11971 binop(Iop_Shr32,
11976 binop(Iop_Shl32,
11977 binop(Iop_Shr32,
12032 binop(Iop_Sub32,
12040 binop(Iop_Shr32,
12049 binop(Iop_Add32,
12052 binop(Iop_Shr32,
12065 binop(Iop_Or32,
12068 binop(Iop_Shr32,
12073 binop(Iop_Shl32,
12074 binop(Iop_Shr32,
12129 binop(Iop_Add32,
12137 binop(Iop_Shr32,
12146 binop(Iop_Sub32,
12149 binop(Iop_Shr32,
12162 binop(Iop_Or32,
12165 binop(Iop_Shr32,
12170 binop(Iop_Shl32,
12171 binop(Iop_Shr32,
12226 binop(Iop_Add32,
12234 binop(Iop_Shr32,
12243 binop(Iop_Sub32,
12246 binop(Iop_Shr32,
12259 binop(Iop_Or32,
12262 binop(Iop_Shr32,
12267 binop(Iop_Shl32,
12268 binop(Iop_Shr32,
12320 assign(res_q, binop(Iop_HSub16Sx2, mkexpr(rNt), mkexpr(rMt)));
12373 binop(Iop_Add64,
12374 binop(Iop_Sub64,
12375 binop(Iop_32HLto64, mkexpr(irt_rA), mkU32(0)),
12376 binop(Iop_MullS32, mkexpr(irt_rN), mkexpr(irt_rM))),
12437 assign( pr_1, binop(Iop_MullS32,
12446 assign( pr_2, binop(Iop_MullS32,
12447 binop(Iop_Sar32, mkexpr(irt_rN), mkU8(16)),
12448 binop(Iop_Sar32, mkexpr(op_2), mkU8(16))
12451 assign( result, binop(Iop_Add64,
12452 binop(Iop_Add64,
12456 binop(Iop_32HLto64,
12525 assign( pr_1, binop(Iop_MullS32,
12534 assign( pr_2, binop(Iop_MullS32,
12535 binop(Iop_Sar32, mkexpr(irt_rN), mkU8(16)),
12536 binop(Iop_Sar32, mkexpr(op_2), mkU8(16))
12539 assign( result, binop(Iop_Add64,
12540 binop(Iop_Sub64,
12544 binop(Iop_32HLto64,
12613 /* assign(anchorT, binop(Iop_And32, mkexpr(oldRnT), mkU32(~3U))); */
12634 IRExpr* e = binop(opADDorSUB, mkexpr(oldRnT), mkU32(4*nRegs));
12735 binop(opADDorSUB, mkexpr(anchorT),
12749 storeLE( binop(opADDorSUB, mkexpr(anchorT), mkU32(xOff[i])),
12758 IRExpr* e = binop(opADDorSUB, mkexpr(oldRnT), mkU32(4*nRegs));
12904 assign(rnTnew, binop(summary == 2 ? Iop_Add32 : Iop_Sub32,
12925 IRExpr* addr = binop(Iop_Add32, mkexpr(taT), mkU32(8*i));
13041 assign(rnTnew, binop(summary == 2 ? Iop_Add32 : Iop_Sub32,
13062 IRExpr* addr = binop(Iop_Add32, mkexpr(taT), mkU32(8*i));
13112 assign(nzcvT, binop(Iop_And32,
13156 binop(Iop_32HLto64,
13297 binop(Iop_GetElem8x8,
13311 binop(Iop_GetElem16x4,
13324 IRExpr* e = binop(Iop_GetElem32x2, getDRegI64(rN), mkU8(index));
13440 assign(ea, binop(bU ? Iop_Add32 : Iop_Sub32,
13588 assign(irRes, binop(Iop_CmpF64, mkexpr(argL), mkexpr(argR)));
13612 binop(Iop_Or32,
13613 binop(Iop_And32, mkexpr(oldFPSCR), mkU32(0x0FFFFFFF)),
13614 binop(Iop_Shl32, mkexpr(nzcv), mkU8(28))));
13658 putDReg(dD, binop(Iop_SqrtF64, rm, getDReg(dM)), condT);
13711 binop(Iop_F64toI32S, mkexpr(rmode),
13719 binop(Iop_F64toI32U, mkexpr(rmode),
13811 assign(rnTnew, binop(summary == 2 ? Iop_Add32 : Iop_Sub32,
13832 IRExpr* addr = binop(Iop_Add32, mkexpr(taT), mkU32(4*i));
13923 assign(ea, binop(bU ? Iop_Add32 : Iop_Sub32,
14077 assign(irRes, binop(Iop_CmpF64, mkexpr(argL), mkexpr(argR)));
14101 binop(Iop_Or32,
14102 binop(Iop_And32, mkexpr(oldFPSCR), mkU32(0x0FFFFFFF)),
14103 binop(Iop_Shl32, mkexpr(nzcv), mkU8(28))));
14150 putFReg(fD, binop(Iop_SqrtF32, rm, getFReg(fM)), condT);
14181 putFReg(fD, binop(Iop_F64toF32,
14189 putFReg(fD, binop(Iop_F64toF32,
14216 binop(Iop_F64toI32S, mkexpr(rmode),
14225 binop(Iop_F64toI32U, mkexpr(rmode),
14259 putFReg(fD, binop(Iop_F64toF32, mkexpr(rmode), getDReg(dM)),
14313 IRExpr* resF32 = binop(Iop_F64toF32, mkexpr(rmode), resF64);
14356 assign(asI32, binop(unsyned ? Iop_F64toI32U : Iop_F64toI32S,
14760 assign(res, binop(op, mkexpr(shop), mkexpr(rNt)) );
14764 assign(res, binop(op, mkexpr(rNt),
14768 assign(res, binop(op, mkexpr(rNt), mkexpr(shop)) );
14899 assign( res, binop(isTEQ ? Iop_Xor32 : Iop_And32,
14936 binop(Iop_Add32,
14937 binop(Iop_Add32, mkexpr(rNt), mkexpr(shop)),
14942 binop(Iop_Sub32,
14943 binop(Iop_Sub32, mkexpr(rNt), mkexpr(shop)),
14944 binop(Iop_Xor32, mkexpr(oldC), mkU32(1)) ));
14948 binop(Iop_Sub32,
14949 binop(Iop_Sub32, mkexpr(shop), mkexpr(rNt)),
14950 binop(Iop_Xor32, mkexpr(oldC), mkU32(1)) ));
15632 binop(Iop_CmpEQ32, mkexpr(arg), mkU32(0)),
15660 assign( res, binop(Iop_Mul32, mkexpr(argL), mkexpr(argR)) );
15671 assign( pair, binop(Iop_Or32,
15672 binop(Iop_Shl32, mkexpr(oldC), mkU8(1)),
15699 assign(res, binop(Iop_DivS32, mkexpr(argL), mkexpr(argR)));
15721 assign(res, binop(Iop_DivU32, mkexpr(argL), mkexpr(argR)));
15754 assign( res, binop(isMLS ? Iop_Sub32 : Iop_Add32,
15756 binop(Iop_Mul32, mkexpr(argL), mkexpr(argR)) ));
15768 assign( pair, binop(Iop_Or32,
15769 binop(Iop_Shl32, mkexpr(oldC), mkU8(1)),
15803 assign( res, binop(mulOp, mkexpr(argL), mkexpr(argR)) );
15817 assign( pair, binop(Iop_Or32,
15818 binop(Iop_Shl32, mkexpr(oldC), mkU8(1)),
15853 assign( old, binop(Iop_32HLto64, getIRegA(rDhi), getIRegA(rDlo)) );
15854 assign( res, binop(Iop_Add64,
15856 binop(mulOp, mkexpr(argL), mkexpr(argR))) );
15870 assign( pair, binop(Iop_Or32,
15871 binop(Iop_Shl32, mkexpr(oldC), mkU8(1)),
15904 binop(Iop_Add64,
15905 binop(Iop_Add64,
15906 binop(Iop_MullU32, mkexpr(argN), mkexpr(argM)),
16143 ? binop(Iop_32HLto64, getIRegA(rT+1), getIRegA(rT+0))
16182 binop(Iop_Or32,
16183 binop(Iop_And32, getIRegA(rD), mkU32(0xFFFF)),
16233 assign(dstT, binop(Iop_And32, mkexpr(rotT), mkU32(0x00FF00FF)));
16239 assign(lo32, binop(Iop_And32, mkexpr(rotT), mkU32(0xFF)));
16240 assign(hi32, binop(Iop_Shr32, mkexpr(rotT), mkU8(16)));
16243 binop(Iop_Or32,
16244 binop(Iop_And32,
16248 binop(Iop_Shl32,
16287 binop(Iop_Or32,
16288 binop(Iop_And32,
16289 binop(Iop_Shl32, mkexpr(src), mkU8(lsb)),
16291 binop(Iop_And32,
16330 assign(tmp, binop(Iop_And32,
16331 binop(Iop_Shr32, mkexpr(src), mkU8(lsb)),
16333 assign(res, binop(isU ? Iop_Shr32 : Iop_Sar32,
16334 binop(Iop_Shl32, mkexpr(tmp), mkU8(31-wm1)),
16498 storeGuardedLE( binop(Iop_Add32, mkexpr(taT), mkU32(0)),
16500 storeGuardedLE( binop(Iop_Add32, mkexpr(taT), mkU32(4)),
16511 binop(Iop_Add32, mkexpr(taT), mkU32(0)),
16515 binop(Iop_Add32, mkexpr(taT), mkU32(4)),
16569 assign(res, binop(Iop_Add32,
16599 assign(res, binop(Iop_Add32,
16641 binop(Iop_Sar32,
16642 binop(Iop_Shl32, mkexpr(irt_rM), mkU8(24)),
16647 binop(Iop_And32,
16648 binop(Iop_Shr32, mkexpr(irt_rM), mkU8(8)),
16653 binop(Iop_Or32, mkexpr(irt_hi), mkexpr(irt_low))
16686 binop(Iop_Add64,
16687 binop(Iop_MullS32, getIRegA(rN), getIRegA(rM)),
16708 binop(Iop_Add64,
16709 binop(Iop_Add64,
16710 binop(Iop_32HLto64, getIRegA(rA), mkU32(0)),
16711 binop(Iop_MullS32, getIRegA(rN), getIRegA(rM))),
16742 IRExpr* erN = binop(bU ? Iop_Add32 : Iop_Sub32,
16797 IRExpr* erN = binop(bU ? Iop_Add32 : Iop_Sub32,
16856 IRExpr* erN = binop(bU ? Iop_Add32 : Iop_Sub32,
16883 IRExpr* erN = binop(bU ? Iop_Add32 : Iop_Sub32,
16912 IRExpr* erN = binop(bU ? Iop_Add32 : Iop_Sub32,
16939 IRExpr* erN = binop(bU ? Iop_Add32 : Iop_Sub32,
16968 IRExpr* erN = binop(bU ? Iop_Add32 : Iop_Sub32,
16995 IRExpr* erN = binop(bU ? Iop_Add32 : Iop_Sub32,
17019 IRExpr* newRn = binop(bU ? Iop_Add32 : Iop_Sub32,
17073 IRExpr* newRn = binop(bU ? Iop_Add32 : Iop_Sub32,
17098 IRExpr* newRn = binop(bU ? Iop_Add32 : Iop_Sub32,
17121 IRExpr* newRn = binop(bU ? Iop_Add32 : Iop_Sub32,
17318 binop(Iop_Xor32,
17646 // binop(Iop_Shr32, mkexpr(old_itstate), mkU8(8)));
17663 // binop(Iop_Xor32,
17664 // binop(Iop_And32, mkexpr(old_itstate), mkU32(0xF0)),
17677 // unop(Iop_32to8, binop(Iop_And32,
17693 // binop(Iop_Xor32,
17694 // binop(Iop_And32, mkexpr(old_itstate), mkU32(1)),
17703 // binop(Iop_And32, mkexpr(notInITt), mkexpr(condT)));
17714 binop(Iop_Shr32, mkexpr(old_itstate), mkU8(8)));
17728 binop(Iop_Xor32,
17729 binop(Iop_And32, mkexpr(old_itstate), mkU32(0xF0)),
17758 binop(Iop_CmpNE32, binop(Iop_And32,
17772 binop(Iop_Xor32,
17773 binop(Iop_And32, mkexpr(old_itstate), mkU32(1)),
17782 binop(Iop_And32, mkexpr(notInITt), mkexpr(condT)));
17852 assign( res, binop(Iop_And32, getIRegT(rN), getIRegT(rM)) );
17869 putIRegT(rD, binop(Iop_Sub32, mkexpr(zero), mkexpr(arg)), condT);
17915 assign( res, binop
17935 assign( res, binop(Iop_And32, getIRegT(rD),
17958 assign(res, binop(Iop_Add32,
17959 binop(Iop_Add32, mkexpr(argL), mkexpr(argR)),
17981 assign(res, binop(Iop_Sub32,
17982 binop(Iop_Sub32, mkexpr(argL), mkexpr(argR)),
17983 binop(Iop_Xor32, mkexpr(oldC), mkU32(1))));
17997 putIRegT(rD, binop(Iop_And32, getIRegT(rM), mkU32(0xFF)),
18008 putIRegT(rD, binop(Iop_Sar32,
18009 binop(Iop_Shl32, getIRegT(rM), mkU8(24)),
18021 putIRegT(rD, binop(Iop_And32, getIRegT(rM), mkU32(0xFFFF)),
18032 putIRegT(rD, binop(Iop_Sar32,
18033 binop(Iop_Shl32, getIRegT(rM), mkU8(16)),
18122 binop(Iop_Sar32,
18123 binop(Iop_Shl32, mkexpr(irt_rM), mkU8(24)),
18128 binop(Iop_And32,
18129 binop(Iop_Shr32, mkexpr(irt_rM), mkU8(8)),
18134 binop(Iop_Or32, mkexpr(irt_hi), mkexpr(irt_low))
18154 putIRegT(13, binop(Iop_Add32, getIRegT(13), mkU32(uimm7 * 4)),
18163 putIRegT(13, binop(Iop_Sub32, getIRegT(13), mkU32(uimm7 * 4)),
18265 assign( res, binop(Iop_Add32, getIRegT(rD), getIRegT(rM) ));
18276 llPutIReg(15, binop(Iop_Or32, mkexpr(res), mkU32(1)));
18326 llPutIReg(15, binop(Iop_Or32, mkexpr(val), mkU32(1)));
18373 assign( kond, binop(bOP ? Iop_CmpNE32 : Iop_CmpEQ32,
18433 assign(newSP, binop(Iop_Sub32, getIRegT(13), mkU32(4 * nRegs)));
18439 assign(base, binop(Iop_And32, mkexpr(newSP), mkU32(~3)));
18445 storeLE( binop(Iop_Add32, mkexpr(base), mkU32(4 * nRegs)),
18491 assign(base, binop(Iop_And32, mkexpr(oldSP), mkU32(~3)));
18497 assign(newSP, binop(Iop_Add32, mkexpr(oldSP),
18505 binop(Iop_Add32, mkexpr(base),
18516 binop(Iop_Add32, mkexpr(base),
18555 putIRegT(rD, binop(isSub ? Iop_Sub32 : Iop_Add32,
18576 putIRegT( rD, binop(isSub ? Iop_Sub32 : Iop_Add32,
18595 IRExpr* ea = binop(Iop_Add32, getIRegT(rN), getIRegT(rM));
18620 IRExpr* ea = binop(Iop_Add32, getIRegT(rN), getIRegT(rM));
18642 IRExpr* ea = binop(Iop_Add32, getIRegT(rN), getIRegT(rM));
18660 IRExpr* ea = binop(Iop_Add32, getIRegT(rN), getIRegT(rM));
18681 IRExpr* ea = binop(Iop_Add32, getIRegT(rN), getIRegT(rM));
18717 putIRegT( rN, binop(isSub ? Iop_Sub32 : Iop_Add32,
18731 putIRegT(rD, binop(Iop_Add32,
18732 binop(Iop_And32, getIRegT(15), mkU32(~3U)),
18743 putIRegT(rD, binop(Iop_Add32, getIRegT(13), mkU32(imm8 * 4)),
18787 assign(ea, binop(Iop_Add32,
18788 binop(Iop_And32, getIRegT(15), mkU32(~3U)),
18810 IRExpr* ea = binop(Iop_Add32, getIRegT(rN), mkU32(imm5 * 4));
18835 IRExpr* ea = binop(Iop_Add32, getIRegT(rN), mkU32(imm5 * 2));
18860 IRExpr* ea = binop(Iop_Add32, getIRegT(rN), mkU32(imm5));
18884 IRExpr* ea = binop(Iop_Add32, getIRegT(13), mkU32(imm8 * 4));
18914 assign(base, binop(Iop_And32, mkexpr(oldRn), mkU32(~3U)));
18921 binop(Iop_Add32, mkexpr(base),
18930 binop(Iop_Add32, mkexpr(oldRn),
18968 assign(base, binop(Iop_And32, mkexpr(oldRn), mkU32(~3U)));
18973 storeLE( binop(Iop_Add32, mkexpr(base), mkU32(nRegs * 4 - 4)),
18978 binop(Iop_Add32, mkexpr(oldRn),
19292 assign(res, binop(Iop_Add32, mkexpr(argL), mkexpr(argR)));
19319 assign(res, binop(Iop_Add32, mkexpr(argL), mkexpr(argR)));
19367 assign(res, binop(isTST ? Iop_And32 : Iop_Xor32,
19402 ? binop(Iop_Sub32, mkexpr(argR), mkexpr(argL))
19403 : binop(Iop_Sub32, mkexpr(argL), mkexpr(argR)));
19434 assign(res, binop(Iop_Sub32, mkexpr(argL), mkexpr(argR)));
19466 binop(Iop_Add32,
19467 binop(Iop_Add32, mkexpr(argL), mkexpr(argR)),
19477 binop(Iop_Sub32,
19478 binop(Iop_Sub32, mkexpr(argL), mkexpr(argR)),
19479 binop(Iop_Xor32, mkexpr(oldC), mkU32(1)) ));
19529 assign(res, binop(op, mkexpr(argL), mkexpr(argR)));
19600 ? binop(op, mkexpr(argR), mkexpr(argL))
19601 : binop(op, mkexpr(argL), mkexpr(argR)));
19662 binop(Iop_Add32,
19663 binop(Iop_Add32, mkexpr(argL), mkexpr(argR)),
19673 binop(Iop_Sub32,
19674 binop(Iop_Sub32, mkexpr(argL), mkexpr(argR)),
19675 binop(Iop_Xor32, mkexpr(oldC), mkU32(1)) ));
19740 assign(res, binop(op, mkexpr(rNt),
19743 assign(res, binop(op, mkexpr(rNt), mkexpr(argR)));
19871 assign(res, binop(isTST ? Iop_And32 : Iop_Xor32,
19970 binop(Iop_Or32,
19971 binop(Iop_And32, getIRegT(rD), mkU32(0xFFFF)),
20061 assign(postAddr, binop(bU == 1 ? Iop_Add32 : Iop_Sub32,
20246 binop( Iop_Add32,
20248 binop(Iop_Shl32, getIRegT(rM), mkU8(imm2)) ));
20401 assign(rNt, binop(Iop_And32, getIRegT(15), mkU32(~3)));
20408 binop(bU == 1 ? Iop_Add32 : Iop_Sub32,
20504 ? binop(Iop_And32, getIRegT(15), mkU32(~3U))
20508 assign(postAddr, binop(bU == 1 ? Iop_Add32 : Iop_Sub32,
20534 storeGuardedLE( binop(Iop_Add32, mkexpr(transAddr), mkU32(4)),
20547 binop(Iop_Add32, mkexpr(transAddr), mkU32(4)),
20672 = binop(Iop_Add32,
20674 bH ? binop(Iop_Shl32, getIRegT(rM), mkU8(1))
20686 binop(Iop_Or32,
20687 binop(Iop_Add32,
20689 binop(Iop_Shl32, mkexpr(delta), mkU8(1))
20724 assign(tmp, binop(Iop_And32,
20725 binop(Iop_Shr32, mkexpr(src), mkU8(lsb)),
20727 assign(res, binop(isU ? Iop_Shr32 : Iop_Sar32,
20728 binop(Iop_Shl32, mkexpr(tmp), mkU8(31-wm1)),
20788 assign(dstT, binop(Iop_And32, mkexpr(rotT),
20795 assign(lo32, binop(Iop_And32, mkexpr(rotT), mkU32(0xFF)));
20796 assign(hi32, binop(Iop_Shr32, mkexpr(rotT), mkU8(16)));
20799 binop(Iop_Or32,
20800 binop(Iop_And32,
20804 binop(Iop_Shl32,
20828 assign(res, binop(Iop_Mul32, getIRegT(rN), getIRegT(rM)));
20847 assign(res, binop(Iop_DivS32, mkexpr(argL), mkexpr(argR)));
20866 assign(res, binop(Iop_DivU32, mkexpr(argL), mkexpr(argR)));
20884 assign(res, binop(isU ? Iop_MullU32 : Iop_MullS32,
20907 binop(isMLA ? Iop_Add32 : Iop_Sub32,
20909 binop(Iop_Mul32, getIRegT(rN), getIRegT(rM))));
20925 putIRegT(rD, binop(Iop_Add32,
20926 binop(Iop_And32, getIRegT(15), mkU32(~3U)),
20955 assign( old, binop(Iop_32HLto64, getIRegT(rDhi), getIRegT(rDlo)) );
20956 assign( res, binop(Iop_Add64,
20958 binop(mulOp, mkexpr(argL), mkexpr(argR))) );
20989 binop(Iop_Add64,
20990 binop(Iop_Add64,
20991 binop(Iop_MullU32, mkexpr(argN), mkexpr(argM)),
21015 binop(Iop_Add64,
21016 binop(Iop_MullS32, getIRegT(rN), getIRegT(rM)),
21037 binop(Iop_Add64,
21038 binop(Iop_Add64,
21039 binop(Iop_32HLto64, getIRegT(rA), mkU32(0)),
21040 binop(Iop_MullS32, getIRegT(rN), getIRegT(rM))),
21057 putIRegT(rD, binop(Iop_Sub32,
21058 binop(Iop_And32, getIRegT(15), mkU32(~3U)),
21087 binop(Iop_Or32,
21088 binop(Iop_And32,
21089 binop(Iop_Shl32, mkexpr(src), mkU8(lsb)),
21091 binop(Iop_And32,
21126 assign(res, binop(Iop_Add32,
21155 assign(res, binop(Iop_Add32,
21179 binop(Iop_CmpEQ32, mkexpr(arg), mkU32(0)),
21240 binop(Iop_Sar32,
21241 binop(Iop_Shl32, mkexpr(irt_rM), mkU8(24)),
21246 binop(Iop_And32,
21247 binop(Iop_Shr32, mkexpr(irt_rM), mkU8(8)),
21252 binop(Iop_Or32, mkexpr(irt_hi), mkexpr(irt_low))
21301 binop(Iop_Add32, getIRegT(rN), mkU32(imm8 * 4)),
21368 binop(Iop_Add32, getIRegT(rN), mkU32(imm8 * 4)),
21426 assign(data, binop(Iop_32HLto64, getIRegT(rT2), getIRegT(rT)));
21562 IRExpr* ea = binop(Iop_Add32, getIRegT(rN), mkU32(imm8));
21585 IRExpr* address = binop(Iop_Add32, getIRegT(rN), mkU32(imm8));
21606 IRExpr* address = binop(Iop_Add32, getIRegT(rN), mkU32(imm8));
21634 IRExpr* ea = binop(Iop_Add32, getIRegT(rN), mkU32(imm8));
21663 IRExpr* ea = binop(Iop_Add32, getIRegT(rN), mkU32(imm8));
21686 IRExpr* address = binop(Iop_Add32, getIRegT(rN), mkU32(imm8));
21709 IRExpr* ea = binop(Iop_Add32, getIRegT(rN), mkU32(imm8));
21733 IRExpr* ea = binop(Iop_Add32, getIRegT(rN), mkU32(imm8));
22064 if (out3) assign(*out3, binop(Iop_Shr32, mkexpr(hi32), mkU8(16)));
22065 if (out2) assign(*out2, binop(Iop_And32, mkexpr(hi32), mkU32(0xFFFF)));
22066 if (out1) assign(*out1, binop(Iop_Shr32, mkexpr(lo32), mkU8(16)));
22067 if (out0) assign(*out0, binop(Iop_And32, mkexpr(lo32), mkU32(0xFFFF)));
22077 binop(Iop_Or32,
22078 binop(Iop_Shl32, mkexpr(in3), mkU8(16)),
22079 binop(Iop_And32, mkexpr(in2), mkU32(0xFFFF))));
22081 binop(Iop_Or32,
22082 binop(Iop_Shl32, mkexpr(in1), mkU8(16)),
22083 binop(Iop_And32, mkexpr(in0), mkU32(0xFFFF))));
22085 assign(res, binop(Iop_32HLto64, mkexpr(hi32), mkexpr(lo32)));
22160 assign(*out7, binop(Iop_And32,
22161 binop(Iop_Shr32, mkexpr(hi32), mkU8(24)),
22164 assign(*out6, binop(Iop_And32,
22165 binop(Iop_Shr32, mkexpr(hi32), mkU8(16)),
22168 assign(*out5, binop(Iop_And32,
22169 binop(Iop_Shr32, mkexpr(hi32), mkU8(8)),
22172 assign(*out4, binop(Iop_And32, mkexpr(hi32), mkU32(0xFF)));
22174 assign(*out3, binop(Iop_And32,
22175 binop(Iop_Shr32, mkexpr(lo32), mkU8(24)),
22178 assign(*out2, binop(Iop_And32,
22179 binop(Iop_Shr32, mkexpr(lo32), mkU8(16)),
22182 assign(*out1, binop(Iop_And32,
22183 binop(Iop_Shr32, mkexpr(lo32), mkU8(8)),
22186 assign(*out0, binop(Iop_And32, mkexpr(lo32), mkU32(0xFF)));
22195 binop(Iop_Or32,
22196 binop(Iop_Or32,
22197 binop(Iop_Shl32,
22198 binop(Iop_And32, mkexpr(in7), mkU32(0xFF)),
22200 binop(Iop_Shl32,
22201 binop(Iop_And32, mkexpr(in6), mkU32(0xFF)),
22203 binop(Iop_Or32,
22204 binop(Iop_Shl32,
22205 binop(Iop_And32, mkexpr(in5), mkU32(0xFF)), mkU8(8)),
22206 binop(Iop_And32,
22209 binop(Iop_Or32,
22210 binop(Iop_Or32,
22211 binop(Iop_Shl32,
22212 binop(Iop_And32, mkexpr(in3), mkU32(0xFF)),
22214 binop(Iop_Shl32,
22215 binop(Iop_And32, mkexpr(in2), mkU32(0xFF)),
22217 binop(Iop_Or32,
22218 binop(Iop_Shl32,
22219 binop(Iop_And32, mkexpr(in1), mkU32(0xFF)), mkU8(8)),
22220 binop(Iop_And32,
22223 assign(res, binop(Iop_32HLto64, mkexpr(hi32), mkexpr(lo32)));
22284 return binop(Iop_32HLto64, unop(Iop_64to32, mkexpr(a10)),
22291 return binop(Iop_32HLto64, unop(Iop_64HIto32, mkexpr(a10)),