qemu-ppc
[Top][All Lists]
Advanced

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

Re: [PATCH] tests/tcg/ppc64le: remove INT128 requirement to run non_sign


From: Matheus K. Ferst
Subject: Re: [PATCH] tests/tcg/ppc64le: remove INT128 requirement to run non_signalling_xscv
Date: Mon, 20 Dec 2021 09:18:44 -0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.14.0

On 17/12/2021 20:54, 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 12/16/21 6:09 AM, matheus.ferst@eldorado.org.br wrote:
+        asm("mtvsrd 0, %3\n\t"                                          \ +            "xxswapd 0, 0\n\t"                                          \ +            "mtvsrd 0, %2\n\t"                                          \

This doesn't work.  The lower half of vs0 is undefined after mtvsrd.
You actually want mtvsrdd 0, %2, %3, with "b" as the constraint for bh.

+            "mfvsrd %0, 0\n\t"                                          \ +            "xxswapd 0, 0\n\t"                                          \ +            "mfvsrd %1, 0\n\t"                                          \

Drop the xxswapd and use mfvsrld.

Otherwise it looks ok.


r~

I'd like to avoid mtvsrdd/mfvsrld because they were introduced in PowerISA v3.0, and xscvspdpn/xscvdpspn are from v2.07. How about

asm("mtvsrd 0, %2\n\t"
    "mtvsrd 1, %3\n\t"
    "xxmrghd 0, 0, 1\n\t"
    INSN " 0, 0\n\t"
    "mfvsrd %0, 0\n\t"
    "xxswapd 0, 0\n\t"
    "mfvsrd %1, 0\n\t"
    : "=r" (th), "=r" (tl)
    : "r" (bh), "r" (bl)
    : "vs0", "vs1");

?

Thanks,
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]