Use cpu_raise_excp_restore() for FPU exceptions and remove the redundant HPPA wrapper.
Signed-off-by: Yonggang Luo <[email protected]> --- target/hppa/cpu.h | 1 - target/hppa/fpu_helper.c | 3 ++- target/hppa/op_helper.c | 8 -------- 3 files changed, 2 insertions(+), 10 deletions(-) diff --git a/target/hppa/cpu.h b/target/hppa/cpu.h index f453444d7f9..da3cc15fe9a 100644 --- a/target/hppa/cpu.h +++ b/target/hppa/cpu.h @@ -407,6 +407,5 @@ extern const MemoryRegionOps hppa_io_eir_ops; extern const VMStateDescription vmstate_hppa_cpu; void hppa_cpu_alarm_timer(void *); #endif -G_NORETURN void hppa_dynamic_excp(CPUHPPAState *env, int excp, uintptr_t ra); #endif /* HPPA_CPU_H */ diff --git a/target/hppa/fpu_helper.c b/target/hppa/fpu_helper.c index cdbebcfeb3a..1115b90407d 100644 --- a/target/hppa/fpu_helper.c +++ b/target/hppa/fpu_helper.c @@ -20,6 +20,7 @@ #include "qemu/osdep.h" #include "cpu.h" #include "exec/helper-proto.h" +#include "accel/tcg/cpu-loop.h" #include "fpu/softfloat.h" void HELPER(loaded_fr0)(CPUHPPAState *env) @@ -131,7 +132,7 @@ static void update_fr0_op(CPUHPPAState *env, uintptr_t ra) env->fr[0] = (uint64_t)shadow << 32 | fr1; if (hard_exp & shadow) { - hppa_dynamic_excp(env, EXCP_ASSIST, ra); + cpu_raise_excp_restore(env_cpu(env), EXCP_ASSIST, ra); } } diff --git a/target/hppa/op_helper.c b/target/hppa/op_helper.c index 9c560a56d34..c1728f1fb91 100644 --- a/target/hppa/op_helper.c +++ b/target/hppa/op_helper.c @@ -30,14 +30,6 @@ #include "user/page-protection.h" #endif -G_NORETURN void hppa_dynamic_excp(CPUHPPAState *env, int excp, uintptr_t ra) -{ - CPUState *cs = env_cpu(env); - - cs->exception_index = excp; - cpu_loop_exit_restore(cs, ra); -} - static void atomic_store_mask32(CPUHPPAState *env, target_ulong addr, uint32_t val, uint32_t mask, uintptr_t ra) { -- 2.52.0.windows.1
