]> Git Repo - qemu.git/commit - target-xtensa/translate.c
target-xtensa: fix tb invalidation for IBREAK and LOOP
authorMax Filippov <[email protected]>
Mon, 9 Apr 2012 22:48:18 +0000 (02:48 +0400)
committerBlue Swirl <[email protected]>
Sat, 14 Apr 2012 15:25:38 +0000 (15:25 +0000)
commit3d0be8a5c135dadcfbd68ed354007a8cece98849
treef8d2524bd5d5fa16623ce5aed68783542904c810
parent1e7855a558085d6acd0aba4e3278b594d05df1ec
target-xtensa: fix tb invalidation for IBREAK and LOOP

Instruction breakpoint/zero overhead loop handling code is built into
TBs pointed to by IBREAKA/LEND SRs. When these or related SRs get
changed TBs at virtual addresses corresponding to their old and their
new values must be invalidated.

Virtual address range is passed to the tb_invalidate_phys_page_range,
which is incorrect in system emulation mode.

To fix it use guest TLB/MMU to translate virtual address to physical
address.

However the guest may not have virtual-to-physical mapping at the moment
of IBREAKA/LEND change, thus this fix is not 100% accurate.

Signed-off-by: Max Filippov <[email protected]>
Signed-off-by: Blue Swirl <[email protected]>
target-xtensa/op_helper.c
target-xtensa/translate.c
This page took 0.02661 seconds and 4 git commands to generate.