Lines Matching refs:sprn

25 static bool pmc_has_overflow_enabled(CPUPPCState *env, int sprn)  in pmc_has_overflow_enabled()  argument
27 if (sprn == SPR_POWER_PMC1) { in pmc_has_overflow_enabled()
172 int sprn, cyc_cnt = env->pmc_cyc_cnt; in pmu_update_cycles() local
174 for (sprn = SPR_POWER_PMC1; sprn <= SPR_POWER_PMC6; sprn++) { in pmu_update_cycles()
175 if (cyc_cnt & (1 << (sprn - SPR_POWER_PMC1 + 1))) { in pmu_update_cycles()
180 env->spr[sprn] += time_delta; in pmu_update_cycles()
192 static QEMUTimer *get_cyc_overflow_timer(CPUPPCState *env, int sprn) in get_cyc_overflow_timer() argument
194 return env->pmu_cyc_overflow_timers[sprn - SPR_POWER_PMC1]; in get_cyc_overflow_timer()
197 static void pmc_update_overflow_timer(CPUPPCState *env, int sprn) in pmc_update_overflow_timer() argument
199 QEMUTimer *pmc_overflow_timer = get_cyc_overflow_timer(env, sprn); in pmc_update_overflow_timer()
210 if (!(env->pmc_cyc_cnt & (1 << (sprn - SPR_POWER_PMC1 + 1))) || in pmc_update_overflow_timer()
211 !pmc_has_overflow_enabled(env, sprn)) { in pmc_update_overflow_timer()
217 if (env->spr[sprn] >= PMC_COUNTER_NEGATIVE_VAL) { in pmc_update_overflow_timer()
220 timeout = PMC_COUNTER_NEGATIVE_VAL - env->spr[sprn]; in pmc_update_overflow_timer()
232 int sprn; in pmu_update_overflow_timers() local
238 for (sprn = SPR_POWER_PMC1; sprn <= SPR_POWER_PMC6; sprn++) { in pmu_update_overflow_timers()
239 pmc_update_overflow_timer(env, sprn); in pmu_update_overflow_timers()
246 int sprn; in pmu_delete_timers() local
248 for (sprn = SPR_POWER_PMC1; sprn <= SPR_POWER_PMC6; sprn++) { in pmu_delete_timers()
249 pmc_overflow_timer = get_cyc_overflow_timer(env, sprn); in pmu_delete_timers()
278 target_ulong helper_read_pmc(CPUPPCState *env, uint32_t sprn) in helper_read_pmc() argument
282 return env->spr[sprn]; in helper_read_pmc()
285 void helper_store_pmc(CPUPPCState *env, uint32_t sprn, uint64_t value) in helper_store_pmc() argument
289 env->spr[sprn] = (uint32_t)value; in helper_store_pmc()
291 pmc_update_overflow_timer(env, sprn); in helper_store_pmc()
351 int i, sprn; in cpu_ppc_pmu_init() local
353 for (sprn = SPR_POWER_PMC1; sprn <= SPR_POWER_PMC6; sprn++) { in cpu_ppc_pmu_init()
354 if (sprn == SPR_POWER_PMC5) { in cpu_ppc_pmu_init()
358 i = sprn - SPR_POWER_PMC1; in cpu_ppc_pmu_init()