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


Reply via email to