Commit 255e1fcb5a940fa027475a44c4c1a250a022c725

Authored by blueswir1
1 parent 47ad35f1

Convert most env fields to TCG registers

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5176 c046a42c-6fe2-441c-8c8c-71466251a162
Showing 1 changed file with 91 additions and 95 deletions
target-sparc/translate.c
... ... @@ -41,9 +41,17 @@
41 41 static TCGv cpu_env, cpu_regwptr;
42 42 static TCGv cpu_cc_src, cpu_cc_src2, cpu_cc_dst;
43 43 static TCGv cpu_psr, cpu_fsr, cpu_pc, cpu_npc, cpu_gregs[8];
  44 +static TCGv cpu_y;
  45 +#ifndef CONFIG_USER_ONLY
  46 +static TCGv cpu_tbr;
  47 +#endif
44 48 static TCGv cpu_cond, cpu_src1, cpu_src2, cpu_dst, cpu_addr, cpu_val;
45 49 #ifdef TARGET_SPARC64
46   -static TCGv cpu_xcc;
  50 +static TCGv cpu_xcc, cpu_asi, cpu_fprs, cpu_gsr;
  51 +static TCGv cpu_tick_cmpr, cpu_stick_cmpr, cpu_hstick_cmpr;
  52 +static TCGv cpu_hintp, cpu_htba, cpu_hver, cpu_ssr, cpu_ver;
  53 +#else
  54 +static TCGv cpu_wim;
47 55 #endif
48 56 /* local register indexes (only used inside old micro ops) */
49 57 static TCGv cpu_tmp0, cpu_tmp32, cpu_tmp64;
... ... @@ -724,8 +732,7 @@ static inline void gen_op_mulscc(TCGv dst, TCGv src1, TCGv src2)
724 732 T1 = 0;
725 733 */
726 734 tcg_gen_mov_tl(cpu_cc_src, src1);
727   - tcg_gen_ld_tl(r_temp, cpu_env, offsetof(CPUSPARCState, y));
728   - tcg_gen_andi_tl(r_temp, r_temp, 0x1);
  735 + tcg_gen_andi_tl(r_temp, cpu_y, 0x1);
729 736 tcg_gen_mov_tl(cpu_cc_src2, src2);
730 737 tcg_gen_brcondi_tl(TCG_COND_NE, r_temp, 0, l1);
731 738 tcg_gen_movi_tl(cpu_cc_src2, 0);
... ... @@ -735,10 +742,8 @@ static inline void gen_op_mulscc(TCGv dst, TCGv src1, TCGv src2)
735 742 // env->y = (b2 << 31) | (env->y >> 1);
736 743 tcg_gen_andi_tl(r_temp, cpu_cc_src, 0x1);
737 744 tcg_gen_shli_tl(r_temp, r_temp, 31);
738   - tcg_gen_ld_tl(cpu_tmp0, cpu_env, offsetof(CPUSPARCState, y));
739   - tcg_gen_shri_tl(cpu_tmp0, cpu_tmp0, 1);
740   - tcg_gen_or_tl(cpu_tmp0, cpu_tmp0, r_temp);
741   - tcg_gen_st_tl(cpu_tmp0, cpu_env, offsetof(CPUSPARCState, y));
  745 + tcg_gen_shri_tl(cpu_tmp0, cpu_y, 1);
  746 + tcg_gen_or_tl(cpu_y, cpu_tmp0, r_temp);
742 747  
743 748 // b1 = N ^ V;
744 749 gen_mov_reg_N(cpu_tmp0, cpu_psr);
... ... @@ -776,8 +781,7 @@ static inline void gen_op_umul(TCGv dst, TCGv src1, TCGv src2)
776 781 tcg_gen_shri_i64(r_temp, r_temp2, 32);
777 782 tcg_gen_trunc_i64_tl(cpu_tmp0, r_temp);
778 783 tcg_temp_free(r_temp);
779   - tcg_gen_andi_tl(cpu_tmp0, cpu_tmp0, 0xffffffff);
780   - tcg_gen_st_tl(cpu_tmp0, cpu_env, offsetof(CPUSPARCState, y));
  784 + tcg_gen_andi_tl(cpu_y, cpu_tmp0, 0xffffffff);
781 785 #ifdef TARGET_SPARC64
782 786 tcg_gen_mov_i64(dst, r_temp2);
783 787 #else
... ... @@ -800,8 +804,7 @@ static inline void gen_op_smul(TCGv dst, TCGv src1, TCGv src2)
800 804 tcg_gen_shri_i64(r_temp, r_temp2, 32);
801 805 tcg_gen_trunc_i64_tl(cpu_tmp0, r_temp);
802 806 tcg_temp_free(r_temp);
803   - tcg_gen_andi_tl(cpu_tmp0, cpu_tmp0, 0xffffffff);
804   - tcg_gen_st_tl(cpu_tmp0, cpu_env, offsetof(CPUSPARCState, y));
  807 + tcg_gen_andi_tl(cpu_y, cpu_tmp0, 0xffffffff);
805 808 #ifdef TARGET_SPARC64
806 809 tcg_gen_mov_i64(dst, r_temp2);
807 810 #else
... ... @@ -1645,7 +1648,7 @@ static inline TCGv gen_get_asi(int insn, TCGv r_addr)
1645 1648  
1646 1649 if (IS_IMM) {
1647 1650 r_asi = tcg_temp_new(TCG_TYPE_I32);
1648   - tcg_gen_ld_i32(r_asi, cpu_env, offsetof(CPUSPARCState, asi));
  1651 + tcg_gen_mov_i32(r_asi, cpu_asi);
1649 1652 } else {
1650 1653 asi = GET_FIELD(insn, 19, 26);
1651 1654 r_asi = tcg_const_i32(asi);
... ... @@ -2080,9 +2083,7 @@ static void disas_sparc_insn(DisasContext * dc)
2080 2083 SPARCv8 manual, rdy on the
2081 2084 microSPARC II */
2082 2085 #endif
2083   - tcg_gen_ld_tl(cpu_tmp0, cpu_env,
2084   - offsetof(CPUSPARCState, y));
2085   - gen_movl_TN_reg(rd, cpu_tmp0);
  2086 + gen_movl_TN_reg(rd, cpu_y);
2086 2087 break;
2087 2088 #ifdef TARGET_SPARC64
2088 2089 case 0x2: /* V9 rdccr */
... ... @@ -2090,9 +2091,7 @@ static void disas_sparc_insn(DisasContext * dc)
2090 2091 gen_movl_TN_reg(rd, cpu_dst);
2091 2092 break;
2092 2093 case 0x3: /* V9 rdasi */
2093   - tcg_gen_ld_i32(cpu_tmp32, cpu_env,
2094   - offsetof(CPUSPARCState, asi));
2095   - tcg_gen_ext_i32_tl(cpu_dst, cpu_tmp32);
  2094 + tcg_gen_ext_i32_tl(cpu_dst, cpu_asi);
2096 2095 gen_movl_TN_reg(rd, cpu_dst);
2097 2096 break;
2098 2097 case 0x4: /* V9 rdtick */
... ... @@ -2118,9 +2117,7 @@ static void disas_sparc_insn(DisasContext * dc)
2118 2117 }
2119 2118 break;
2120 2119 case 0x6: /* V9 rdfprs */
2121   - tcg_gen_ld_i32(cpu_tmp32, cpu_env,
2122   - offsetof(CPUSPARCState, fprs));
2123   - tcg_gen_ext_i32_tl(cpu_dst, cpu_tmp32);
  2120 + tcg_gen_ext_i32_tl(cpu_dst, cpu_fprs);
2124 2121 gen_movl_TN_reg(rd, cpu_dst);
2125 2122 break;
2126 2123 case 0xf: /* V9 membar */
... ... @@ -2128,14 +2125,10 @@ static void disas_sparc_insn(DisasContext * dc)
2128 2125 case 0x13: /* Graphics Status */
2129 2126 if (gen_trap_ifnofpu(dc, cpu_cond))
2130 2127 goto jmp_insn;
2131   - tcg_gen_ld_tl(cpu_tmp0, cpu_env,
2132   - offsetof(CPUSPARCState, gsr));
2133   - gen_movl_TN_reg(rd, cpu_tmp0);
  2128 + gen_movl_TN_reg(rd, cpu_gsr);
2134 2129 break;
2135 2130 case 0x17: /* Tick compare */
2136   - tcg_gen_ld_tl(cpu_tmp0, cpu_env,
2137   - offsetof(CPUSPARCState, tick_cmpr));
2138   - gen_movl_TN_reg(rd, cpu_tmp0);
  2131 + gen_movl_TN_reg(rd, cpu_tick_cmpr);
2139 2132 break;
2140 2133 case 0x18: /* System tick */
2141 2134 {
... ... @@ -2151,9 +2144,7 @@ static void disas_sparc_insn(DisasContext * dc)
2151 2144 }
2152 2145 break;
2153 2146 case 0x19: /* System tick compare */
2154   - tcg_gen_ld_tl(cpu_tmp0, cpu_env,
2155   - offsetof(CPUSPARCState, stick_cmpr));
2156   - gen_movl_TN_reg(rd, cpu_tmp0);
  2147 + gen_movl_TN_reg(rd, cpu_stick_cmpr);
2157 2148 break;
2158 2149 case 0x10: /* Performance Control */
2159 2150 case 0x11: /* Performance Instrumentation Counter */
... ... @@ -2184,23 +2175,16 @@ static void disas_sparc_insn(DisasContext * dc)
2184 2175 // gen_op_rdhtstate();
2185 2176 break;
2186 2177 case 3: // hintp
2187   - tcg_gen_ld_i32(cpu_tmp32, cpu_env,
2188   - offsetof(CPUSPARCState, hintp));
2189   - tcg_gen_ext_i32_tl(cpu_dst, cpu_tmp32);
  2178 + tcg_gen_mov_tl(cpu_dst, cpu_hintp);
2190 2179 break;
2191 2180 case 5: // htba
2192   - tcg_gen_ld_i32(cpu_tmp32, cpu_env,
2193   - offsetof(CPUSPARCState, htba));
2194   - tcg_gen_ext_i32_tl(cpu_dst, cpu_tmp32);
  2181 + tcg_gen_mov_tl(cpu_dst, cpu_htba);
2195 2182 break;
2196 2183 case 6: // hver
2197   - tcg_gen_ld_i32(cpu_tmp32, cpu_env,
2198   - offsetof(CPUSPARCState, hver));
2199   - tcg_gen_ext_i32_tl(cpu_dst, cpu_tmp32);
  2184 + tcg_gen_mov_tl(cpu_dst, cpu_hver);
2200 2185 break;
2201 2186 case 31: // hstick_cmpr
2202   - tcg_gen_ld_tl(cpu_dst, cpu_env,
2203   - offsetof(CPUSPARCState, hstick_cmpr));
  2187 + tcg_gen_mov_tl(cpu_dst, cpu_hstick_cmpr);
2204 2188 break;
2205 2189 default:
2206 2190 goto illegal_insn;
... ... @@ -2276,8 +2260,7 @@ static void disas_sparc_insn(DisasContext * dc)
2276 2260 }
2277 2261 break;
2278 2262 case 5: // tba
2279   - tcg_gen_ld_tl(cpu_tmp0, cpu_env,
2280   - offsetof(CPUSPARCState, tbr));
  2263 + tcg_gen_mov_tl(cpu_tmp0, cpu_tbr);
2281 2264 break;
2282 2265 case 6: // pstate
2283 2266 tcg_gen_ld_i32(cpu_tmp32, cpu_env,
... ... @@ -2332,22 +2315,17 @@ static void disas_sparc_insn(DisasContext * dc)
2332 2315 CHECK_IU_FEATURE(dc, HYPV);
2333 2316 if (!hypervisor(dc))
2334 2317 goto priv_insn;
2335   - tcg_gen_ld_i32(cpu_tmp32, cpu_env,
2336   - offsetof(CPUSPARCState, ssr));
2337   - tcg_gen_ext_i32_tl(cpu_tmp0, cpu_tmp32);
  2318 + tcg_gen_ext_i32_tl(cpu_tmp0, cpu_ssr);
2338 2319 break;
2339 2320 case 31: // ver
2340   - tcg_gen_ld_tl(cpu_tmp0, cpu_env,
2341   - offsetof(CPUSPARCState, version));
  2321 + tcg_gen_mov_tl(cpu_tmp0, cpu_ver);
2342 2322 break;
2343 2323 case 15: // fq
2344 2324 default:
2345 2325 goto illegal_insn;
2346 2326 }
2347 2327 #else
2348   - tcg_gen_ld_i32(cpu_tmp32, cpu_env,
2349   - offsetof(CPUSPARCState, wim));
2350   - tcg_gen_ext_i32_tl(cpu_tmp0, cpu_tmp32);
  2328 + tcg_gen_ext_i32_tl(cpu_tmp0, cpu_wim);
2351 2329 #endif
2352 2330 gen_movl_TN_reg(rd, cpu_tmp0);
2353 2331 break;
... ... @@ -2358,8 +2336,7 @@ static void disas_sparc_insn(DisasContext * dc)
2358 2336 #else
2359 2337 if (!supervisor(dc))
2360 2338 goto priv_insn;
2361   - tcg_gen_ld_tl(cpu_tmp0, cpu_env, offsetof(CPUSPARCState, tbr));
2362   - gen_movl_TN_reg(rd, cpu_tmp0);
  2339 + gen_movl_TN_reg(rd, cpu_tbr);
2363 2340 #endif
2364 2341 break;
2365 2342 #endif
... ... @@ -3152,9 +3129,7 @@ static void disas_sparc_insn(DisasContext * dc)
3152 3129 {
3153 3130 switch(rd) {
3154 3131 case 0: /* wry */
3155   - tcg_gen_xor_tl(cpu_tmp0, cpu_src1, cpu_src2);
3156   - tcg_gen_st_tl(cpu_tmp0, cpu_env,
3157   - offsetof(CPUSPARCState, y));
  3132 + tcg_gen_xor_tl(cpu_y, cpu_src1, cpu_src2);
3158 3133 break;
3159 3134 #ifndef TARGET_SPARC64
3160 3135 case 0x01 ... 0x0f: /* undefined in the
... ... @@ -3173,15 +3148,11 @@ static void disas_sparc_insn(DisasContext * dc)
3173 3148 break;
3174 3149 case 0x3: /* V9 wrasi */
3175 3150 tcg_gen_xor_tl(cpu_dst, cpu_src1, cpu_src2);
3176   - tcg_gen_trunc_tl_i32(cpu_tmp32, cpu_dst);
3177   - tcg_gen_st_i32(cpu_tmp32, cpu_env,
3178   - offsetof(CPUSPARCState, asi));
  3151 + tcg_gen_trunc_tl_i32(cpu_asi, cpu_dst);
3179 3152 break;
3180 3153 case 0x6: /* V9 wrfprs */
3181 3154 tcg_gen_xor_tl(cpu_dst, cpu_src1, cpu_src2);
3182   - tcg_gen_trunc_tl_i32(cpu_tmp32, cpu_dst);
3183   - tcg_gen_st_i32(cpu_tmp32, cpu_env,
3184   - offsetof(CPUSPARCState, fprs));
  3155 + tcg_gen_trunc_tl_i32(cpu_fprs, cpu_dst);
3185 3156 save_state(dc, cpu_cond);
3186 3157 gen_op_next_insn();
3187 3158 tcg_gen_exit_tb(0);
... ... @@ -3196,9 +3167,7 @@ static void disas_sparc_insn(DisasContext * dc)
3196 3167 case 0x13: /* Graphics Status */
3197 3168 if (gen_trap_ifnofpu(dc, cpu_cond))
3198 3169 goto jmp_insn;
3199   - tcg_gen_xor_tl(cpu_tmp0, cpu_src1, cpu_src2);
3200   - tcg_gen_st_tl(cpu_tmp0, cpu_env,
3201   - offsetof(CPUSPARCState, gsr));
  3170 + tcg_gen_xor_tl(cpu_gsr, cpu_src1, cpu_src2);
3202 3171 break;
3203 3172 case 0x17: /* Tick compare */
3204 3173 #if !defined(CONFIG_USER_ONLY)
... ... @@ -3208,16 +3177,13 @@ static void disas_sparc_insn(DisasContext * dc)
3208 3177 {
3209 3178 TCGv r_tickptr;
3210 3179  
3211   - tcg_gen_xor_tl(cpu_tmp0, cpu_src1,
  3180 + tcg_gen_xor_tl(cpu_tick_cmpr, cpu_src1,
3212 3181 cpu_src2);
3213   - tcg_gen_st_tl(cpu_tmp0, cpu_env,
3214   - offsetof(CPUSPARCState,
3215   - tick_cmpr));
3216 3182 r_tickptr = tcg_temp_new(TCG_TYPE_PTR);
3217 3183 tcg_gen_ld_ptr(r_tickptr, cpu_env,
3218 3184 offsetof(CPUState, tick));
3219 3185 tcg_gen_helper_0_2(helper_tick_set_limit,
3220   - r_tickptr, cpu_tmp0);
  3186 + r_tickptr, cpu_tick_cmpr);
3221 3187 tcg_temp_free(r_tickptr);
3222 3188 }
3223 3189 break;
... ... @@ -3247,16 +3213,13 @@ static void disas_sparc_insn(DisasContext * dc)
3247 3213 {
3248 3214 TCGv r_tickptr;
3249 3215  
3250   - tcg_gen_xor_tl(cpu_tmp0, cpu_src1,
  3216 + tcg_gen_xor_tl(cpu_stick_cmpr, cpu_src1,
3251 3217 cpu_src2);
3252   - tcg_gen_st_tl(cpu_tmp0, cpu_env,
3253   - offsetof(CPUSPARCState,
3254   - stick_cmpr));
3255 3218 r_tickptr = tcg_temp_new(TCG_TYPE_PTR);
3256 3219 tcg_gen_ld_ptr(r_tickptr, cpu_env,
3257 3220 offsetof(CPUState, stick));
3258 3221 tcg_gen_helper_0_2(helper_tick_set_limit,
3259   - r_tickptr, cpu_tmp0);
  3222 + r_tickptr, cpu_stick_cmpr);
3260 3223 tcg_temp_free(r_tickptr);
3261 3224 }
3262 3225 break;
... ... @@ -3374,8 +3337,7 @@ static void disas_sparc_insn(DisasContext * dc)
3374 3337 }
3375 3338 break;
3376 3339 case 5: // tba
3377   - tcg_gen_st_tl(cpu_tmp0, cpu_env,
3378   - offsetof(CPUSPARCState, tbr));
  3340 + tcg_gen_mov_tl(cpu_tbr, cpu_tmp0);
3379 3341 break;
3380 3342 case 6: // pstate
3381 3343 save_state(dc, cpu_cond);
... ... @@ -3438,9 +3400,7 @@ static void disas_sparc_insn(DisasContext * dc)
3438 3400 CHECK_IU_FEATURE(dc, HYPV);
3439 3401 if (!hypervisor(dc))
3440 3402 goto priv_insn;
3441   - tcg_gen_trunc_tl_i32(cpu_tmp32, cpu_tmp0);
3442   - tcg_gen_st_i32(cpu_tmp32, cpu_env,
3443   - offsetof(CPUSPARCState, ssr));
  3403 + tcg_gen_trunc_tl_i32(cpu_ssr, cpu_tmp0);
3444 3404 break;
3445 3405 default:
3446 3406 goto illegal_insn;
... ... @@ -3450,8 +3410,7 @@ static void disas_sparc_insn(DisasContext * dc)
3450 3410 if (dc->def->nwindows != 32)
3451 3411 tcg_gen_andi_tl(cpu_tmp32, cpu_tmp32,
3452 3412 (1 << dc->def->nwindows) - 1);
3453   - tcg_gen_st_i32(cpu_tmp32, cpu_env,
3454   - offsetof(CPUSPARCState, wim));
  3413 + tcg_gen_mov_i32(cpu_wim, cpu_tmp32);
3455 3414 #endif
3456 3415 }
3457 3416 break;
... ... @@ -3460,9 +3419,7 @@ static void disas_sparc_insn(DisasContext * dc)
3460 3419 #ifndef TARGET_SPARC64
3461 3420 if (!supervisor(dc))
3462 3421 goto priv_insn;
3463   - tcg_gen_xor_tl(cpu_tmp0, cpu_src1, cpu_src2);
3464   - tcg_gen_st_tl(cpu_tmp0, cpu_env,
3465   - offsetof(CPUSPARCState, tbr));
  3422 + tcg_gen_xor_tl(cpu_tbr, cpu_src1, cpu_src2);
