[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>