qemu-devel
[Top][All Lists]
Advanced

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

Re: [RFC PATCH v3 37/44] target/loongarch: Implement vbitsel vset


From: Richard Henderson
Subject: Re: [RFC PATCH v3 37/44] target/loongarch: Implement vbitsel vset
Date: Mon, 24 Apr 2023 16:53:11 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.10.0

On 4/20/23 09:07, Song Gao wrote:
+#define SETANYEQZ(NAME, MO)                                         \
+void HELPER(NAME)(CPULoongArchState *env, uint32_t cd, uint32_t vj) \
+{                                                                   \
+    bool ret = false;                                               \
+    VReg *Vj = &(env->fpr[vj].vreg);                                \
+                                                                    \
+    ret = do_match2(0, Vj->D(0), Vj->D(1), MO);                     \
+    env->cf[cd & 0x7] = ret;                                        \
+}

Good.

+
+#define SETALLNEZ(NAME, BIT, E)                                     \
+void HELPER(NAME)(CPULoongArchState *env, uint32_t cd, uint32_t vj) \
+{                                                                   \
+    int i;                                                          \
+    bool ret = true;                                                \
+    VReg *Vj = &(env->fpr[vj].vreg);                                \
+                                                                    \
+    for (i = 0; i < LSX_LEN/BIT; i++) {                             \
+        ret &= (Vj->E(i) != 0);                                     \
+    }                                                               \
+    env->cf[cd & 0x7] = ret;                                        \
+}

setallnez = !setanyeqz, so use !do_match2().



r~



reply via email to

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