target/hexagon: Add implicit sysreg writes
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
c67f442c4383fab900f943b4334eedb227202421
1 file changed
+16
target/hexagon/translate.c
+16
@@ -424,6 +424,16 @@ static void mark_implicit_usr_write(DisasContext *ctx, int attrib)
424
}
425
}
426
427
+#ifndef CONFIG_USER_ONLY
428
+static void mark_implicit_sreg_write(DisasContext *ctx, int attrib, int snum)
429
+{
430
+ uint16_t opcode = ctx->insn->opcode;
431
+ if (GET_ATTRIB(opcode, attrib)) {
432
+ ctx_log_sreg_write(ctx, snum);
433
+ }
434
+}
435
+#endif
436
+
437
static void mark_implicit_reg_writes(DisasContext *ctx)
438
{
439
mark_implicit_reg_write(ctx, A_IMPLICIT_WRITES_FP, HEX_REG_FP);
@@ -436,6 +446,12 @@ static void mark_implicit_reg_writes(DisasContext *ctx)
446
447
mark_implicit_usr_write(ctx, A_IMPLICIT_WRITES_USR);
448
mark_implicit_usr_write(ctx, A_FPOP);
449
+
450
+#ifndef CONFIG_USER_ONLY
451
+ mark_implicit_sreg_write(ctx, A_IMPLICIT_WRITES_SGP0, HEX_SREG_SGP0);
452
+ mark_implicit_sreg_write(ctx, A_IMPLICIT_WRITES_SGP1, HEX_SREG_SGP1);
453
+ mark_implicit_sreg_write(ctx, A_IMPLICIT_WRITES_SSR, HEX_SREG_SSR);
454
+#endif
455
}
456
457
static void mark_implicit_pred_write(DisasContext *ctx, int attrib, int pnum)