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();