[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 08/24] target/ppc/mmu_common.c: Introduce mmu6xx_get_physical_add
From: |
BALATON Zoltan |
Subject: |
[PATCH 08/24] target/ppc/mmu_common.c: Introduce mmu6xx_get_physical_address() |
Date: |
Wed, 24 Apr 2024 00:31:19 +0200 (CEST) |
Repurpose get_segment_6xx_tlb() to do the whole address translation
for POWERPC_MMU_SOFT_6xx MMU model by moving the BAT check there and
renaming it to match other similar functions. These are only called
once together so no need to keep these separate functions and
combining them simplifies the caller allowing further restructuring.
Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
---
target/ppc/mmu_common.c | 32 ++++++++++++++++----------------
1 file changed, 16 insertions(+), 16 deletions(-)
diff --git a/target/ppc/mmu_common.c b/target/ppc/mmu_common.c
index c4fafebbe3..47346adb88 100644
--- a/target/ppc/mmu_common.c
+++ b/target/ppc/mmu_common.c
@@ -359,19 +359,25 @@ static int get_bat_6xx_tlb(CPUPPCState *env, mmu_ctx_t
*ctx,
return ret;
}
-/* Perform segment based translation */
-static int get_segment_6xx_tlb(CPUPPCState *env, mmu_ctx_t *ctx,
- target_ulong eaddr, MMUAccessType access_type,
- int type)
+static int mmu6xx_get_physical_address(CPUPPCState *env, mmu_ctx_t *ctx,
+ target_ulong eaddr,
+ MMUAccessType access_type, int type)
{
PowerPCCPU *cpu = env_archcpu(env);
hwaddr hash;
- target_ulong vsid;
- int ds, target_page_bits;
+ target_ulong vsid, sr, pgidx;
bool pr;
- int ret;
- target_ulong sr, pgidx;
+ int ds, target_page_bits, ret = -1;
+ /* First try to find a BAT entry if there are any */
+ if (env->nb_BATs != 0) {
+ ret = get_bat_6xx_tlb(env, ctx, eaddr, access_type);
+ }
+ if (ret >= 0) {
+ return ret;
+ }
+
+ /* Perform segment based translation when no BATs matched */
pr = FIELD_EX64(env->msr, MSR, PR);
ctx->eaddr = eaddr;
@@ -1198,14 +1204,8 @@ int get_physical_address_wtlb(CPUPPCState *env,
mmu_ctx_t *ctx,
if (real_mode) {
ret = check_physical(env, ctx, eaddr, access_type);
} else {
- /* Try to find a BAT */
- if (env->nb_BATs != 0) {
- ret = get_bat_6xx_tlb(env, ctx, eaddr, access_type);
- }
- if (ret < 0) {
- /* We didn't match any BAT entry or don't have BATs */
- ret = get_segment_6xx_tlb(env, ctx, eaddr, access_type, type);
- }
+ ret = mmu6xx_get_physical_address(env, ctx, eaddr, access_type,
+ type);
}
break;
--
2.30.9
- [PATCH 05/24] target/ppc/mmu_common.c: Move calculation of a value closer to its usage, (continued)
- [PATCH 05/24] target/ppc/mmu_common.c: Move calculation of a value closer to its usage, BALATON Zoltan, 2024/04/23
- [PATCH 11/24] target/ppc/mmu_common.c: Split off real mode cases in get_physical_address_wtlb(), BALATON Zoltan, 2024/04/23
- [PATCH 01/24] target/ppc: Fix gen_sc to use correct nip, BALATON Zoltan, 2024/04/23
- [PATCH 09/24] target/ppc/mmu_common.c: Rename get_bat_6xx_tlb(), BALATON Zoltan, 2024/04/23
- [PATCH 16/24] target/ppc/mmu_common.c: Deindent ppc_jumbo_xlate(), BALATON Zoltan, 2024/04/23
- [PATCH 18/24] target/ppc/mmu_common.c: Make get_physical_address_wtlb() static, BALATON Zoltan, 2024/04/23
- [PATCH 10/24] target/ppc/mmu_common.c: Split out BookE cases before checking real mode, BALATON Zoltan, 2024/04/23
- [PATCH 13/24] target/ppc/mmu_common.c: Simplify mmubooke_get_physical_address(), BALATON Zoltan, 2024/04/23
- [PATCH 07/24] target/ppc/mmu_common.c: Drop cases for unimplemented MPC8xx MMU, BALATON Zoltan, 2024/04/23
- [PATCH 19/24] target/ppc: Move mmu_ctx_t definition to mmu_common.c, BALATON Zoltan, 2024/04/23
- [PATCH 08/24] target/ppc/mmu_common.c: Introduce mmu6xx_get_physical_address(),
BALATON Zoltan <=
- [PATCH 02/24] target/ppc: Move patching nip from exception handler to helper_scv, BALATON Zoltan, 2024/04/23
- [PATCH 04/24] target/ppc: Remove unused helper, BALATON Zoltan, 2024/04/23
- [PATCH 15/24] target/ppc/mmu_common.c: Fix misindented qemu_log_mask() calls, BALATON Zoltan, 2024/04/23
- [PATCH 14/24] target/ppc/mmu_common.c: Simplify mmubooke206_get_physical_address(), BALATON Zoltan, 2024/04/23
- [PATCH 03/24] target/ppc: Simplify syscall exception handlers, BALATON Zoltan, 2024/04/23
- [PATCH 06/24] target/ppc/mmu_common.c: Simplify checking for real mode, BALATON Zoltan, 2024/04/23
- [PATCH 12/24] target/ppc/mmu_common.c: Inline and remove check_physical(), BALATON Zoltan, 2024/04/23
- [PATCH 20/24] target/ppc: Remove ppc_hash32_pp_prot() and reuse common function, BALATON Zoltan, 2024/04/23
- [PATCH 21/24] target/ppc/mmu_common.c: Split off BookE handling from ppc_jumbo_xlate(), BALATON Zoltan, 2024/04/23
- [PATCH 23/24] target/ppc/mmu_common.c: Simplify ppc_booke_xlate(), BALATON Zoltan, 2024/04/23