Hi, Richard

在 2023/4/4 上午11:39, Richard Henderson 写道:
On 3/27/23 20:06, Song Gao wrote:
+static bool trans_vldi(DisasContext *ctx, arg_vldi *a)
+{
+    int sel, vece;
+    uint64_t value;
+    CHECK_SXE;
+
+    sel = (a->imm >> 12) & 0x1;
+
+    if (sel) {
+        /* VSETI.D */
+        value = vldi_get_value(ctx, a->imm);
+        vece = MO_64;
+    } else {
+       /*
+        * VLDI.B/H/W/D
+        *  a->imm bit [11:10] is vece.
+        *  a->imm bit [9:0] is value;
+        */
+       value = ((int32_t)(a->imm << 22)) >> 22;
+       vece = (a->imm >> 10) & 0x3;
+    }
+
+    tcg_gen_gvec_dup_i64(vece, vreg_full_offset(a->vd), 16, 16,
+                         tcg_constant_i64(value));
+    return true;
+}

I think you should finish this decode in insns.decode,
especially since we are using that for disassembly.

You can ignore these comments, I will drop them. We only have vldi, no vseti.d, vldi.xxx insns.

Thanks.
Song Gao


Reply via email to