From: Brian Cain <bc...@quicinc.com> Reviewed-by: Taylor Simpson <ltaylorsimp...@gmail.com> Signed-off-by: Brian Cain <brian.c...@oss.qualcomm.com> --- target/hexagon/helper.h | 5 +++++ target/hexagon/op_helper.c | 20 ++++++++++++++++++++ 2 files changed, 25 insertions(+)
diff --git a/target/hexagon/helper.h b/target/hexagon/helper.h index 730eaf8b9a..e107d74609 100644 --- a/target/hexagon/helper.h +++ b/target/hexagon/helper.h @@ -129,4 +129,9 @@ DEF_HELPER_1(stop, void, env) DEF_HELPER_2(wait, void, env, i32) DEF_HELPER_2(resume, void, env, i32) DEF_HELPER_2(nmi, void, env, i32) +DEF_HELPER_1(resched, void, env) +DEF_HELPER_3(modify_ssr, void, env, i32, i32) +DEF_HELPER_1(pending_interrupt, void, env) +DEF_HELPER_3(sreg_write_masked, void, env, i32, i32) +DEF_HELPER_3(sreg_write_pair_masked, void, env, i32, i64) #endif diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 5196226f02..e283c5c809 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -1180,6 +1180,15 @@ float64 HELPER(dfmpyhh)(CPUHexagonState *env, float64 RxxV, return RxxV; } +#ifndef CONFIG_USER_ONLY +void HELPER(modify_ssr)(CPUHexagonState *env, uint32_t new, uint32_t old) +{ + BQL_LOCK_GUARD(); + hexagon_modify_ssr(env, new, old); +} +#endif + + /* Histogram instructions */ void HELPER(vhist)(CPUHexagonState *env) @@ -1523,6 +1532,11 @@ static inline QEMU_ALWAYS_INLINE void resched(CPUHexagonState *env) } } +void HELPER(resched)(CPUHexagonState *env) +{ + resched(env); +} + void HELPER(wait)(CPUHexagonState *env, target_ulong PC) { BQL_LOCK_GUARD(); @@ -1844,6 +1858,12 @@ void HELPER(nmi)(CPUHexagonState *env, uint32_t thread_mask) { g_assert_not_reached(); } + +void HELPER(pending_interrupt)(CPUHexagonState *env) +{ + BQL_LOCK_GUARD(); + hex_interrupt_update(env); +} #endif -- 2.34.1