mirror of
https://github.com/mii443/qemu.git
synced 2025-12-16 17:18:49 +00:00
cputlb: Change tlb_flush() argument to CPUState
Signed-off-by: Andreas Färber <afaerber@suse.de>
This commit is contained in:
@@ -34,7 +34,7 @@ static void sparc_cpu_reset(CPUState *s)
|
||||
scc->parent_reset(s);
|
||||
|
||||
memset(env, 0, offsetof(CPUSPARCState, version));
|
||||
tlb_flush(env, 1);
|
||||
tlb_flush(s, 1);
|
||||
env->cwp = 0;
|
||||
#ifndef TARGET_SPARC64
|
||||
env->wim = 1;
|
||||
|
||||
@@ -871,7 +871,7 @@ void helper_st_asi(CPUSPARCState *env, target_ulong addr, uint64_t val, int asi,
|
||||
case 2: /* flush region (16M) */
|
||||
case 3: /* flush context (4G) */
|
||||
case 4: /* flush entire */
|
||||
tlb_flush(env, 1);
|
||||
tlb_flush(CPU(cpu), 1);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -896,7 +896,7 @@ void helper_st_asi(CPUSPARCState *env, target_ulong addr, uint64_t val, int asi,
|
||||
disabled mode are invalid in normal mode */
|
||||
if ((oldreg & (MMU_E | MMU_NF | env->def->mmu_bm)) !=
|
||||
(env->mmuregs[reg] & (MMU_E | MMU_NF | env->def->mmu_bm))) {
|
||||
tlb_flush(env, 1);
|
||||
tlb_flush(CPU(cpu), 1);
|
||||
}
|
||||
break;
|
||||
case 1: /* Context Table Pointer Register */
|
||||
@@ -907,7 +907,7 @@ void helper_st_asi(CPUSPARCState *env, target_ulong addr, uint64_t val, int asi,
|
||||
if (oldreg != env->mmuregs[reg]) {
|
||||
/* we flush when the MMU context changes because
|
||||
QEMU has no MMU context support */
|
||||
tlb_flush(env, 1);
|
||||
tlb_flush(CPU(cpu), 1);
|
||||
}
|
||||
break;
|
||||
case 3: /* Synchronous Fault Status Register with Clear */
|
||||
@@ -1663,7 +1663,9 @@ uint64_t helper_ld_asi(CPUSPARCState *env, target_ulong addr, int asi, int size,
|
||||
void helper_st_asi(CPUSPARCState *env, target_ulong addr, target_ulong val,
|
||||
int asi, int size)
|
||||
{
|
||||
CPUState *cs = CPU(sparc_env_get_cpu(env));
|
||||
SPARCCPU *cpu = sparc_env_get_cpu(env);
|
||||
CPUState *cs = CPU(cpu);
|
||||
|
||||
#ifdef DEBUG_ASI
|
||||
dump_asi("write", addr, asi, size, val);
|
||||
#endif
|
||||
@@ -1872,7 +1874,7 @@ void helper_st_asi(CPUSPARCState *env, target_ulong addr, target_ulong val,
|
||||
#ifdef DEBUG_MMU
|
||||
dump_mmu(stdout, fprintf, env);
|
||||
#endif
|
||||
tlb_flush(env, 1);
|
||||
tlb_flush(CPU(cpu), 1);
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -1961,13 +1963,13 @@ void helper_st_asi(CPUSPARCState *env, target_ulong addr, target_ulong val,
|
||||
env->dmmu.mmu_primary_context = val;
|
||||
/* can be optimized to only flush MMU_USER_IDX
|
||||
and MMU_KERNEL_IDX entries */
|
||||
tlb_flush(env, 1);
|
||||
tlb_flush(CPU(cpu), 1);
|
||||
break;
|
||||
case 2: /* Secondary context */
|
||||
env->dmmu.mmu_secondary_context = val;
|
||||
/* can be optimized to only flush MMU_USER_SECONDARY_IDX
|
||||
and MMU_KERNEL_SECONDARY_IDX entries */
|
||||
tlb_flush(env, 1);
|
||||
tlb_flush(CPU(cpu), 1);
|
||||
break;
|
||||
case 5: /* TSB access */
|
||||
DPRINTF_MMU("dmmu TSB write: 0x%016" PRIx64 " -> 0x%016"
|
||||
@@ -2397,7 +2399,7 @@ void sparc_cpu_unassigned_access(CPUState *cs, hwaddr addr,
|
||||
/* flush neverland mappings created during no-fault mode,
|
||||
so the sequential MMU faults report proper fault types */
|
||||
if (env->mmuregs[0] & MMU_NF) {
|
||||
tlb_flush(env, 1);
|
||||
tlb_flush(cs, 1);
|
||||
}
|
||||
}
|
||||
#else
|
||||
|
||||
@@ -112,6 +112,7 @@ void cpu_save(QEMUFile *f, void *opaque)
|
||||
int cpu_load(QEMUFile *f, void *opaque, int version_id)
|
||||
{
|
||||
CPUSPARCState *env = opaque;
|
||||
SPARCCPU *cpu = sparc_env_get_cpu(env);
|
||||
int i;
|
||||
uint32_t tmp;
|
||||
|
||||
@@ -212,6 +213,6 @@ int cpu_load(QEMUFile *f, void *opaque, int version_id)
|
||||
qemu_get_be64s(f, &env->ssr);
|
||||
cpu_get_timer(f, env->hstick);
|
||||
#endif
|
||||
tlb_flush(env, 1);
|
||||
tlb_flush(CPU(cpu), 1);
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user