mirror of
https://github.com/yuzu-emu/unicorn.git
synced 2024-12-23 18:05:29 +00:00
target-arm: Reindent ancient page-table-walk code
A few of the oldest parts of the page-table-walk code have broken indent (either hardcoded tabs or two-spaces). Reindent these sections. For ease of review, this patch does not touch the brace style and so is a whitespace-only change. Backports commit 554b0b09aec4579c8164f363b18a263150e91a2c from qemu
This commit is contained in:
parent
0046642958
commit
11c6c143d7
|
@ -4180,55 +4180,55 @@ static inline int check_ap(CPUARMState *env, ARMMMUIdx mmu_idx,
|
|||
int ap, int domain_prot,
|
||||
int access_type)
|
||||
{
|
||||
int prot_ro;
|
||||
bool is_user = regime_is_user(env, mmu_idx);
|
||||
int prot_ro;
|
||||
bool is_user = regime_is_user(env, mmu_idx);
|
||||
|
||||
if (domain_prot == 3) {
|
||||
return PAGE_READ | PAGE_WRITE;
|
||||
}
|
||||
|
||||
if (access_type == 1)
|
||||
prot_ro = 0;
|
||||
else
|
||||
prot_ro = PAGE_READ;
|
||||
|
||||
switch (ap) {
|
||||
case 0:
|
||||
if (arm_feature(env, ARM_FEATURE_V7)) {
|
||||
return 0;
|
||||
}
|
||||
if (access_type == 1)
|
||||
return 0;
|
||||
switch (regime_sctlr(env, mmu_idx) & (SCTLR_S | SCTLR_R)) {
|
||||
case SCTLR_S:
|
||||
return is_user ? 0 : PAGE_READ;
|
||||
case SCTLR_R:
|
||||
return PAGE_READ;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
case 1:
|
||||
return is_user ? 0 : PAGE_READ | PAGE_WRITE;
|
||||
case 2:
|
||||
if (is_user)
|
||||
return prot_ro;
|
||||
else
|
||||
return PAGE_READ | PAGE_WRITE;
|
||||
case 3:
|
||||
if (domain_prot == 3) {
|
||||
return PAGE_READ | PAGE_WRITE;
|
||||
case 4: /* Reserved. */
|
||||
return 0;
|
||||
case 5:
|
||||
return is_user ? 0 : prot_ro;
|
||||
case 6:
|
||||
return prot_ro;
|
||||
case 7:
|
||||
if (!arm_feature (env, ARM_FEATURE_V6K))
|
||||
return 0;
|
||||
return prot_ro;
|
||||
default:
|
||||
abort();
|
||||
}
|
||||
}
|
||||
|
||||
if (access_type == 1)
|
||||
prot_ro = 0;
|
||||
else
|
||||
prot_ro = PAGE_READ;
|
||||
|
||||
switch (ap) {
|
||||
case 0:
|
||||
if (arm_feature(env, ARM_FEATURE_V7)) {
|
||||
return 0;
|
||||
}
|
||||
if (access_type == 1)
|
||||
return 0;
|
||||
switch (regime_sctlr(env, mmu_idx) & (SCTLR_S | SCTLR_R)) {
|
||||
case SCTLR_S:
|
||||
return is_user ? 0 : PAGE_READ;
|
||||
case SCTLR_R:
|
||||
return PAGE_READ;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
case 1:
|
||||
return is_user ? 0 : PAGE_READ | PAGE_WRITE;
|
||||
case 2:
|
||||
if (is_user)
|
||||
return prot_ro;
|
||||
else
|
||||
return PAGE_READ | PAGE_WRITE;
|
||||
case 3:
|
||||
return PAGE_READ | PAGE_WRITE;
|
||||
case 4: /* Reserved. */
|
||||
return 0;
|
||||
case 5:
|
||||
return is_user ? 0 : prot_ro;
|
||||
case 6:
|
||||
return prot_ro;
|
||||
case 7:
|
||||
if (!arm_feature (env, ARM_FEATURE_V6K))
|
||||
return 0;
|
||||
return prot_ro;
|
||||
default:
|
||||
abort();
|
||||
}
|
||||
}
|
||||
|
||||
static bool get_level1_table_address(CPUARMState *env, ARMMMUIdx mmu_idx,
|
||||
|
@ -4306,13 +4306,13 @@ static int get_phys_addr_v5(CPUARMState *env, uint32_t address, int access_type,
|
|||
*page_size = 1024 * 1024;
|
||||
} else {
|
||||
/* Lookup l2 entry. */
|
||||
if (type == 1) {
|
||||
/* Coarse pagetable. */
|
||||
table = (desc & 0xfffffc00) | ((address >> 10) & 0x3fc);
|
||||
} else {
|
||||
/* Fine pagetable. */
|
||||
table = (desc & 0xfffff000) | ((address >> 8) & 0xffc);
|
||||
}
|
||||
if (type == 1) {
|
||||
/* Coarse pagetable. */
|
||||
table = (desc & 0xfffffc00) | ((address >> 10) & 0x3fc);
|
||||
} else {
|
||||
/* Fine pagetable. */
|
||||
table = (desc & 0xfffff000) | ((address >> 8) & 0xffc);
|
||||
}
|
||||
desc = ldl_phys(cs->as, table);
|
||||
switch (desc & 3) {
|
||||
case 0: /* Page translation fault. */
|
||||
|
@ -4329,17 +4329,17 @@ static int get_phys_addr_v5(CPUARMState *env, uint32_t address, int access_type,
|
|||
*page_size = 0x1000;
|
||||
break;
|
||||
case 3: /* 1k page. */
|
||||
if (type == 1) {
|
||||
if (arm_feature(env, ARM_FEATURE_XSCALE)) {
|
||||
phys_addr = (desc & 0xfffff000) | (address & 0xfff);
|
||||
} else {
|
||||
/* Page translation fault. */
|
||||
code = 7;
|
||||
goto do_fault;
|
||||
}
|
||||
} else {
|
||||
phys_addr = (desc & 0xfffffc00) | (address & 0x3ff);
|
||||
}
|
||||
if (type == 1) {
|
||||
if (arm_feature(env, ARM_FEATURE_XSCALE)) {
|
||||
phys_addr = (desc & 0xfffff000) | (address & 0xfff);
|
||||
} else {
|
||||
/* Page translation fault. */
|
||||
code = 7;
|
||||
goto do_fault;
|
||||
}
|
||||
} else {
|
||||
phys_addr = (desc & 0xfffffc00) | (address & 0x3ff);
|
||||
}
|
||||
ap = (desc >> 4) & 3;
|
||||
*page_size = 0x400;
|
||||
break;
|
||||
|
@ -4734,18 +4734,18 @@ static int get_phys_addr_mpu(CPUARMState *env, uint32_t address,
|
|||
|
||||
*phys_ptr = address;
|
||||
for (n = 7; n >= 0; n--) {
|
||||
base = env->cp15.c6_region[n];
|
||||
if ((base & 1) == 0)
|
||||
continue;
|
||||
mask = 1 << ((base >> 1) & 0x1f);
|
||||
/* Keep this shift separate from the above to avoid an
|
||||
(undefined) << 32. */
|
||||
mask = (mask << 1) - 1;
|
||||
if (((base ^ address) & ~mask) == 0)
|
||||
break;
|
||||
base = env->cp15.c6_region[n];
|
||||
if ((base & 1) == 0)
|
||||
continue;
|
||||
mask = 1 << ((base >> 1) & 0x1f);
|
||||
/* Keep this shift separate from the above to avoid an
|
||||
(undefined) << 32. */
|
||||
mask = (mask << 1) - 1;
|
||||
if (((base ^ address) & ~mask) == 0)
|
||||
break;
|
||||
}
|
||||
if (n < 0)
|
||||
return 2;
|
||||
return 2;
|
||||
|
||||
if (access_type == 2) {
|
||||
mask = env->cp15.pmsav5_insn_ap;
|
||||
|
@ -4755,31 +4755,31 @@ static int get_phys_addr_mpu(CPUARMState *env, uint32_t address,
|
|||
mask = (mask >> (n * 4)) & 0xf;
|
||||
switch (mask) {
|
||||
case 0:
|
||||
return 1;
|
||||
case 1:
|
||||
if (is_user)
|
||||
return 1;
|
||||
*prot = PAGE_READ | PAGE_WRITE;
|
||||
break;
|
||||
case 2:
|
||||
*prot = PAGE_READ;
|
||||
if (!is_user)
|
||||
*prot |= PAGE_WRITE;
|
||||
break;
|
||||
case 3:
|
||||
*prot = PAGE_READ | PAGE_WRITE;
|
||||
break;
|
||||
case 5:
|
||||
if (is_user)
|
||||
return 1;
|
||||
*prot = PAGE_READ;
|
||||
break;
|
||||
case 1:
|
||||
if (is_user)
|
||||
return 1;
|
||||
*prot = PAGE_READ | PAGE_WRITE;
|
||||
break;
|
||||
case 2:
|
||||
*prot = PAGE_READ;
|
||||
if (!is_user)
|
||||
*prot |= PAGE_WRITE;
|
||||
break;
|
||||
case 3:
|
||||
*prot = PAGE_READ | PAGE_WRITE;
|
||||
break;
|
||||
case 5:
|
||||
if (is_user)
|
||||
return 1;
|
||||
*prot = PAGE_READ;
|
||||
break;
|
||||
case 6:
|
||||
*prot = PAGE_READ;
|
||||
break;
|
||||
*prot = PAGE_READ;
|
||||
break;
|
||||
default:
|
||||
/* Bad permission. */
|
||||
return 1;
|
||||
/* Bad permission. */
|
||||
return 1;
|
||||
}
|
||||
*prot |= PAGE_EXEC;
|
||||
return 0;
|
||||
|
|
Loading…
Reference in a new issue