3466 3423 #else
3467 3424 CHECK_IU_FEATURE(dc, HYPV);
3468 3425 if (!hypervisor(dc))
... ... @@ -3480,27 +3437,21 @@ static void disas_sparc_insn(DisasContext * dc)
3480 3437 // XXX gen_op_wrhtstate();
3481 3438 break;
3482 3439 case 3: // hintp
3483   - tcg_gen_trunc_tl_i32(cpu_tmp32, cpu_tmp0);
3484   - tcg_gen_st_i32(cpu_tmp32, cpu_env,
3485   - offsetof(CPUSPARCState, hintp));
  3440 + tcg_gen_mov_tl(cpu_hintp, cpu_tmp0);
3486 3441 break;
3487 3442 case 5: // htba
3488   - tcg_gen_trunc_tl_i32(cpu_tmp32, cpu_tmp0);
3489   - tcg_gen_st_i32(cpu_tmp32, cpu_env,
3490   - offsetof(CPUSPARCState, htba));
  3443 + tcg_gen_mov_tl(cpu_htba, cpu_tmp0);
3491 3444 break;
3492 3445 case 31: // hstick_cmpr
3493 3446 {
3494 3447 TCGv r_tickptr;
3495 3448  
3496   - tcg_gen_st_tl(cpu_tmp0, cpu_env,
3497   - offsetof(CPUSPARCState,
3498   - hstick_cmpr));
  3449 + tcg_gen_mov_tl(cpu_hstick_cmpr, cpu_tmp0);
3499 3450 r_tickptr = tcg_temp_new(TCG_TYPE_PTR);
3500 3451 tcg_gen_ld_ptr(r_tickptr, cpu_env,
3501 3452 offsetof(CPUState, hstick));
3502 3453 tcg_gen_helper_0_2(helper_tick_set_limit,
3503   - r_tickptr, cpu_tmp0);
  3454 + r_tickptr, cpu_hstick_cmpr);
