target/ppc: Restrict exception helpers to TCG
Move exception helpers to tcg-excp_helper.c so they are only built when TCG is selected. Preprocessor guards are added for some helpers unused when CONFIG_USER_ONLY. [npiggin: mention USER_ONLY change] Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Message-ID: <20250127102620.39159-10-philmd@linaro.org> Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
This commit is contained in:
parent
94a37684a5
commit
1d0b82f86d
@ -2504,41 +2504,7 @@ bool ppc_cpu_exec_interrupt(CPUState *cs, int interrupt_request)
|
|||||||
|
|
||||||
#endif /* !CONFIG_USER_ONLY */
|
#endif /* !CONFIG_USER_ONLY */
|
||||||
|
|
||||||
/*****************************************************************************/
|
|
||||||
/* Exceptions processing helpers */
|
|
||||||
|
|
||||||
void raise_exception_err_ra(CPUPPCState *env, uint32_t exception,
|
|
||||||
uint32_t error_code, uintptr_t raddr)
|
|
||||||
{
|
|
||||||
CPUState *cs = env_cpu(env);
|
|
||||||
|
|
||||||
cs->exception_index = exception;
|
|
||||||
env->error_code = error_code;
|
|
||||||
cpu_loop_exit_restore(cs, raddr);
|
|
||||||
}
|
|
||||||
|
|
||||||
void raise_exception_err(CPUPPCState *env, uint32_t exception,
|
|
||||||
uint32_t error_code)
|
|
||||||
{
|
|
||||||
raise_exception_err_ra(env, exception, error_code, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
void raise_exception(CPUPPCState *env, uint32_t exception)
|
|
||||||
{
|
|
||||||
raise_exception_err_ra(env, exception, 0, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef CONFIG_TCG
|
#ifdef CONFIG_TCG
|
||||||
void helper_raise_exception_err(CPUPPCState *env, uint32_t exception,
|
|
||||||
uint32_t error_code)
|
|
||||||
{
|
|
||||||
raise_exception_err_ra(env, exception, error_code, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
void helper_raise_exception(CPUPPCState *env, uint32_t exception)
|
|
||||||
{
|
|
||||||
raise_exception_err_ra(env, exception, 0, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifndef CONFIG_USER_ONLY
|
#ifndef CONFIG_USER_ONLY
|
||||||
void helper_store_msr(CPUPPCState *env, target_ulong val)
|
void helper_store_msr(CPUPPCState *env, target_ulong val)
|
||||||
|
@ -19,15 +19,53 @@
|
|||||||
#include "qemu/osdep.h"
|
#include "qemu/osdep.h"
|
||||||
#include "qemu/log.h"
|
#include "qemu/log.h"
|
||||||
#include "exec/cpu_ldst.h"
|
#include "exec/cpu_ldst.h"
|
||||||
|
#include "exec/exec-all.h"
|
||||||
|
#include "exec/helper-proto.h"
|
||||||
#include "system/runstate.h"
|
#include "system/runstate.h"
|
||||||
|
|
||||||
|
#include "helper_regs.h"
|
||||||
#include "hw/ppc/ppc.h"
|
#include "hw/ppc/ppc.h"
|
||||||
#include "internal.h"
|
#include "internal.h"
|
||||||
#include "cpu.h"
|
#include "cpu.h"
|
||||||
#include "trace.h"
|
#include "trace.h"
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
/* Exceptions processing helpers */
|
||||||
|
|
||||||
|
void raise_exception_err_ra(CPUPPCState *env, uint32_t exception,
|
||||||
|
uint32_t error_code, uintptr_t raddr)
|
||||||
|
{
|
||||||
|
CPUState *cs = env_cpu(env);
|
||||||
|
|
||||||
|
cs->exception_index = exception;
|
||||||
|
env->error_code = error_code;
|
||||||
|
cpu_loop_exit_restore(cs, raddr);
|
||||||
|
}
|
||||||
|
|
||||||
|
void helper_raise_exception_err(CPUPPCState *env, uint32_t exception,
|
||||||
|
uint32_t error_code)
|
||||||
|
{
|
||||||
|
raise_exception_err_ra(env, exception, error_code, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
void helper_raise_exception(CPUPPCState *env, uint32_t exception)
|
||||||
|
{
|
||||||
|
raise_exception_err_ra(env, exception, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
#ifndef CONFIG_USER_ONLY
|
#ifndef CONFIG_USER_ONLY
|
||||||
|
|
||||||
|
void raise_exception_err(CPUPPCState *env, uint32_t exception,
|
||||||
|
uint32_t error_code)
|
||||||
|
{
|
||||||
|
raise_exception_err_ra(env, exception, error_code, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
void raise_exception(CPUPPCState *env, uint32_t exception)
|
||||||
|
{
|
||||||
|
raise_exception_err_ra(env, exception, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
void ppc_cpu_do_unaligned_access(CPUState *cs, vaddr vaddr,
|
void ppc_cpu_do_unaligned_access(CPUState *cs, vaddr vaddr,
|
||||||
MMUAccessType access_type,
|
MMUAccessType access_type,
|
||||||
int mmu_idx, uintptr_t retaddr)
|
int mmu_idx, uintptr_t retaddr)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user