[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 91/96] target/ppc/mmu_common.c: Remove mmu_ctx_t
From: |
Nicholas Piggin |
Subject: |
[PULL 91/96] target/ppc/mmu_common.c: Remove mmu_ctx_t |
Date: |
Fri, 26 Jul 2024 09:54:04 +1000 |
From: BALATON Zoltan <balaton@eik.bme.hu>
Completely get rid of mmu_ctx_t after converting the remaining
functions to pass raddr and prot without the context struct.
Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Reviewed-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
---
target/ppc/mmu_common.c | 25 +++++++------------------
1 file changed, 7 insertions(+), 18 deletions(-)
diff --git a/target/ppc/mmu_common.c b/target/ppc/mmu_common.c
index 4770b43630..60f8736210 100644
--- a/target/ppc/mmu_common.c
+++ b/target/ppc/mmu_common.c
@@ -37,12 +37,6 @@
/* #define DUMP_PAGE_TABLES */
-/* Context used internally during MMU translations */
-typedef struct {
- hwaddr raddr; /* Real address */
- int prot; /* Protection bits */
-} mmu_ctx_t;
-
void ppc_store_sdr1(CPUPPCState *env, target_ulong value)
{
PowerPCCPU *cpu = env_archcpu(env);
@@ -264,8 +258,8 @@ static int get_bat_6xx_tlb(CPUPPCState *env, hwaddr *raddr,
int *prot,
return ret;
}
-static int mmu6xx_get_physical_address(CPUPPCState *env, mmu_ctx_t *ctx,
- target_ulong eaddr,
+static int mmu6xx_get_physical_address(CPUPPCState *env, hwaddr *raddr,
+ int *prot, target_ulong eaddr,
hwaddr *hashp, bool *keyp,
MMUAccessType access_type, int type)
{
@@ -277,8 +271,7 @@ static int mmu6xx_get_physical_address(CPUPPCState *env,
mmu_ctx_t *ctx,
/* First try to find a BAT entry if there are any */
if (env->nb_BATs &&
- get_bat_6xx_tlb(env, &ctx->raddr, &ctx->prot, eaddr,
- access_type, pr) == 0) {
+ get_bat_6xx_tlb(env, raddr, prot, eaddr, access_type, pr) == 0) {
return 0;
}
@@ -316,7 +309,7 @@ static int mmu6xx_get_physical_address(CPUPPCState *env,
mmu_ctx_t *ctx,
*hashp = hash;
/* Software TLB search */
- return ppc6xx_tlb_check(env, &ctx->raddr, &ctx->prot, eaddr,
+ return ppc6xx_tlb_check(env, raddr, prot, eaddr,
access_type, ptem, key, nx);
}
@@ -333,7 +326,7 @@ static int mmu6xx_get_physical_address(CPUPPCState *env,
mmu_ctx_t *ctx,
* Should make the instruction do no-op. As it already do
* no-op, it's quite easy :-)
*/
- ctx->raddr = eaddr;
+ *raddr = eaddr;
return 0;
case ACCESS_CODE: /* No code fetch is allowed in direct-store areas */
case ACCESS_FLOAT: /* Floating point load/store */
@@ -343,7 +336,7 @@ static int mmu6xx_get_physical_address(CPUPPCState *env,
mmu_ctx_t *ctx,
}
if ((access_type == MMU_DATA_STORE || !key) &&
(access_type == MMU_DATA_LOAD || key)) {
- ctx->raddr = eaddr;
+ *raddr = eaddr;
return 2;
}
return -2;
@@ -681,7 +674,6 @@ static bool ppc_6xx_xlate(PowerPCCPU *cpu, vaddr eaddr,
{
CPUState *cs = CPU(cpu);
CPUPPCState *env = &cpu->env;
- mmu_ctx_t ctx;
hwaddr hash = 0; /* init to 0 to avoid used uninit warning */
bool key;
int type, ret;
@@ -700,12 +692,9 @@ static bool ppc_6xx_xlate(PowerPCCPU *cpu, vaddr eaddr,
type = ACCESS_INT;
}
- ctx.prot = 0;
- ret = mmu6xx_get_physical_address(env, &ctx, eaddr, &hash, &key,
+ ret = mmu6xx_get_physical_address(env, raddrp, protp, eaddr, &hash, &key,
access_type, type);
if (ret == 0) {
- *raddrp = ctx.raddr;
- *protp = ctx.prot;
*psizep = TARGET_PAGE_BITS;
return true;
} else if (!guest_visible) {
--
2.45.2
- [PULL 78/96] target/ppc/mmu_common.c: Remove single use local variable, (continued)
- [PULL 78/96] target/ppc/mmu_common.c: Remove single use local variable, Nicholas Piggin, 2024/07/25
- [PULL 80/96] target/ppc/mmu_common.c: Inline and remove ppc6xx_tlb_pte_check(), Nicholas Piggin, 2024/07/25
- [PULL 81/96] target/ppc/mmu_common.c: Remove ptem field from mmu_ctx_t, Nicholas Piggin, 2024/07/25
- [PULL 82/96] target/ppc: Add function to get protection key for hash32 MMU, Nicholas Piggin, 2024/07/25
- [PULL 83/96] target/ppc/mmu-hash32.c: Inline and remove ppc_hash32_pte_prot(), Nicholas Piggin, 2024/07/25
- [PULL 84/96] target/ppc/mmu_common.c: Init variable in function that relies on it, Nicholas Piggin, 2024/07/25
- [PULL 85/96] target/ppc/mmu_common.c: Remove key field from mmu_ctx_t, Nicholas Piggin, 2024/07/25
- [PULL 86/96] target/ppc/mmu_common.c: Stop using ctx in ppc6xx_tlb_check(), Nicholas Piggin, 2024/07/25
- [PULL 87/96] target/ppc/mmu_common.c: Rename function parameter, Nicholas Piggin, 2024/07/25
- [PULL 88/96] target/ppc/mmu_common.c: Use defines instead of numeric constants, Nicholas Piggin, 2024/07/25
- [PULL 91/96] target/ppc/mmu_common.c: Remove mmu_ctx_t,
Nicholas Piggin <=
- [PULL 89/96] target/ppc: Remove bat_size_prot(), Nicholas Piggin, 2024/07/25
- [PULL 90/96] target/ppc/mmu_common.c: Stop using ctx in get_bat_6xx_tlb(), Nicholas Piggin, 2024/07/25
- [PULL 94/96] target/ppc: Unexport some functions from mmu-book3s-v3.h, Nicholas Piggin, 2024/07/25
- [PULL 93/96] target/ppc/mmu-hash32.c: Move get_pteg_offset32() to the header, Nicholas Piggin, 2024/07/25
- [PULL 96/96] target/ppc: Remove includes from mmu-book3s-v3.h, Nicholas Piggin, 2024/07/25
- [PULL 92/96] target/ppc/mmu-hash32.c: Inline and remove ppc_hash32_pte_raddr(), Nicholas Piggin, 2024/07/25
- [PULL 95/96] target/ppc/mmu-radix64: Remove externally unused parts from header, Nicholas Piggin, 2024/07/25
- Re: [PULL 00/96] ppc-for-9.1-2 queue, Richard Henderson, 2024/07/27
- Re: [PULL 00/96] ppc-for-9.1-2 queue, Philippe Mathieu-Daudé, 2024/07/29