@samitouri / QOSamiQemu / commits / 0eb04655f0

target/hexagon: Add TCG overrides for thread ctl

Define TCG overrides for start, stop, wait, resume instructions. Reviewed-by: Taylor Simpson <ltaylorsimpson@gmail.com> Signed-off-by: Brian Cain <brian.cain@oss.qualcomm.com>

Brian Cain committed Jun 22, 2026 at 15:28 UTC 0eb04655f0aa6da80349d24c754c227051ef088e
3 files changed +42
target/hexagon/gen_tcg_sys.h
+18
@@ -77,4 +77,22 @@
77 } \
78 } while (0)
79
80 +#define fGEN_TCG_Y2_wait(SHORTCODE) \
81 + do { \
82 + RsV = RsV; \
83 + gen_helper_wait(tcg_env, tcg_constant_tl(ctx->pkt->pc)); \
84 + } while (0)
85 +
86 +#define fGEN_TCG_Y2_resume(SHORTCODE) \
87 + gen_helper_resume(tcg_env, RsV)
88 +
89 +#define fGEN_TCG_Y2_start(SHORTCODE) \
90 + gen_helper_start(tcg_env, RsV)
91 +
92 +#define fGEN_TCG_Y2_stop(SHORTCODE) \
93 + do { \
94 + RsV = RsV; \
95 + gen_helper_stop(tcg_env); \
96 + } while (0)
97 +
98 #endif
target/hexagon/helper.h
+4
@@ -123,4 +123,8 @@ DEF_HELPER_2(greg_read, i32, env, i32)
123 DEF_HELPER_2(greg_read_pair, i64, env, i32)
124 DEF_HELPER_3(sreg_write_masked, void, env, i32, i32)
125 DEF_HELPER_3(setprio, void, env, i32, i32)
126 +DEF_HELPER_2(start, void, env, i32)
127 +DEF_HELPER_1(stop, void, env)
128 +DEF_HELPER_2(wait, void, env, i32)
129 +DEF_HELPER_2(resume, void, env, i32)
130 #endif
target/hexagon/op_helper.c
+20
@@ -1420,6 +1420,26 @@ uint32_t HELPER(iassignr)(CPUHexagonState *env, uint32_t src)
1420 g_assert_not_reached();
1421 }
1422
1423 +void HELPER(start)(CPUHexagonState *env, uint32_t imask)
1424 +{
1425 + g_assert_not_reached();
1426 +}
1427 +
1428 +void HELPER(stop)(CPUHexagonState *env)
1429 +{
1430 + g_assert_not_reached();
1431 +}
1432 +
1433 +void HELPER(wait)(CPUHexagonState *env, target_ulong PC)
1434 +{
1435 + g_assert_not_reached();
1436 +}
1437 +
1438 +void HELPER(resume)(CPUHexagonState *env, uint32_t mask)
1439 +{
1440 + g_assert_not_reached();
1441 +}
1442 +
1443 uint32_t HELPER(getimask)(CPUHexagonState *env, uint32_t tid)
1444 {
1445 g_assert_not_reached();