]> git.proxmox.com Git - qemu.git/commitdiff
target-xtensa: update EXCVADDR in case of page table lookup
authorMax Filippov <jcmvbkbc@gmail.com>
Sun, 27 May 2012 14:34:50 +0000 (18:34 +0400)
committerBlue Swirl <blauwirbel@gmail.com>
Sat, 9 Jun 2012 10:45:03 +0000 (10:45 +0000)
According to ISA, 4.4.2.6, EXCVADDR may be changed by any TLB miss, even
if the miss is handled entirely by processor hardware.

Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
target-xtensa/helper.c

index 5e7e72e11357fb27541cabb2a3beaf112494564b..04c4f6064ea2080201f80d422539748bfff2c4a4 100644 (file)
@@ -511,6 +511,7 @@ static int autorefill_mmu(CPUXtensaState *env, uint32_t vaddr, bool dtlb,
         *wi = (++env->autorefill_idx) & 0x3;
         split_tlb_entry_spec_way(env, vaddr, dtlb, &vpn, *wi, ei);
         xtensa_tlb_set_entry(env, dtlb, *wi, *ei, vpn, pte);
+        env->sregs[EXCVADDR] = vaddr;
         qemu_log("%s: autorefill(%08x): %08x -> %08x\n",
                 __func__, vaddr, vpn, pte);
     }