Signed-off-by: Song Gao <gaos...@loongson.cn> --- target/loongarch/insn_trans/trans_vec.c.inc | 12 ++++++++++++ target/loongarch/internals.h | 2 ++ 2 files changed, 14 insertions(+)
diff --git a/target/loongarch/insn_trans/trans_vec.c.inc b/target/loongarch/insn_trans/trans_vec.c.inc index 98f856bb29..aef16ef44a 100644 --- a/target/loongarch/insn_trans/trans_vec.c.inc +++ b/target/loongarch/insn_trans/trans_vec.c.inc @@ -23,8 +23,20 @@ static bool check_vec(DisasContext *ctx, uint32_t oprsz) #else +static void set_vec_extctx(DisasContext *ctx, uint32_t oprsz) +{ + if (oprsz == 16) { + ctx->extctx_flags |= EXTCTX_FLAGS_LSX; + } + + if (oprsz == 32) { + ctx->extctx_flags |= EXTCTX_FLAGS_LASX; + } +} + static bool check_vec(DisasContext *ctx, uint32_t oprsz) { + set_vec_extctx(ctx, oprsz); return true; } diff --git a/target/loongarch/internals.h b/target/loongarch/internals.h index 01d98ac2fc..2efba9b859 100644 --- a/target/loongarch/internals.h +++ b/target/loongarch/internals.h @@ -22,6 +22,8 @@ #define LOONGARCH_HGLOBAL_SHIFT 12 #define EXTCTX_FLAGS_FPU 0b01 +#define EXTCTX_FLAGS_LSX 0b10 +#define EXTCTX_FLAGS_LASX 0b100 void loongarch_translate_init(void); -- 2.25.1