qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2 18/22] target/loongarch: Add branch instruction translatio


From: Richard Henderson
Subject: Re: [PATCH v2 18/22] target/loongarch: Add branch instruction translation
Date: Thu, 22 Jul 2021 20:38:28 -1000
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0

On 7/20/21 11:53 PM, Song Gao wrote:
+/* Branch Instructions translation */
+static bool trans_beqz(DisasContext *ctx, arg_beqz *a)
+{
+    TCGv t0, t1;
+    int bcond_flag = 0;
+
+    t0 = tcg_temp_new();
+    t1 = tcg_const_i64(0);
+
+    if (a->rj != 0) {
+        gen_load_gpr(t0, a->rj);
+        bcond_flag = 1;
+    }
+
+    if (bcond_flag == 0) {
+        ctx->hflags |= LOONGARCH_HFLAG_B;
+    } else {
+        tcg_gen_setcond_tl(TCG_COND_EQ, bcond, t0, t1);
+        ctx->hflags |= LOONGARCH_HFLAG_BC;
+    }
+    ctx->btarget = ctx->base.pc_next + (a->offs21 << 2);
+
+    tcg_temp_free(t0);
+    tcg_temp_free(t1);
+
+    return true;
+}

Drop all of the branch delay slot stuff.
Use a common routine and pass in the TCGCond.


r~



reply via email to

[Prev in Thread] Current Thread [Next in Thread]