On 8/3/25 22:31, Paolo Bonzini wrote:
On 8/3/25 03:40, Richard Henderson wrote:
+static bool do_cb_cond(DisasContext *s, int cc, int imm,
+                       int rt, int rm, MemOp mop)

This is a memop...

+static bool trans_CB_cond(DisasContext *s, arg_CB_cond *a)
+{
+    return do_cb_cond(s, a->cc, a->imm, a->rt, a->rm, a->sf ? 64 : 32);
+}
+
+static bool trans_CBB_cond(DisasContext *s, arg_CBB_cond *a)
+{
+    return do_cb_cond(s, a->cc, a->imm, a->rt, a->rm, 8);
+}

... but these use bits

+static bool trans_CBH_cond(DisasContext *s, arg_CBH_cond *a)
+{
+    return do_cb_cond(s, a->cc, a->imm, 16, a->rt, a->rm);
+}
+

... and this one also has arguments in the wrong order.

Gah.  Thanks.  I've reorganized the code to avoid this entirely.

Now to fix a gcc crash when emitting code for cmpbr...  :-)


r~

Reply via email to