tlb: Update callback to use CPUTLBEntryFull

This commit is contained in:
Matt Borgerson 2023-01-23 00:30:40 -07:00
parent 4dd5e12807
commit 99e719a674
2 changed files with 7 additions and 7 deletions

View file

@ -1652,7 +1652,7 @@ void *probe_access(CPUArchState *env, target_ulong addr, int size,
? BP_MEM_WRITE : BP_MEM_READ);
#ifdef XBOX
mem_check_access_callback_vaddr(env_cpu(env), addr, size, wp_access,
iotlbentry);
full);
#endif
cpu_check_watchpoint(env_cpu(env), addr, size,
full->attrs, wp_access, retaddr);
@ -1969,7 +1969,7 @@ load_helper(CPUArchState *env, target_ulong addr, MemOpIdx oi,
if (unlikely(tlb_addr & TLB_WATCHPOINT)) {
#ifdef XBOX
mem_check_access_callback_vaddr(env_cpu(env), addr, size,
BP_MEM_READ, iotlbentry);
BP_MEM_READ, full);
#endif
/* On watchpoint hit, this will longjmp out. */
@ -2300,7 +2300,7 @@ store_helper_unaligned(CPUArchState *env, target_ulong addr, uint64_t val,
if (unlikely(tlb_addr & TLB_WATCHPOINT)) {
#ifdef XBOX
mem_check_access_callback_vaddr(env_cpu(env), addr, size - size2,
BP_MEM_WRITE, &env_tlb(env)->d[mmu_idx].iotlb[index]);
BP_MEM_WRITE, &env_tlb(env)->d[mmu_idx].fulltlb[index]);
#endif
cpu_check_watchpoint(env_cpu(env), addr, size - size2,
env_tlb(env)->d[mmu_idx].fulltlb[index].attrs,
@ -2309,7 +2309,7 @@ store_helper_unaligned(CPUArchState *env, target_ulong addr, uint64_t val,
if (size2 && unlikely(tlb_addr2 & TLB_WATCHPOINT)) {
#ifdef XBOX
mem_check_access_callback_vaddr(env_cpu(env), page2, size2,
BP_MEM_WRITE, &env_tlb(env)->d[mmu_idx].iotlb[index2]);
BP_MEM_WRITE, &env_tlb(env)->d[mmu_idx].fulltlb[index2]);
#endif
cpu_check_watchpoint(env_cpu(env), page2, size2,
env_tlb(env)->d[mmu_idx].fulltlb[index2].attrs,
@ -2390,7 +2390,7 @@ store_helper(CPUArchState *env, target_ulong addr, uint64_t val,
if (unlikely(tlb_addr & TLB_WATCHPOINT)) {
#ifdef XBOX
mem_check_access_callback_vaddr(env_cpu(env), addr, size,
BP_MEM_WRITE, iotlbentry);
BP_MEM_WRITE, full);
#endif
/* On watchpoint hit, this will longjmp out. */

View file

@ -915,9 +915,9 @@ void mem_access_callback_remove_by_ref(CPUState *cpu, MemAccessCallback *cb)
void mem_check_access_callback_vaddr(CPUState *cpu,
vaddr addr, vaddr len, int flags,
void *iotlbentry)
void *tlbentryfull)
{
ram_addr_t ram_addr = (((CPUIOTLBEntry *)iotlbentry)->addr
ram_addr_t ram_addr = (((CPUTLBEntryFull *)tlbentryfull)->xlat_section
& TARGET_PAGE_MASK) + addr;
mem_check_access_callback_ramaddr(cpu, ram_addr, len, flags);
}