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.fe...@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