Home | History | Annotate | Download | only in priv

Lines Matching refs:Iex

211    if (expr->tag == Iex_Binop && expr->Iex.Binop.op == Iop_Add64) {
212 IRExpr *arg1 = expr->Iex.Binop.arg1;
213 IRExpr *arg2 = expr->Iex.Binop.arg2;
224 if (arg2->tag == Iex_Const && arg2->Iex.Const.con->tag == Ico_U64) {
225 ULong value = arg2->Iex.Const.con->Ico.U64;
331 switch (expr->Iex.Const.con->tag) {
332 case Ico_U1: value = expr->Iex.Const.con->Ico.U1; break;
333 case Ico_U8: value = expr->Iex.Const.con->Ico.U8; break;
334 case Ico_U16: value = expr->Iex.Const.con->Ico.U16; break;
335 case Ico_U32: value = expr->Iex.Const.con->Ico.U32; break;
336 case Ico_U64: value = expr->Iex.Const.con->Ico.U64; break;
392 && guard->Iex.Const.con->tag == Ico_U1
393 && guard->Iex.Const.con->Ico.U1 == True) {
423 rounding_expr->Iex.Const.con->tag == Ico_U32) {
424 IRRoundingMode mode = rounding_expr->Iex.Const.con->Ico.U32;
505 lookupIRTemp128(dst_hi, dst_lo, env, expr->Iex.RdTmp.tmp);
510 IRExpr *arg1 = expr->Iex.Binop.arg1;
511 IRExpr *arg2 = expr->Iex.Binop.arg2;
514 switch (expr->Iex.Binop.op) {
683 return lookupIRTemp(env, expr->Iex.RdTmp.tmp);
688 s390_amode *am = s390_isel_amode(env, expr->Iex.Load.addr);
690 if (expr->Iex.Load.end != Iend_BE)
700 IRExpr *arg1 = expr->Iex.Binop.arg1;
701 IRExpr *arg2 = expr->Iex.Binop.arg2;
710 switch (expr->Iex.Binop.op) {
877 size = (expr->Iex.Binop.op == Iop_CmpF32) ? 4 : 8;
1010 arg = expr->Iex.Unop.arg;
1016 unop = expr->Iex.Unop.op;
1017 binop = arg->Iex.Binop.op;
1024 h1 = s390_isel_int_expr(env, arg->Iex.Binop.arg1); /* 1st opnd */
1025 opnd = s390_isel_int_expr_RMI(env, arg->Iex.Binop.arg2); /* 2nd opnd */
1211 s390_amode *am = s390_amode_for_guest_state(expr->Iex.Get.offset);
1230 doHelperCall(env, False, NULL, expr->Iex.CCall.cee,
1231 expr->Iex.CCall.args);
1234 addInstr(env, s390_insn_move(sizeofIRType(expr->Iex.CCall.retty), dst,
1247 const IRConst *con = expr->Iex.Const.con;
1269 cond_expr = expr->Iex.Mux0X.cond;
1272 r0 = s390_isel_int_expr_RMI(env, expr->Iex.Mux0X.expr0);
1273 rX = s390_isel_int_expr(env, expr->Iex.Mux0X.exprX);
1274 size = sizeofIRType(typeOfIRExpr(env->type_env, expr->Iex.Mux0X.exprX));
1276 if (cond_expr->tag == Iex_Unop && cond_expr->Iex.Unop.op == Iop_1Uto8) {
1277 s390_cc_t cc = s390_isel_cc(env, cond_expr->Iex.Unop.arg);
1300 size = sizeofIRType(typeOfIRExpr(env->type_env, expr->Iex.Mux0X.expr0));
1341 dst.variant.am = s390_isel_amode(env, expr->Iex.Load.addr);
1344 dst.variant.am = s390_amode_for_guest_state(expr->Iex.Get.offset);
1350 switch (expr->Iex.Const.con->tag) {
1351 case Ico_U1: value = expr->Iex.Const.con->Ico.U1; break;
1352 case Ico_U8: value = expr->Iex.Const.con->Ico.U8; break;
1353 case Ico_U16: value = expr->Iex.Const.con->Ico.U16; break;
1354 case Ico_U32: value = expr->Iex.Const.con->Ico.U32; break;
1355 case Ico_U64: value = expr->Iex.Const.con->Ico.U64; break;
1384 lookupIRTemp128(dst_hi, dst_lo, env, expr->Iex.RdTmp.tmp);
1391 lookupIRTemp128(dst_hi, dst_lo, env, expr->Iex.RdTmp.tmp);
1399 if (expr->Iex.Load.end != Iend_BE)
1402 addr_hi = expr->Iex.Load.addr;
1428 IROp op = expr->Iex.Triop.op;
1429 IRExpr *left = expr->Iex.Triop.arg2;
1430 IRExpr *right = expr->Iex.Triop.arg3;
1461 rounding_mode = decode_rounding_mode(expr->Iex.Triop.arg1);
1486 switch (expr->Iex.Binop.op) {
1488 s390_isel_float128_expr(&op_hi, &op_lo, env, expr->Iex.Binop.arg2);
1495 rounding_mode = decode_rounding_mode(expr->Iex.Binop.arg1);
1508 *dst_hi = s390_isel_float_expr(env, expr->Iex.Binop.arg1);
1509 *dst_lo = s390_isel_float_expr(env, expr->Iex.Binop.arg2);
1519 IRExpr *left = expr->Iex.Binop.arg1;
1530 switch (expr->Iex.Binop.op) {
1617 return lookupIRTemp(env, expr->Iex.RdTmp.tmp);
1622 s390_amode *am = s390_isel_amode(env, expr->Iex.Load.addr);
1624 if (expr->Iex.Load.end != Iend_BE)
1635 s390_amode *am = s390_amode_for_guest_state(expr->Iex.Get.offset);
1649 const IRConst *con = expr->Iex.Const.con;
1671 op1 = s390_isel_float_expr(env, expr->Iex.Qop.arg2);
1672 op2 = s390_isel_float_expr(env, expr->Iex.Qop.arg3);
1673 op3 = s390_isel_float_expr(env, expr->Iex.Qop.arg4);
1677 switch (expr->Iex.Qop.op) {
1687 rounding_mode = decode_rounding_mode(expr->Iex.Qop.arg1);
1695 IROp op = expr->Iex.Triop.op;
1696 IRExpr *left = expr->Iex.Triop.arg2;
1697 IRExpr *right = expr->Iex.Triop.arg3;
1720 rounding_mode = decode_rounding_mode(expr->Iex.Triop.arg1);
1727 IROp op = expr->Iex.Binop.op;
1728 IRExpr *left = expr->Iex.Binop.arg2;
1761 rounding_mode = decode_rounding_mode(expr->Iex.Binop.arg1);
1763 s390_isel_float128_expr(&op_hi, &op_lo, env, expr->Iex.Binop.arg2);
1793 rounding_mode = decode_rounding_mode(expr->Iex.Binop.arg1);
1800 IROp op = expr->Iex.Unop.op;
1801 IRExpr *left = expr->Iex.Unop.arg;
1825 (left->Iex.Unop.op == Iop_AbsF32 || left->Iex.Unop.op == Iop_AbsF64))
1843 h1 = s390_isel_float_expr(env, left->Iex.Unop.arg);
1891 vassert(cond->Iex.Const.con->tag == Ico_U1);
1892 vassert(cond->Iex.Const.con->Ico.U1 == True
1893 || cond->Iex.Const.con->Ico.U1 == False);
1895 return cond->Iex.Const.con->Ico.U1 == True ? S390_CC_ALWAYS : S390_CC_NEVER;
1900 IRTemp tmp = cond->Iex.RdTmp.tmp;
1914 IRExpr *arg = cond->Iex.Unop.arg;
1916 switch (cond->Iex.Unop.op) {
1939 op = (cond->Iex.Unop.op == Iop_CmpNEZ8) ? S390_ZERO_EXTEND_8
1965 IRExpr *arg1 = cond->Iex.Binop.arg1;
1966 IRExpr *arg2 = cond->Iex.Binop.arg2;
1971 switch (cond->Iex.Binop.op) {
2056 return (cond->Iex.Binop.op == Iop_CmpLT32S ||
2057 cond->Iex.Binop.op == Iop_CmpLT64S) ? S390_CC_L : S390_CC_LE;
2072 return (cond->Iex.Binop.op == Iop_CmpLT32U ||
2073 cond->Iex.Binop.op == Iop_CmpLT64U) ? S390_CC_L : S390_CC_LE;