target/ppc/mmu-hash32.c: Inline and remove ppc_hash32_pte_prot()

This is used only once and can be inlined.

Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Reviewed-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
This commit is contained in:
BALATON Zoltan 2024-05-27 01:12:55 +02:00 committed by Nicholas Piggin
parent 719a1da19e
commit 620ba617df
1 changed files with 4 additions and 15 deletions

View File

@ -37,17 +37,6 @@
# define LOG_BATS(...) do { } while (0) # define LOG_BATS(...) do { } while (0)
#endif #endif
static int ppc_hash32_pte_prot(int mmu_idx,
target_ulong sr, ppc_hash_pte32_t pte)
{
unsigned pp, key;
key = ppc_hash32_key(mmuidx_pr(mmu_idx), sr);
pp = pte.pte1 & HPTE32_R_PP;
return ppc_hash32_prot(key, pp, !!(sr & SR32_NX));
}
static target_ulong hash32_bat_size(int mmu_idx, static target_ulong hash32_bat_size(int mmu_idx,
target_ulong batu, target_ulong batl) target_ulong batu, target_ulong batl)
{ {
@ -341,10 +330,10 @@ bool ppc_hash32_xlate(PowerPCCPU *cpu, vaddr eaddr, MMUAccessType access_type,
CPUState *cs = CPU(cpu); CPUState *cs = CPU(cpu);
CPUPPCState *env = &cpu->env; CPUPPCState *env = &cpu->env;
target_ulong sr; target_ulong sr;
hwaddr pte_offset; hwaddr pte_offset, raddr;
ppc_hash_pte32_t pte; ppc_hash_pte32_t pte;
bool key;
int prot; int prot;
hwaddr raddr;
/* There are no hash32 large pages. */ /* There are no hash32 large pages. */
*psizep = TARGET_PAGE_BITS; *psizep = TARGET_PAGE_BITS;
@ -426,8 +415,8 @@ bool ppc_hash32_xlate(PowerPCCPU *cpu, vaddr eaddr, MMUAccessType access_type,
"found PTE at offset %08" HWADDR_PRIx "\n", pte_offset); "found PTE at offset %08" HWADDR_PRIx "\n", pte_offset);
/* 7. Check access permissions */ /* 7. Check access permissions */
key = ppc_hash32_key(mmuidx_pr(mmu_idx), sr);
prot = ppc_hash32_pte_prot(mmu_idx, sr, pte); prot = ppc_hash32_prot(key, pte.pte1 & HPTE32_R_PP, sr & SR32_NX);
if (!check_prot_access_type(prot, access_type)) { if (!check_prot_access_type(prot, access_type)) {
/* Access right violation */ /* Access right violation */