Lines Matching refs:hreg
55 - A mapping from IRTemp to HReg. This tells the insn selector
108 HReg *vregmap;
109 HReg *vregmapHI;
128 static HReg s390_isel_int_expr(ISelEnv *, IRExpr *);
133 static void s390_isel_int128_expr(HReg *, HReg *, ISelEnv *, IRExpr *);
134 static HReg s390_isel_float_expr(ISelEnv *, IRExpr *);
135 static void s390_isel_float128_expr(HReg *, HReg *, ISelEnv *, IRExpr *);
136 static HReg s390_isel_dfp_expr(ISelEnv *, IRExpr *);
137 static void s390_isel_dfp128_expr(HReg *, HReg *, ISelEnv *, IRExpr *);
196 static HReg
208 lookupIRTemp128(HReg *hi, HReg *lo, ISelEnv *env, IRTemp tmp)
219 static __inline__ HReg
225 static __inline__ HReg
233 static __inline__ HReg
239 static __inline__ HReg
247 static __inline__ HReg
255 static __inline__ HReg
400 s390_opnd_copy(UChar size, HReg dst, s390_opnd_RMI opnd)
420 s390_opnd_reg(HReg reg)
518 HReg tmpregs[S390_NUM_GPRPARMS];
607 HReg finalreg;
679 HReg ir = s390_isel_int_expr(env, irrm);
681 HReg mode = newVRegI(env);
757 HReg ir = s390_isel_int_expr(env, irrm);
759 HReg mode = newVRegI(env);
858 static HReg
859 convert_s390_to_vex_bfpcc(ISelEnv *env, HReg cc_s390)
861 HReg cc0, cc1, b2, b6, cc_vex;
893 static HReg
894 convert_s390_to_vex_dfpcc(ISelEnv *env, HReg cc_s390)
905 s390_isel_int128_expr_wrk(HReg *dst_hi, HReg *dst_lo, ISelEnv *env,
951 HReg r10, r11, h1;
982 HReg r10, r11, h1;
1010 HReg r10, r11, hi, lo;
1049 s390_isel_int128_expr(HReg *dst_hi, HReg *dst_lo, ISelEnv *env, IRExpr *expr)
1081 static HReg
1102 HReg dst = newVRegI(env);
1117 HReg h1, res;
1139 HReg r10, r11;
1179 HReg r10, r11;
1249 HReg op_hi, op_lo, f13, f15;
1283 HReg op_hi, op_lo, f13, f15;
1306 HReg h2;
1337 HReg cc_s390, h2;
1351 HReg op1_hi, op1_lo, op2_hi, op2_lo, f12, f13, f14, f15, cc_s390;
1379 HReg cc_s390, h2;
1398 HReg op1_hi, op1_lo, op2_hi, op2_lo, f12, f13, f14, f15, cc_s390;
1547 HReg dst, h1;
1604 HReg op_hi, op_lo, f13, f15;
1670 HReg dst_hi, dst_lo;
1677 HReg dst_hi, dst_lo;
1777 HReg r10, r11;
1802 HReg dst = newVRegI(env);
1820 HReg dst = newVRegI(env);
1821 HReg ret = make_gpr(S390_REGNO_RETURN_VALUE);
1841 HReg dst = newVRegI(env);
1861 HReg dst, r1;
1891 static HReg
1894 HReg dst = s390_isel_int_expr_wrk(env, expr);
1949 s390_isel_float128_expr_wrk(HReg *dst_hi, HReg *dst_lo, ISelEnv *env,
2001 HReg op1_hi, op1_lo, op2_hi, op2_lo, f12, f13, f14, f15;
2045 HReg op_hi, op_lo, f12, f13, f14, f15;
2081 HReg h1; /* virtual reg. to hold source */
2082 HReg f0, f2, f4, r1; /* real registers used by PFPO */
2119 HReg op_hi, op_lo;
2120 HReg f0, f2, f4, f6, r1; /* real registers used by PFPO */
2150 HReg op_hi, op_lo;
2151 HReg f0, f2, f4, f6; /* real registers */
2192 HReg op_hi, op_lo, op, f12, f13, f14, f15;
2263 s390_isel_float128_expr(HReg *dst_hi, HReg *dst_lo, ISelEnv *env, IRExpr *expr)
2279 static HReg
2296 HReg dst = newVRegF(env);
2309 HReg dst = newVRegF(env);
2323 HReg dst = newVRegF(env);
2342 HReg op1, op2, op3, dst;
2373 HReg h1, op2, dst;
2403 HReg h1, dst;
2458 HReg f0, f4, r1; /* real registers used by PFPO */
2476 HReg op_hi, op_lo;
2477 HReg f0, f4, f6, r1; /* real registers used by PFPO */
2501 HReg op_hi, op_lo, f12, f13, f14, f15;
2546 HReg h1, dst;
2549 HReg dst_hi, dst_lo;
2621 static HReg
2624 HReg dst = s390_isel_float_expr_wrk(env, expr);
2638 s390_isel_dfp128_expr_wrk(HReg *dst_hi, HReg *dst_lo, ISelEnv *env,
2691 HReg op1_hi, op1_lo, op2_hi, op2_lo, f9, f11, f12, f13, f14, f15;
2743 HReg op1 = s390_isel_int_expr(env, left);
2778 HReg op1_hi, op1_lo, op2, f9, f11, f13, f15;
2833 HReg h1; /* virtual reg. to hold source */
2834 HReg f0, f2, f4, r1; /* real registers used by PFPO */
2871 HReg op_hi, op_lo;
2872 HReg f0, f2, f4, f6, r1; /* real registers used by PFPO */
2907 HReg op, f12, f14;
2958 s390_isel_dfp128_expr(HReg *dst_hi, HReg *dst_lo, ISelEnv *env, IRExpr *expr)
2974 static HReg
2991 HReg dst = newVRegF(env);
3004 HReg dst = newVRegF(env);
3017 HReg h1, dst;
3058 HReg f0, f4, r1; /* real registers used by PFPO */
3076 HReg op_hi, op_lo;
3077 HReg f0, f4, f6, r1; /* real registers used by PFPO */
3097 HReg op_hi, op_lo, f12, f13, f14, f15;
3135 HReg op2;
3136 HReg op3;
3178 HReg h1, dst;
3181 HReg dst_hi, dst_lo;
3230 HReg op2, op3, dst;
3281 static HReg
3284 HReg dst = s390_isel_dfp_expr_wrk(env, expr);
3318 HReg reg = lookupIRTemp(env, tmp);
3341 HReg dst = newVRegI(env);
3342 HReg h1 = s390_isel_int_expr(env, arg);
3356 HReg dst;
3386 HReg reg1, reg2;
3450 HReg op1;
3467 HReg op1;
3483 HReg op1;
3525 HReg src;
3586 HReg src;
3733 HReg src, dst;
3737 HReg dst_hi, dst_lo, res_hi, res_lo;
3769 HReg dst_hi, dst_lo, res_hi, res_lo;
3786 HReg dst_hi, dst_lo, res_hi, res_lo;
3808 HReg dst;
3842 HReg ret = make_gpr(S390_REGNO_RETURN_VALUE);
3861 HReg op3 = s390_isel_int_expr(env, cas->dataLo); /* new value */
3862 HReg op1 = s390_isel_int_expr(env, cas->expdLo); /* expected value */
3863 HReg old = lookupIRTemp(env, cas->oldLo);
3874 HReg r8, r9, r10, r11, r1;
3875 HReg op3_high = s390_isel_int_expr(env, cas->dataHi); /* new value */
3876 HReg op3_low = s390_isel_int_expr(env, cas->dataLo); /* new value */
3877 HReg op1_high = s390_isel_int_expr(env, cas->expdHi); /* expected value */
3878 HReg op1_low = s390_isel_int_expr(env, cas->expdLo); /* expected value */
3879 HReg old_low = lookupIRTemp(env, cas->oldLo);
3880 HReg old_high = lookupIRTemp(env, cas->oldHi);
3940 HReg dst = s390_isel_int_expr(env,
3958 HReg dst = s390_isel_int_expr(env, IRExpr_Const(stmt->Ist.Exit.dst));
4036 HReg dst = s390_isel_int_expr(env, next);
4049 HReg dst = s390_isel_int_expr(env, next);
4073 HReg dst = s390_isel_int_expr(env, next);
4100 HReg hreg, hregHI;
4126 /* Make up an IRTemp -> virtual HReg mapping. This doesn't
4133 env->vregmap = LibVEX_Alloc_inline(env->n_vregmap * sizeof(HReg));
4134 env->vregmapHI = LibVEX_Alloc_inline(env->n_vregmap * sizeof(HReg));
4149 hregHI = hreg = INVALID_HREG;
4156 hreg = mkVRegI(j++);
4160 hreg = mkVRegI(j++);
4168 hreg = mkVRegF(j++);
4173 hreg = mkVRegF(j++);
4183 env->vregmap[i] = hreg;