qemu-devel
[Top][All Lists]
Advanced

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

Re: [PATCH 16/33] target/ppc: Implement Vector Insert Word from GPR usin


From: Matheus K. Ferst
Subject: Re: [PATCH 16/33] target/ppc: Implement Vector Insert Word from GPR using Immediate insns
Date: Tue, 26 Oct 2021 11:33:16 -0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.13.0

On 23/10/2021 01:42, Richard Henderson wrote:
[E-MAIL EXTERNO] Não clique em links ou abra anexos, a menos que você possa confirmar o remetente e saber que o conteúdo é seguro. Em caso de e-mail suspeito entre imediatamente em contato com o DTI.

On 10/21/21 12:45 PM, matheus.ferst@eldorado.org.br wrote:
+static bool do_vins_VX_uim4(DisasContext *ctx, arg_VX_uim4 *a, int size,
+                        void (*gen_helper)(TCGv_ptr, TCGv_ptr, TCGv_i64, TCGv))
+{
+    REQUIRE_INSNS_FLAGS2(ctx, ISA310);
+    REQUIRE_VECTOR(ctx);
+
+    if (a->uim > (16 - size)) {
+        qemu_log_mask(LOG_GUEST_ERROR, "Invalid index for VINS* at"
+            " 0x" TARGET_FMT_lx ", UIM = %d > %d\n", ctx->cia, a->uim,
+            16 - size);
+        return true;
+    }

Does this really do nothing on real hw?

We don't have access to the real hardware yet, so our reference is the POWER10 Functional Simulator (Mambo). Maybe someone from IBM can run a test for us, but Mambo usually does the right thing, especially in "simple mode."

I know the manual says undefined, but I would have expected SIGILL.

It says that "if UIM is greater than N, the result is undefined." My first read was also that the outcome is "boundedly undefined," but I guess it can be understood as "the resulting value in VRT will be undefined" (like when the pseudo-code uses "VRT <- 0xUUUU_..._UUUU"), in which case this patch and Mambo are correct.

--
Matheus K. Ferst
Instituto de Pesquisas ELDORADO <http://www.eldorado.org.br/>
Analista de Software
Aviso Legal - Disclaimer <https://www.eldorado.org.br/disclaimer.html>



reply via email to

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