Lines Matching refs:Iex
293 if (expr->tag == Iex_Binop && expr->Iex.Binop.op == Iop_Add64) {
294 IRExpr *arg1 = expr->Iex.Binop.arg1;
295 IRExpr *arg2 = expr->Iex.Binop.arg2;
306 if (arg2->tag == Iex_Const && arg2->Iex.Const.con->tag == Ico_U64) {
307 ULong value = arg2->Iex.Const.con->Ico.U64;
413 switch (expr->Iex.Const.con->tag) {
414 case Ico_U1: value = expr->Iex.Const.con->Ico.U1; break;
415 case Ico_U8: value = expr->Iex.Const.con->Ico.U8; break;
416 case Ico_U16: value = expr->Iex.Const.con->Ico.U16; break;
417 case Ico_U32: value = expr->Iex.Const.con->Ico.U32; break;
418 case Ico_U64: value = expr->Iex.Const.con->Ico.U64; break;
584 && guard->Iex.Const.con->tag == Ico_U1
585 && guard->Iex.Const.con->Ico.U1 == True) {
656 env->previous_bfp_rounding_mode->Iex.RdTmp.tmp == irrm->Iex.RdTmp.tmp) {
696 vassert(irrm->Iex.Const.con->tag == Ico_U32);
697 IRRoundingMode mode = irrm->Iex.Const.con->Ico.U32;
730 env->previous_dfp_rounding_mode->Iex.RdTmp.tmp == irrm->Iex.RdTmp.tmp) {
806 vassert(irrm->Iex.Const.con->tag == Ico_U32);
807 IRRoundingMode mode = irrm->Iex.Const.con->Ico.U32;
916 lookupIRTemp128(dst_hi, dst_lo, env, expr->Iex.RdTmp.tmp);
921 IRExpr *arg1 = expr->Iex.Binop.arg1;
922 IRExpr *arg2 = expr->Iex.Binop.arg2;
925 switch (expr->Iex.Binop.op) {
1095 return lookupIRTemp(env, expr->Iex.RdTmp.tmp);
1100 s390_amode *am = s390_isel_amode(env, expr->Iex.Load.addr);
1102 if (expr->Iex.Load.end != Iend_BE)
1112 IRExpr *arg1 = expr->Iex.Binop.arg1;
1113 IRExpr *arg2 = expr->Iex.Binop.arg2;
1122 switch (expr->Iex.Binop.op) {
1340 size = (expr->Iex.Binop.op == Iop_CmpF32) ? 4 : 8;
1383 switch(expr->Iex.Binop.op) {
1416 switch(expr->Iex.Binop.op) {
1511 switch (expr->Iex.Binop.op) {
1547 arg = expr->Iex.Unop.arg;
1553 unop = expr->Iex.Unop.op;
1554 binop = arg->Iex.Binop.op;
1561 h1 = s390_isel_int_expr(env, arg->Iex.Binop.arg1); /* 1st opnd */
1562 opnd = s390_isel_int_expr_RMI(env, arg->Iex.Binop.arg2); /* 2nd opnd */
1800 s390_amode *am = s390_amode_for_guest_state(expr->Iex.Get.offset);
1822 doHelperCall(&addToSp, &rloc, env, NULL, expr->Iex.CCall.cee,
1823 expr->Iex.CCall.retty, expr->Iex.CCall.args);
1839 const IRConst *con = expr->Iex.Const.con;
1861 cond_expr = expr->Iex.ITE.cond;
1866 r0 = s390_isel_int_expr_RMI(env, expr->Iex.ITE.iffalse);
1867 r1 = s390_isel_int_expr(env, expr->Iex.ITE.iftrue);
1868 size = sizeofIRType(typeOfIRExpr(env->type_env, expr->Iex.ITE.iftrue));
1912 dst.variant.am = s390_isel_amode(env, expr->Iex.Load.addr);
1915 dst.variant.am = s390_amode_for_guest_state(expr->Iex.Get.offset);
1921 switch (expr->Iex.Const.con->tag) {
1922 case Ico_U1: value = expr->Iex.Const.con->Ico.U1; break;
1923 case Ico_U8: value = expr->Iex.Const.con->Ico.U8; break;
1924 case Ico_U16: value = expr->Iex.Const.con->Ico.U16; break;
1925 case Ico_U32: value = expr->Iex.Const.con->Ico.U32; break;
1926 case Ico_U64: value = expr->Iex.Const.con->Ico.U64; break;
1956 lookupIRTemp128(dst_hi, dst_lo, env, expr->Iex.RdTmp.tmp);
1964 if (expr->Iex.Load.end != Iend_BE)
1967 addr_hi = expr->Iex.Load.addr;
1993 IRTriop *triop = expr->Iex.Triop.details;
2040 switch (expr->Iex.Binop.op) {
2050 s390_isel_float128_expr(&op_hi, &op_lo, env, expr->Iex.Binop.arg2);
2056 set_bfp_rounding_mode_in_fpc(env, expr->Iex.Binop.arg1);
2069 *dst_hi = s390_isel_float_expr(env, expr->Iex.Binop.arg1);
2070 *dst_lo = s390_isel_float_expr(env, expr->Iex.Binop.arg2);
2082 switch (expr->Iex.Binop.op) {
2096 irrm = expr->Iex.Binop.arg1;
2097 left = expr->Iex.Binop.arg2;
2125 irrm = expr->Iex.Binop.arg1;
2126 left = expr->Iex.Binop.arg2;
2150 IRExpr *left = expr->Iex.Unop.arg;
2161 switch (expr->Iex.Unop.op) {
2164 (left->Iex.Unop.op == Iop_AbsF32 ||
2165 left->Iex.Unop.op == Iop_AbsF64))
2253 return lookupIRTemp(env, expr->Iex.RdTmp.tmp);
2258 s390_amode *am = s390_isel_amode(env, expr->Iex.Load.addr);
2260 if (expr->Iex.Load.end != Iend_BE)
2271 s390_amode *am = s390_amode_for_guest_state(expr->Iex.Get.offset);
2285 const IRConst *con = expr->Iex.Const.con;
2306 op3 = s390_isel_float_expr(env, expr->Iex.Qop.details->arg2);
2307 op2 = s390_isel_float_expr(env, expr->Iex.Qop.details->arg3);
2308 op1 = s390_isel_float_expr(env, expr->Iex.Qop.details->arg4);
2312 switch (expr->Iex.Qop.details->op) {
2322 set_bfp_rounding_mode_in_fpc(env, expr->Iex.Qop.details->arg1);
2329 IRTriop *triop = expr->Iex.Triop.details;
2361 IROp op = expr->Iex.Binop.op;
2362 IRExpr *irrm = expr->Iex.Binop.arg1;
2363 IRExpr *left = expr->Iex.Binop.arg2;
2501 IROp op = expr->Iex.Unop.op;
2502 IRExpr *left = expr->Iex.Unop.arg;
2526 (left->Iex.Unop.op == Iop_AbsF32 ||
2527 left->Iex.Unop.op == Iop_AbsF64))
2607 lookupIRTemp128(dst_hi, dst_lo, env, expr->Iex.RdTmp.tmp);
2615 if (expr->Iex.Load.end != Iend_BE)
2618 addr_hi = expr->Iex.Load.addr;
2643 IRTriop *triop = expr->Iex.Triop.details;
2728 switch (expr->Iex.Binop.op) {
2730 *dst_hi = s390_isel_dfp_expr(env, expr->Iex.Binop.arg1);
2731 *dst_lo = s390_isel_dfp_expr(env, expr->Iex.Binop.arg2);
2742 switch (expr->Iex.Binop.op) {
2745 dfp_op = expr->Iex.Binop.arg1;
2746 int_op = expr->Iex.Binop.arg2;
2750 dfp_op = expr->Iex.Binop.arg1;
2751 int_op = expr->Iex.Binop.arg2;
2755 int_op = expr->Iex.Binop.arg1;
2756 dfp_op = expr->Iex.Binop.arg2;
2796 switch (expr->Iex.Binop.op) {
2810 irrm = expr->Iex.Binop.arg1;
2811 left = expr->Iex.Binop.arg2;
2839 irrm = expr->Iex.Binop.arg1;
2840 left = expr->Iex.Binop.arg2;
2864 IRExpr *left = expr->Iex.Unop.arg;
2872 switch (expr->Iex.Unop.op) {
2946 return lookupIRTemp(env, expr->Iex.RdTmp.tmp);
2951 s390_amode *am = s390_isel_amode(env, expr->Iex.Load.addr);
2953 if (expr->Iex.Load.end != Iend_BE)
2964 s390_amode *am = s390_amode_for_guest_state(expr->Iex.Get.offset);
2973 IROp op = expr->Iex.Binop.op;
2974 IRExpr *irrm = expr->Iex.Binop.arg1;
2975 IRExpr *left = expr->Iex.Binop.arg2;
3100 switch (expr->Iex.Binop.op) {
3103 dfp_op = expr->Iex.Binop.arg1;
3104 int_op = expr->Iex.Binop.arg2;
3108 dfp_op = expr->Iex.Binop.arg1;
3109 int_op = expr->Iex.Binop.arg2;
3113 int_op = expr->Iex.Binop.arg1;
3114 dfp_op = expr->Iex.Binop.arg2;
3134 IROp op = expr->Iex.Unop.op;
3135 IRExpr *left = expr->Iex.Unop.arg;
3182 IRTriop *triop = expr->Iex.Triop.details;
3267 vassert(cond->Iex.Const.con->tag == Ico_U1);
3268 vassert(cond->Iex.Const.con->Ico.U1 == True
3269 || cond->Iex.Const.con->Ico.U1 == False);
3271 return cond->Iex.Const.con->Ico.U1 == True ? S390_CC_ALWAYS : S390_CC_NEVER;
3276 IRTemp tmp = cond->Iex.RdTmp.tmp;
3290 IRExpr *arg = cond->Iex.Unop.arg;
3292 switch (cond->Iex.Unop.op) {
3317 op = (cond->Iex.Unop.op == Iop_CmpNEZ8) ? S390_ZERO_EXTEND_8
3343 IRExpr *arg1 = cond->Iex.Binop.arg1;
3344 IRExpr *arg2 = cond->Iex.Binop.arg2;
3349 switch (cond->Iex.Binop.op) {
3434 return (cond->Iex.Binop.op == Iop_CmpLT32S ||
3435 cond->Iex.Binop.op == Iop_CmpLT64S) ? S390_CC_L : S390_CC_LE;
3450 return (cond->Iex.Binop.op == Iop_CmpLT32U ||
3451 cond->Iex.Binop.op == Iop_CmpLT64U) ? S390_CC_L : S390_CC_LE;
3499 get_const_value_as_ulong(stmt->Ist.Store.data->Iex.Const.con);
3510 UInt offset = stmt->Ist.Store.data->Iex.Get.offset;
3576 new_value = stmt->Ist.Put.data->Iex.Const.con->Ico.U64;
3621 get_const_value_as_ulong(stmt->Ist.Put.data->Iex.Const.con);
3630 if (stmt->Ist.Put.data->Iex.Load.end != Iend_BE) goto stmt_fail;
3631 IRExpr *data = stmt->Ist.Put.data->Iex.Load.addr;
3649 UInt get_offset = stmt->Ist.Put.data->Iex.Get.offset;
4006 IRConst *cdst = next->Iex.Const.con;