3504 3455 tcg_temp_free(r_tickptr);
3505 3456 }
3506 3457 break;
... ... @@ -4905,6 +4856,44 @@ void gen_intermediate_code_init(CPUSPARCState *env)
4905 4856 cpu_xcc = tcg_global_mem_new(TCG_TYPE_I32,
4906 4857 TCG_AREG0, offsetof(CPUState, xcc),
4907 4858 "xcc");
  4859 + cpu_asi = tcg_global_mem_new(TCG_TYPE_I32,
  4860 + TCG_AREG0, offsetof(CPUState, asi),
  4861 + "asi");
  4862 + cpu_fprs = tcg_global_mem_new(TCG_TYPE_I32,
  4863 + TCG_AREG0, offsetof(CPUState, fprs),
  4864 + "fprs");
  4865 + cpu_gsr = tcg_global_mem_new(TCG_TYPE_TL,
  4866 + TCG_AREG0, offsetof(CPUState, gsr),
  4867 + "gsr");
  4868 + cpu_tick_cmpr = tcg_global_mem_new(TCG_TYPE_TL,
  4869 + TCG_AREG0,
  4870 + offsetof(CPUState, tick_cmpr),
  4871 + "tick_cmpr");
  4872 + cpu_stick_cmpr = tcg_global_mem_new(TCG_TYPE_TL,
  4873 + TCG_AREG0,
  4874 + offsetof(CPUState, stick_cmpr),
  4875 + "stick_cmpr");
  4876 + cpu_hstick_cmpr = tcg_global_mem_new(TCG_TYPE_TL,
  4877 + TCG_AREG0,
  4878 + offsetof(CPUState, hstick_cmpr),
  4879 + "hstick_cmpr");
  4880 + cpu_hintp = tcg_global_mem_new(TCG_TYPE_TL, TCG_AREG0,
  4881 + offsetof(CPUState, hintp),
  4882 + "hintp");
  4883 + cpu_htba = tcg_global_mem_new(TCG_TYPE_TL, TCG_AREG0,
  4884 + offsetof(CPUState, htba),
  4885 + "htba");
  4886 + cpu_hver = tcg_global_mem_new(TCG_TYPE_TL, TCG_AREG0,
  4887 + offsetof(CPUState, hver),
  4888 + "hver");
  4889 + cpu_ssr = tcg_global_mem_new(TCG_TYPE_TL, TCG_AREG0,
  4890 + offsetof(CPUState, ssr), "ssr");
  4891 + cpu_ver = tcg_global_mem_new(TCG_TYPE_TL, TCG_AREG0,
  4892 + offsetof(CPUState, version), "ver");
  4893 +#else
  4894 + cpu_wim = tcg_global_mem_new(TCG_TYPE_I32,
  4895 + TCG_AREG0, offsetof(CPUState, wim),
  4896 + "wim");
4908 4897 #endif
4909 4898 cpu_cond = tcg_global_mem_new(TCG_TYPE_TL,
4910 4899 TCG_AREG0, offsetof(CPUState, cond),
... ... @@ -4930,6 +4919,13 @@ void gen_intermediate_code_init(CPUSPARCState *env)
4930 4919 cpu_npc = tcg_global_mem_new(TCG_TYPE_TL,
4931 4920 TCG_AREG0, offsetof(CPUState, npc),
4932 4921 "npc");
  4922 + cpu_y = tcg_global_mem_new(TCG_TYPE_TL,
  4923 + TCG_AREG0, offsetof(CPUState, y), "y");
  4924 +#ifndef CONFIG_USER_ONLY
  4925 + cpu_tbr = tcg_global_mem_new(TCG_TYPE_TL,
  4926 + TCG_AREG0, offsetof(CPUState, tbr),
  4927 + "tbr");
  4928 +#endif
4933 4929 for (i = 1; i < 8; i++)
4934 4930 cpu_gregs[i] = tcg_global_mem_new(TCG_TYPE_TL, TCG_AREG0,
4935 4931 offsetof(CPUState, gregs[i]),
... ...