projects
/
sdk
/
emulator
/
qemu.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
0f3f1ec
)
target-sh4: MMU: fix ITLB priviledge check
author
Aurelien Jarno
<aurelien@aurel32.net>
Mon, 1 Feb 2010 19:07:06 +0000
(20:07 +0100)
committer
Aurelien Jarno
<aurelien@aurel32.net>
Tue, 9 Feb 2010 20:08:05 +0000
(21:08 +0100)
There is an ITLB access violation if SR_MD=0 (user mode) while
the high bit of the protection key is 0 (priviledge mode).
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
target-sh4/helper.c
patch
|
blob
|
history
diff --git
a/target-sh4/helper.c
b/target-sh4/helper.c
index f9bf5e20844ef916fd299271c2d3501af4301ff3..589efe40ade749942ad64db912d2151bfa27b83a 100644
(file)
--- a/
target-sh4/helper.c
+++ b/
target-sh4/helper.c
@@
-377,7
+377,7
@@
static int get_mmu_address(CPUState * env, target_ulong * physical,
n = find_itlb_entry(env, address, use_asid, 1);
if (n >= 0) {
matching = &env->itlb[n];
- if (
(env->sr & SR_MD)
& !(matching->pr & 2))
+ if (
!(env->sr & SR_MD) &
& !(matching->pr & 2))
n = MMU_ITLB_VIOLATION;
else
*prot = PAGE_READ;