In preparation of removing the cpu_ld*_mmuidx_ra() and
cpu_st*_mmuidx_ra() calls, inline them.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
target/ppc/mem_helper.c | 36 ++++++++++++++++++++++++++----------
1 file changed, 26 insertions(+), 10 deletions(-)
diff --git a/target/ppc/mem_helper.c b/target/ppc/mem_helper.c
index 6ab71a6fcb4..a43726d4223 100644
--- a/target/ppc/mem_helper.c
+++ b/target/ppc/mem_helper.c
@@ -97,8 +97,10 @@ void helper_lmw(CPUPPCState *env, target_ulong addr, uint32_t reg)
}
} else {
/* Slow path -- at least some of the operation requires i/o. */
+ MemOpIdx oi = make_memop_idx(MO_TE | MO_UL | MO_UNALN, mmu_idx);
+
for (; reg < 32; reg++) {
- env->gpr[reg] = cpu_ldl_mmuidx_ra(env, addr, mmu_idx, raddr);
+ env->gpr[reg] = cpu_ldl_mmu(env, addr, oi, raddr);
addr = addr_add(env, addr, 4);
}
}
@@ -120,7 +122,9 @@ void helper_stmw(CPUPPCState *env, target_ulong addr, uint32_t reg)
} else {
/* Slow path -- at least some of the operation requires i/o. */
for (; reg < 32; reg++) {
- cpu_stl_mmuidx_ra(env, addr, env->gpr[reg], mmu_idx, raddr);
+ MemOpIdx oi = make_memop_idx(MO_TE | MO_UL | MO_UNALN, mmu_idx);
+
+ cpu_stl_mmu(env, addr, env->gpr[reg], oi, raddr);
addr = addr_add(env, addr, 4);
}
}
@@ -161,9 +165,11 @@ static void do_lsw(CPUPPCState *env, target_ulong addr, uint32_t nb,
break;
}
} else {
+ MemOpIdx oi = make_memop_idx(MO_TE | MO_UL | MO_UNALN, mmu_idx);
+
/* Slow path -- at least some of the operation requires i/o. */
for (; nb > 3; nb -= 4) {
- env->gpr[reg] = cpu_ldl_mmuidx_ra(env, addr, mmu_idx, raddr);
+ env->gpr[reg] = cpu_ldl_mmu(env, addr, oi, raddr);
reg = (reg + 1) % 32;
addr = addr_add(env, addr, 4);
}
@@ -174,10 +180,12 @@ static void do_lsw(CPUPPCState *env, target_ulong addr, uint32_t nb,
val = cpu_ldub_mmuidx_ra(env, addr, mmu_idx, raddr) << 24;
break;
case 2:
- val = cpu_lduw_mmuidx_ra(env, addr, mmu_idx, raddr) << 16;
+ oi = make_memop_idx(MO_TE | MO_UW | MO_UNALN, mmu_idx);
+ val = cpu_ldw_mmu(env, addr, oi, raddr) << 16;
break;
case 3:
- val = cpu_lduw_mmuidx_ra(env, addr, mmu_idx, raddr) << 16;
+ oi = make_memop_idx(MO_TE | MO_UW | MO_UNALN, mmu_idx);
+ val = cpu_ldw_mmu(env, addr, oi, raddr) << 16;
addr = addr_add(env, addr, 2);
val |= cpu_ldub_mmuidx_ra(env, addr, mmu_idx, raddr) << 8;
break;
@@ -250,8 +258,11 @@ void helper_stsw(CPUPPCState *env, target_ulong addr, uint32_t nb,
break;
}
} else {
+ MemOpIdx oi;
+
+ oi = make_memop_idx(MO_TE | MO_UL | MO_UNALN, mmu_idx);
for (; nb > 3; nb -= 4) {
- cpu_stl_mmuidx_ra(env, addr, env->gpr[reg], mmu_idx, raddr);
+ cpu_stl_mmu(env, addr, env->gpr[reg], oi, raddr);
reg = (reg + 1) % 32;
addr = addr_add(env, addr, 4);
}
@@ -261,10 +272,12 @@ void helper_stsw(CPUPPCState *env, target_ulong addr, uint32_t nb,
cpu_stb_mmuidx_ra(env, addr, val >> 24, mmu_idx, raddr);
break;
case 2:
- cpu_stw_mmuidx_ra(env, addr, val >> 16, mmu_idx, raddr);
+ oi = make_memop_idx(MO_TE | MO_UW | MO_UNALN, mmu_idx);
+ cpu_stw_mmu(env, addr, val >> 16, oi, raddr);
break;
case 3:
- cpu_stw_mmuidx_ra(env, addr, val >> 16, mmu_idx, raddr);
+ oi = make_memop_idx(MO_TE | MO_UW | MO_UNALN, mmu_idx);
+ cpu_stw_mmu(env, addr, val >> 16, oi, raddr);
addr = addr_add(env, addr, 2);
cpu_stb_mmuidx_ra(env, addr, val >> 8, mmu_idx, raddr);
break;
@@ -293,8 +306,10 @@ static void dcbz_common(CPUPPCState *env, target_ulong addr,
haddr = probe_write(env, addr, dcbz_size, mmu_idx, retaddr);
if (unlikely(!haddr)) {
/* Slow path */
+ MemOpIdx oi = make_memop_idx(MO_TE | MO_UQ | MO_UNALN, mmu_idx);
+
for (int i = 0; i < dcbz_size; i += 8) {
- cpu_stq_mmuidx_ra(env, addr + i, 0, mmu_idx, retaddr);
+ cpu_stq_mmu(env, addr + i, 0, oi, retaddr);
}
return;
}
@@ -342,9 +357,10 @@ void helper_icbi(CPUPPCState *env, target_ulong addr)
void helper_icbiep(CPUPPCState *env, target_ulong addr)
{
#if !defined(CONFIG_USER_ONLY)
+ MemOpIdx oi = make_memop_idx(MO_UL | MO_UNALN, PPC_TLB_EPID_LOAD);
/* See comments above */
addr &= ~(env->dcache_line_size - 1);
- cpu_ldl_mmuidx_ra(env, addr, PPC_TLB_EPID_LOAD, GETPC());
+ cpu_ldl_mmu(env, addr, oi, GETPC());
#endif
}
--
2.51.0