accel/tcg/cputlb.c: Widen addr in MMULookupPageData

Functions accessing MMULookupPageData are also updated.

Signed-off-by: Anton Johansson <anjo@rev.ng>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20230621135633.1649-6-anjo@rev.ng>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
Anton Johansson 2023-06-21 15:56:26 +02:00 committed by Richard Henderson
parent 9e39de980f
commit fb2c53cb71

View File

@ -1729,7 +1729,7 @@ bool tlb_plugin_lookup(CPUState *cpu, vaddr addr, int mmu_idx,
typedef struct MMULookupPageData { typedef struct MMULookupPageData {
CPUTLBEntryFull *full; CPUTLBEntryFull *full;
void *haddr; void *haddr;
target_ulong addr; vaddr addr;
int flags; int flags;
int size; int size;
} MMULookupPageData; } MMULookupPageData;
@ -1756,7 +1756,7 @@ typedef struct MMULookupLocals {
static bool mmu_lookup1(CPUArchState *env, MMULookupPageData *data, static bool mmu_lookup1(CPUArchState *env, MMULookupPageData *data,
int mmu_idx, MMUAccessType access_type, uintptr_t ra) int mmu_idx, MMUAccessType access_type, uintptr_t ra)
{ {
target_ulong addr = data->addr; vaddr addr = data->addr;
uintptr_t index = tlb_index(env, mmu_idx, addr); uintptr_t index = tlb_index(env, mmu_idx, addr);
CPUTLBEntry *entry = tlb_entry(env, mmu_idx, addr); CPUTLBEntry *entry = tlb_entry(env, mmu_idx, addr);
uint64_t tlb_addr = tlb_read_idx(entry, access_type); uint64_t tlb_addr = tlb_read_idx(entry, access_type);
@ -1796,7 +1796,7 @@ static void mmu_watch_or_dirty(CPUArchState *env, MMULookupPageData *data,
MMUAccessType access_type, uintptr_t ra) MMUAccessType access_type, uintptr_t ra)
{ {
CPUTLBEntryFull *full = data->full; CPUTLBEntryFull *full = data->full;
target_ulong addr = data->addr; vaddr addr = data->addr;
int flags = data->flags; int flags = data->flags;
int size = data->size; int size = data->size;
@ -1827,7 +1827,7 @@ static void mmu_watch_or_dirty(CPUArchState *env, MMULookupPageData *data,
* Resolve the translation for the page(s) beginning at @addr, for MemOp.size * Resolve the translation for the page(s) beginning at @addr, for MemOp.size
* bytes. Return true if the lookup crosses a page boundary. * bytes. Return true if the lookup crosses a page boundary.
*/ */
static bool mmu_lookup(CPUArchState *env, target_ulong addr, MemOpIdx oi, static bool mmu_lookup(CPUArchState *env, vaddr addr, MemOpIdx oi,
uintptr_t ra, MMUAccessType type, MMULookupLocals *l) uintptr_t ra, MMUAccessType type, MMULookupLocals *l)
{ {
unsigned a_bits; unsigned a_bits;
@ -2024,7 +2024,7 @@ static uint64_t do_ld_mmio_beN(CPUArchState *env, MMULookupPageData *p,
MMUAccessType type, uintptr_t ra) MMUAccessType type, uintptr_t ra)
{ {
CPUTLBEntryFull *full = p->full; CPUTLBEntryFull *full = p->full;
target_ulong addr = p->addr; vaddr addr = p->addr;
int i, size = p->size; int i, size = p->size;
QEMU_IOTHREAD_LOCK_GUARD(); QEMU_IOTHREAD_LOCK_GUARD();
@ -2333,7 +2333,7 @@ static uint64_t do_ld_8(CPUArchState *env, MMULookupPageData *p, int mmu_idx,
return ret; return ret;
} }
static uint8_t do_ld1_mmu(CPUArchState *env, target_ulong addr, MemOpIdx oi, static uint8_t do_ld1_mmu(CPUArchState *env, vaddr addr, MemOpIdx oi,
uintptr_t ra, MMUAccessType access_type) uintptr_t ra, MMUAccessType access_type)
{ {
MMULookupLocals l; MMULookupLocals l;
@ -2352,7 +2352,7 @@ tcg_target_ulong helper_ldub_mmu(CPUArchState *env, uint64_t addr,
return do_ld1_mmu(env, addr, oi, retaddr, MMU_DATA_LOAD); return do_ld1_mmu(env, addr, oi, retaddr, MMU_DATA_LOAD);
} }
static uint16_t do_ld2_mmu(CPUArchState *env, target_ulong addr, MemOpIdx oi, static uint16_t do_ld2_mmu(CPUArchState *env, vaddr addr, MemOpIdx oi,
uintptr_t ra, MMUAccessType access_type) uintptr_t ra, MMUAccessType access_type)
{ {
MMULookupLocals l; MMULookupLocals l;
@ -2383,7 +2383,7 @@ tcg_target_ulong helper_lduw_mmu(CPUArchState *env, uint64_t addr,
return do_ld2_mmu(env, addr, oi, retaddr, MMU_DATA_LOAD); return do_ld2_mmu(env, addr, oi, retaddr, MMU_DATA_LOAD);
} }
static uint32_t do_ld4_mmu(CPUArchState *env, target_ulong addr, MemOpIdx oi, static uint32_t do_ld4_mmu(CPUArchState *env, vaddr addr, MemOpIdx oi,
uintptr_t ra, MMUAccessType access_type) uintptr_t ra, MMUAccessType access_type)
{ {
MMULookupLocals l; MMULookupLocals l;
@ -2410,7 +2410,7 @@ tcg_target_ulong helper_ldul_mmu(CPUArchState *env, uint64_t addr,
return do_ld4_mmu(env, addr, oi, retaddr, MMU_DATA_LOAD); return do_ld4_mmu(env, addr, oi, retaddr, MMU_DATA_LOAD);
} }
static uint64_t do_ld8_mmu(CPUArchState *env, target_ulong addr, MemOpIdx oi, static uint64_t do_ld8_mmu(CPUArchState *env, vaddr addr, MemOpIdx oi,
uintptr_t ra, MMUAccessType access_type) uintptr_t ra, MMUAccessType access_type)
{ {
MMULookupLocals l; MMULookupLocals l;
@ -2460,7 +2460,7 @@ tcg_target_ulong helper_ldsl_mmu(CPUArchState *env, uint64_t addr,
return (int32_t)helper_ldul_mmu(env, addr, oi, retaddr); return (int32_t)helper_ldul_mmu(env, addr, oi, retaddr);
} }
static Int128 do_ld16_mmu(CPUArchState *env, target_ulong addr, static Int128 do_ld16_mmu(CPUArchState *env, vaddr addr,
MemOpIdx oi, uintptr_t ra) MemOpIdx oi, uintptr_t ra)
{ {
MMULookupLocals l; MMULookupLocals l;
@ -2617,7 +2617,7 @@ static uint64_t do_st_mmio_leN(CPUArchState *env, MMULookupPageData *p,
uint64_t val_le, int mmu_idx, uintptr_t ra) uint64_t val_le, int mmu_idx, uintptr_t ra)
{ {
CPUTLBEntryFull *full = p->full; CPUTLBEntryFull *full = p->full;
target_ulong addr = p->addr; vaddr addr = p->addr;
int i, size = p->size; int i, size = p->size;
QEMU_IOTHREAD_LOCK_GUARD(); QEMU_IOTHREAD_LOCK_GUARD();
@ -2808,7 +2808,7 @@ void helper_stb_mmu(CPUArchState *env, uint64_t addr, uint32_t val,
do_st_1(env, &l.page[0], val, l.mmu_idx, ra); do_st_1(env, &l.page[0], val, l.mmu_idx, ra);
} }
static void do_st2_mmu(CPUArchState *env, target_ulong addr, uint16_t val, static void do_st2_mmu(CPUArchState *env, vaddr addr, uint16_t val,
MemOpIdx oi, uintptr_t ra) MemOpIdx oi, uintptr_t ra)
{ {
MMULookupLocals l; MMULookupLocals l;
@ -2837,7 +2837,7 @@ void helper_stw_mmu(CPUArchState *env, uint64_t addr, uint32_t val,
do_st2_mmu(env, addr, val, oi, retaddr); do_st2_mmu(env, addr, val, oi, retaddr);
} }
static void do_st4_mmu(CPUArchState *env, target_ulong addr, uint32_t val, static void do_st4_mmu(CPUArchState *env, vaddr addr, uint32_t val,
MemOpIdx oi, uintptr_t ra) MemOpIdx oi, uintptr_t ra)
{ {
MMULookupLocals l; MMULookupLocals l;
@ -2864,7 +2864,7 @@ void helper_stl_mmu(CPUArchState *env, uint64_t addr, uint32_t val,
do_st4_mmu(env, addr, val, oi, retaddr); do_st4_mmu(env, addr, val, oi, retaddr);
} }
static void do_st8_mmu(CPUArchState *env, target_ulong addr, uint64_t val, static void do_st8_mmu(CPUArchState *env, vaddr addr, uint64_t val,
MemOpIdx oi, uintptr_t ra) MemOpIdx oi, uintptr_t ra)
{ {
MMULookupLocals l; MMULookupLocals l;
@ -2891,7 +2891,7 @@ void helper_stq_mmu(CPUArchState *env, uint64_t addr, uint64_t val,
do_st8_mmu(env, addr, val, oi, retaddr); do_st8_mmu(env, addr, val, oi, retaddr);
} }
static void do_st16_mmu(CPUArchState *env, target_ulong addr, Int128 val, static void do_st16_mmu(CPUArchState *env, vaddr addr, Int128 val,
MemOpIdx oi, uintptr_t ra) MemOpIdx oi, uintptr_t ra)
{ {
MMULookupLocals l; MMULookupLocals l;