Commit 330c4d61a65801b994e7498163cec3ca74c4ece4

Authored by balrog
1 parent ae5d8053

Fix XScale MMU's extended small pages.


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3093 c046a42c-6fe2-441c-8c8c-71466251a162
Showing 1 changed file with 5 additions and 5 deletions
target-arm/helper.c
@@ -516,16 +516,16 @@ static int get_phys_addr(CPUState *env, uint32_t address, int access_type, @@ -516,16 +516,16 @@ static int get_phys_addr(CPUState *env, uint32_t address, int access_type,
516 ap = (desc >> (4 + ((address >> 13) & 6))) & 3; 516 ap = (desc >> (4 + ((address >> 13) & 6))) & 3;
517 break; 517 break;
518 case 3: /* 1k page. */ 518 case 3: /* 1k page. */
519 - if (arm_feature(env, ARM_FEATURE_XSCALE))  
520 - phys_addr = (desc & 0xfffff000) | (address & 0xfff);  
521 - else {  
522 - if (type == 1) { 519 + if (type == 1) {
  520 + if (arm_feature(env, ARM_FEATURE_XSCALE))
  521 + phys_addr = (desc & 0xfffff000) | (address & 0xfff);
  522 + else {
523 /* Page translation fault. */ 523 /* Page translation fault. */
524 code = 7; 524 code = 7;
525 goto do_fault; 525 goto do_fault;
526 } 526 }
  527 + } else
527 phys_addr = (desc & 0xfffffc00) | (address & 0x3ff); 528 phys_addr = (desc & 0xfffffc00) | (address & 0x3ff);
528 - }  
529 ap = (desc >> 4) & 3; 529 ap = (desc >> 4) & 3;
530 break; 530 break;
531 default: 531 default: