Home | History | Annotate | Download | only in priv

Lines Matching refs:Binop

255       return toBool( isIRAtom(e->Iex.Binop.arg1) 
256 && isIRAtom(e->Iex.Binop.arg2) );
311 IRExpr_Binop(ex->Iex.Binop.op,
312 flatten_Expr(bb, ex->Iex.Binop.arg1),
313 flatten_Expr(bb, ex->Iex.Binop.arg2))));
1164 if (e->Iex.Binop.arg1->tag == Iex_Const
1165 && e->Iex.Binop.arg2->tag == Iex_Const) {
1167 switch (e->Iex.Binop.op) {
1172 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U8
1173 | e->Iex.Binop.arg2->Iex.Const.con->Ico.U8))));
1177 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U16
1178 | e->Iex.Binop.arg2->Iex.Const.con->Ico.U16))));
1182 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U32
1183 | e->Iex.Binop.arg2->Iex.Const.con->Ico.U32)));
1187 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U64
1188 | e->Iex.Binop.arg2->Iex.Const.con->Ico.U64)));
1194 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U8
1195 ^ e->Iex.Binop.arg2->Iex.Const.con->Ico.U8))));
1199 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U16
1200 ^ e->Iex.Binop.arg2->Iex.Const.con->Ico.U16))));
1204 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U32
1205 ^ e->Iex.Binop.arg2->Iex.Const.con->Ico.U32)));
1209 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U64
1210 ^ e->Iex.Binop.arg2->Iex.Const.con->Ico.U64)));
1216 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U8
1217 & e->Iex.Binop.arg2->Iex.Const.con->Ico.U8))));
1221 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U32
1222 & e->Iex.Binop.arg2->Iex.Const.con->Ico.U32)));
1226 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U64
1227 & e->Iex.Binop.arg2->Iex.Const.con->Ico.U64)));
1233 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U8
1234 + e->Iex.Binop.arg2->Iex.Const.con->Ico.U8))));
1238 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U32
1239 + e->Iex.Binop.arg2->Iex.Const.con->Ico.U32)));
1243 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U64
1244 + e->Iex.Binop.arg2->Iex.Const.con->Ico.U64)));
1250 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U8
1251 - e->Iex.Binop.arg2->Iex.Const.con->Ico.U8))));
1255 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U32
1256 - e->Iex.Binop.arg2->Iex.Const.con->Ico.U32)));
1260 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U64
1261 - e->Iex.Binop.arg2->Iex.Const.con->Ico.U64)));
1266 UInt u32a = e->Iex.Binop.arg1->Iex.Const.con->Ico.U32;
1267 UInt u32b = e->Iex.Binop.arg2->Iex.Const.con->Ico.U32;
1276 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U32
1277 * e->Iex.Binop.arg2->Iex.Const.con->Ico.U32)));
1281 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U64
1282 * e->Iex.Binop.arg2->Iex.Const.con->Ico.U64)));
1287 UInt u32a = e->Iex.Binop.arg1->Iex.Const.con->Ico.U32;
1288 UInt u32b = e->Iex.Binop.arg2->Iex.Const.con->Ico.U32;
1301 vassert(e->Iex.Binop.arg2->Iex.Const.con->tag == Ico_U8);
1302 shift = (Int)(e->Iex.Binop.arg2->Iex.Const.con->Ico.U8);
1305 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U32
1309 vassert(e->Iex.Binop.arg2->Iex.Const.con->tag == Ico_U8);
1310 shift = (Int)(e->Iex.Binop.arg2->Iex.Const.con->Ico.U8);
1313 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U64
1321 vassert(e->Iex.Binop.arg2->Iex.Const.con->tag == Ico_U8);
1322 s32 = (Int)(e->Iex.Binop.arg1->Iex.Const.con->Ico.U32);
1323 shift = (Int)(e->Iex.Binop.arg2->Iex.Const.con->Ico.U8);
1333 vassert(e->Iex.Binop.arg2->Iex.Const.con->tag == Ico_U8);
1334 s64 = (Long)(e->Iex.Binop.arg1->Iex.Const.con->Ico.U64);
1335 shift = (Int)(e->Iex.Binop.arg2->Iex.Const.con->Ico.U8);
1347 vassert(e->Iex.Binop.arg2->Iex.Const.con->tag == Ico_U8);
1348 u32 = (UInt)(e->Iex.Binop.arg1->Iex.Const.con->Ico.U32);
1349 shift = (Int)(e->Iex.Binop.arg2->Iex.Const.con->Ico.U8);
1359 vassert(e->Iex.Binop.arg2->Iex.Const.con->tag == Ico_U8);
1360 u64 = (ULong)(e->Iex.Binop.arg1->Iex.Const.con->Ico.U64);
1361 shift = (Int)(e->Iex.Binop.arg2->Iex.Const.con->Ico.U8);
1372 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U32
1373 == e->Iex.Binop.arg2->Iex.Const.con->Ico.U32))));
1377 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U64
1378 == e->Iex.Binop.arg2->Iex.Const.con->Ico.U64))));
1384 ((0xFF & e->Iex.Binop.arg1->Iex.Const.con->Ico.U8)
1385 != (0xFF & e->Iex.Binop.arg2->Iex.Const.con->Ico.U8)))));
1389 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U32
1390 != e->Iex.Binop.arg2->Iex.Const.con->Ico.U32))));
1394 (e->Iex.Binop.arg1->Iex.Const.con->Ico.U64
1395 != e->Iex.Binop.arg2->Iex.Const.con->Ico.U64))));
1401 ((UInt)(e->Iex.Binop.arg1->Iex.Const.con->Ico.U32)
1402 <= (UInt)(e->Iex.Binop
1408 ((Int)(e->Iex.Binop.arg1->Iex.Const.con->Ico.U32)
1409 <= (Int)(e->Iex.Binop.arg2->Iex.Const.con->Ico.U32)))));
1415 ((Int)(e->Iex.Binop.arg1->Iex.Const.con->Ico.U32)
1416 < (Int)(e->Iex.Binop.arg2->Iex.Const.con->Ico.U32)))));
1422 ((UInt)(e->Iex.Binop.arg1->Iex.Const.con->Ico.U32)
1423 < (UInt)(e->Iex.Binop.arg2->Iex.Const.con->Ico.U32)))));
1429 UInt u32a = e->Iex.Binop.arg1->Iex.Const.con->Ico.U32;
1430 UInt u32b = e->Iex.Binop.arg2->Iex.Const.con->Ico.U32;
1447 (((ULong)(e->Iex.Binop.arg1->Iex.Const.con->Ico.U32)) << 32)
1448 | ((ULong)(e->Iex.Binop.arg2->Iex.Const.con->Ico.U32))
1467 if ((e->Iex.Binop.op == Iop_Shl64 || e->Iex.Binop.op == Iop_Shr64)
1468 && e->Iex.Binop.arg2->tag == Iex_Const
1469 && e->Iex.Binop.arg2->Iex.Const.con->Ico.U8 == 0) {
1470 e2 = e->Iex.Binop.arg1;
1474 if ((e->Iex.Binop.op == Iop_Shl32 || e->Iex.Binop.op == Iop_Shr32)
1475 && e->Iex.Binop.arg2->tag == Iex_Const
1476 && e->Iex.Binop.arg2->Iex.Const.con->Ico.U8 == 0) {
1477 e2 = e->Iex.Binop.arg1;
1481 if ((e->Iex.Binop.op == Iop_Or8)
1482 && e->Iex.Binop.arg2->tag == Iex_Const
1483 && e->Iex.Binop.arg2->Iex.Const.con->Ico.U8 == 0) {
1484 e2 = e->Iex.Binop.arg1;
1488 if ((e->Iex.Binop.op == Iop_Or16)
1489 && e->Iex.Binop.arg2->tag == Iex_Const
1490 && e->Iex.Binop.arg2->Iex.Const.con->Ico.U16 == 0) {
1491 e2 = e->Iex.Binop.arg1;
1495 if ((e->Iex.Binop.op == Iop_Add32
1496 || e->Iex.Binop.op == Iop_Or32 || e->Iex.Binop.op == Iop_Max32U)
1497 && e->Iex.Binop.arg2->tag == Iex_Const
1498 && e->Iex.Binop.arg2->Iex.Const.con->Ico.U32 == 0) {
1499 e2 = e->Iex.Binop.arg1;
1506 if (e->Iex.Binop.op == Iop_Add32
1507 && e->Iex.Binop.arg1->tag == Iex_RdTmp
1508 && e->Iex.Binop.arg2->tag == Iex_RdTmp
1509 && e->Iex.Binop.arg1->Iex.RdTmp.tmp
1510 == e->Iex.Binop.arg2->Iex.RdTmp.tmp) {
1512 e->Iex.Binop.arg1,
1517 if (e->Iex.Binop.op == Iop_Add64
1518 && e->Iex.Binop.arg1->tag == Iex_RdTmp
1519 && e->Iex.Binop.arg2->tag == Iex_RdTmp
1520 && e->Iex.Binop.arg1->Iex.RdTmp.tmp
1521 == e->Iex.Binop.arg2->Iex.RdTmp.tmp) {
1523 e->Iex.Binop.arg1,
1528 if (e->Iex.Binop.op == Iop_Add8
1529 && e->Iex.Binop.arg1->tag == Iex_RdTmp
1530 && e->Iex.Binop.arg2->tag == Iex_RdTmp
1531 && e->Iex.Binop.arg1->Iex.RdTmp.tmp
1532 == e->Iex.Binop.arg2->Iex.RdTmp.tmp) {
1534 e->Iex.Binop.arg1,
1540 if ((e->Iex.Binop.op == Iop_Add64 || e->Iex.Binop.op == Iop_Or64)
1541 && e->Iex.Binop.arg2->tag == Iex_Const
1542 && e->Iex.Binop.arg2->Iex.Const.con->Ico.U64 == 0) {
1543 e2 = e->Iex.Binop.arg1;
1547 if (e->Iex.Binop.op == Iop_And32
1548 && e->Iex.Binop.arg2->tag == Iex_Const
1549 && e->Iex.Binop.arg2->Iex.Const.con->Ico.U32 == 0xFFFFFFFF) {
1550 e2 = e->Iex.Binop.arg1;
1554 if (e->Iex.Binop.op == Iop_And32
1555 && e->Iex.Binop.arg2->tag == Iex_Const
1556 && e->Iex.Binop.arg2->Iex.Const.con->Ico.U32 == 0) {
1561 if ((e->Iex.Binop.op == Iop_And32 || e->Iex.Binop.op == Iop_Shl32)
1562 && e->Iex.Binop.arg1->tag == Iex_Const
1563 && e->Iex.Binop.arg1->Iex.Const.con->Ico.U32 == 0) {
1568 if (e->Iex.Binop.op == Iop_Or8
1569 && e->Iex.Binop.arg1->tag == Iex_Const
1570 && e->Iex.Binop.arg1->Iex.Const.con->Ico.U8 == 0) {
1571 e2 = e->Iex.Binop.arg2;
1575 if ((e->Iex.Binop.op == Iop_Or32 || e->Iex.Binop.op == Iop_Max32U)
1576 && e->Iex.Binop.arg1->tag == Iex_Const
1577 && e->Iex.Binop.arg1->Iex.Const.con->Ico.U32 == 0) {
1578 e2 = e->Iex.Binop.arg2;
1582 if (e->Iex.Binop.op == Iop_Or64
1583 && e->Iex.Binop.arg1->tag == Iex_Const
1584 && e->Iex.Binop.arg1->Iex.Const.con->Ico.U64 == 0) {
1585 e2 = e->Iex.Binop.arg2;
1591 switch (e->Iex.Binop.op) {
1597 if (sameIRTemps(e->Iex.Binop.arg1, e->Iex.Binop.arg2))
1598 e2 = e->Iex.Binop.arg1;
1606 switch (e->Iex.Binop.op) {
1611 if (sameIRTemps(e->Iex.Binop.arg1, e->Iex.Binop.arg2))
1612 e2 = mkZeroOfPrimopResultType(e->Iex.Binop.op);
1618 switch (e->Iex.Binop.op) {
1622 if (sameIRTemps(e->Iex.Binop.arg1, e->Iex.Binop.arg2))
1623 e2 = mkOnesOfPrimopResultType(e->Iex.Binop.op);
1653 && sameIRTemps(e->Iex.Binop.arg1, e->Iex.Binop.arg2)) {
1734 vassert(isIRAtom(ex->Iex.Binop.arg1));
1735 vassert(isIRAtom(ex->Iex.Binop.arg2));
1737 ex->Iex.Binop.op,
1738 subst_Expr(env, ex->Iex.Binop.arg1),
1739 subst_Expr(env, ex->Iex.Binop.arg2)
2058 addUses_Expr(set, e->Iex.Binop.arg1);
2059 addUses_Expr(set, e->Iex.Binop.arg2);
2420 /* binop(tmp,tmp) */
2426 /* binop(tmp,const) */
2432 /* binop(const,tmp) */
2590 && e->Iex.Binop.arg1->tag == Iex_RdTmp
2591 && e->Iex.Binop.arg2->tag == Iex_RdTmp) {
2594 ae->u.Btt.op = e->Iex.Binop.op;
2595 ae->u.Btt.arg1 = e->Iex.Binop.arg1->Iex.RdTmp.tmp;
2596 ae->u.Btt.arg2 = e->Iex.Binop.arg2->Iex.RdTmp.tmp;
2601 && e->Iex.Binop.arg1->tag == Iex_RdTmp
2602 && e->Iex.Binop.arg2->tag == Iex_Const) {
2605 ae->u.Btc.op = e->Iex.Binop.op;
2606 ae->u.Btc.arg1 = e->Iex.Binop.arg1->Iex.RdTmp.tmp;
2607 ae->u.Btc.con2 = *(e->Iex.Binop.arg2->Iex.Const.con);
2612 && e->Iex.Binop.arg1->tag == Iex_Const
2613 && e->Iex.Binop.arg2->tag == Iex_RdTmp) {
2616 ae->u.Bct.op = e->Iex.Binop.op;
2617 ae->u.Bct.arg2 = e->Iex.Binop.arg2->Iex.RdTmp.tmp;
2618 ae->u.Bct.con1 = *(e->Iex.Binop.arg1->Iex.Const.con);
2823 if (e->Iex.Binop.op != Iop_Add32 && e->Iex.Binop.op != Iop_Sub32)
2825 if (e->Iex.Binop.arg1->tag != Iex_RdTmp)
2827 if (e->Iex.Binop.arg2->tag != Iex_Const)
2829 *tmp = e->Iex.Binop.arg1->Iex.RdTmp.tmp;
2830 *i32 = (Int)(e->Iex.Binop.arg2->Iex.Const.con->Ico.U32);
2831 if (e->Iex.Binop.op == Iop_Sub32)
3342 deltaIRExpr(e->Iex.Binop.arg1, delta);
3343 deltaIRExpr(e->Iex.Binop.arg2, delta);
3737 setHints_Expr(doesLoad, doesGet, e->Iex.Binop.arg1);
3738 setHints_Expr(doesLoad, doesGet, e->Iex.Binop.arg2);
3812 aoccCount_Expr(uses, e->Iex.Binop.arg1);
3813 aoccCount_Expr(uses, e->Iex.Binop.arg2);
3935 return e->tag == Iex_Binop && e->Iex.Binop.op == op;
3961 && is_Unop(aa->Iex.Binop.arg1, Iop_CmpwNEZ64))
3965 aa->Iex.Binop.arg1->Iex.Unop.arg,
3966 aa->Iex.Binop.arg2));
3969 && is_Unop(aa->Iex.Binop.arg2, Iop_CmpwNEZ64))
3973 aa->Iex.Binop.arg1,
3974 Binop.arg2->Iex.Unop.arg));
4094 e->Iex.Binop.op,
4095 atbSubst_Expr(env, e->Iex.Binop.arg1),
4096 atbSubst_Expr(env, e->Iex.Binop.arg2)