qemu-devel
[Top][All Lists]
Advanced

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

Re: [PATCH v4 10/30] Hexagon HVX (target/hexagon) instruction utility fu


From: Richard Henderson
Subject: Re: [PATCH v4 10/30] Hexagon HVX (target/hexagon) instruction utility functions
Date: Fri, 29 Oct 2021 11:53:22 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.13.0

On 10/12/21 3:10 AM, Taylor Simpson wrote:
+void mem_vector_scatter_init(CPUHexagonState *env, int slot,
+                             target_ulong base_vaddr,
+                             int length, int element_size)
+{
+    int i;
+
+    for (i = 0; i < sizeof(MMVector); i++) {
+        env->vtcm_log.data.ub[i] = 0;
+    }
+    bitmap_zero(env->vtcm_log.mask, MAX_VEC_SIZE_BYTES);
+
+    env->vtcm_pending = true;
+    env->vtcm_log.op = false;
+    env->vtcm_log.op_size = 0;
+    env->vtcm_log.size = sizeof(MMVector);

Init really wants size != 0 here?  Because it's not that way for gather...

Otherwise it looks like you want

    memset(&env->vtcm_log, 0, sizeof(env->vtcm_log));


+void mem_vector_gather_init(CPUHexagonState *env,
+                            target_ulong base_vaddr,
+                            int length, int element_size)
+{
+    int i;
+
+    for (i = 0; i < sizeof(MMVector); i++) {
+        env->vtcm_log.data.ub[i] = 0;
+        env->vtcm_log.va[i] = 0;
+        env->tmp_VRegs[0].ub[i] = 0;
+    }
+    bitmap_zero(env->vtcm_log.mask, MAX_VEC_SIZE_BYTES / 8);
+    env->vtcm_log.op = false;
+    env->vtcm_log.op_size = 0;
+}

Likewise memset of vtcm_log, with a second memset for tmp_Vregs[0].


r~



reply via email to

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