target/ppc: Move ppc_ldl_code() to tcg-excp_helper.c
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Harsh Prateek Bora <harshpb@linux.ibm.com> Message-ID: <20250127102620.39159-6-philmd@linaro.org> Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
This commit is contained in:
parent
0fc76338fe
commit
720c2f2d53
@ -136,27 +136,6 @@ static void dump_hcall(CPUPPCState *env)
|
||||
env->nip);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_TCG
|
||||
/* Return true iff byteswap is needed to load instruction */
|
||||
static inline bool insn_need_byteswap(CPUArchState *env)
|
||||
{
|
||||
/* SYSTEM builds TARGET_BIG_ENDIAN. Need to swap when MSR[LE] is set */
|
||||
return !!(env->msr & ((target_ulong)1 << MSR_LE));
|
||||
}
|
||||
|
||||
uint32_t ppc_ldl_code(CPUArchState *env, target_ulong addr)
|
||||
{
|
||||
uint32_t insn = cpu_ldl_code(env, addr);
|
||||
|
||||
if (insn_need_byteswap(env)) {
|
||||
insn = bswap32(insn);
|
||||
}
|
||||
|
||||
return insn;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
static void ppc_excp_debug_sw_tlb(CPUPPCState *env, int excp)
|
||||
{
|
||||
const char *es;
|
||||
|
@ -199,4 +199,22 @@ bool ppc_cpu_debug_check_watchpoint(CPUState *cs, CPUWatchpoint *wp)
|
||||
return false;
|
||||
}
|
||||
|
||||
/* Return true iff byteswap is needed to load instruction */
|
||||
static inline bool insn_need_byteswap(CPUArchState *env)
|
||||
{
|
||||
/* SYSTEM builds TARGET_BIG_ENDIAN. Need to swap when MSR[LE] is set */
|
||||
return !!(env->msr & ((target_ulong)1 << MSR_LE));
|
||||
}
|
||||
|
||||
uint32_t ppc_ldl_code(CPUArchState *env, target_ulong addr)
|
||||
{
|
||||
uint32_t insn = cpu_ldl_code(env, addr);
|
||||
|
||||
if (insn_need_byteswap(env)) {
|
||||
insn = bswap32(insn);
|
||||
}
|
||||
|
||||
return insn;
|
||||
}
|
||||
|
||||
#endif /* !CONFIG_USER_ONLY */
|
||||
|
Loading…
x
Reference in New Issue
Block a user