Fix XScale MMU's extended small pages.

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3093 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
balrog 2007-07-29 22:21:45 +00:00
parent ae5d8053a1
commit 330c4d61a6

View File

@ -516,16 +516,16 @@ static int get_phys_addr(CPUState *env, uint32_t address, int access_type,
ap = (desc >> (4 + ((address >> 13) & 6))) & 3; ap = (desc >> (4 + ((address >> 13) & 6))) & 3;
break; break;
case 3: /* 1k page. */ case 3: /* 1k page. */
if (type == 1) {
if (arm_feature(env, ARM_FEATURE_XSCALE)) if (arm_feature(env, ARM_FEATURE_XSCALE))
phys_addr = (desc & 0xfffff000) | (address & 0xfff); phys_addr = (desc & 0xfffff000) | (address & 0xfff);
else { else {
if (type == 1) {
/* Page translation fault. */ /* Page translation fault. */
code = 7; code = 7;
goto do_fault; goto do_fault;
} }
} else
phys_addr = (desc & 0xfffffc00) | (address & 0x3ff); phys_addr = (desc & 0xfffffc00) | (address & 0x3ff);
}
ap = (desc >> 4) & 3; ap = (desc >> 4) & 3;
break; break;
default: default: