|
| From: | Richard Henderson |
| Subject: | Re: [RFC PATCH v2 3/5] tests/tcg/ppc64le: drop __int128 usage in bcdsub |
| Date: | Thu, 3 Mar 2022 08:57:58 -1000 |
| User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.0 |
On 3/3/22 07:20, matheus.ferst@eldorado.org.br wrote:
I'm avoiding newer insns like mtvsrdd/mfvsrld to move values between VSR and GPR so we can run this test in a POWER8 machine.
This...
+#define BCDSUB(AH, AL, BH, BL, PS) \
+ asm ("mtvsrd 32, %3\n\t" \
+ "mtvsrd 33, %4\n\t" \
+ "xxmrghd 32, 32, 33\n\t" \
+ "mtvsrd 33, %5\n\t" \
+ "mtvsrd 34, %6\n\t" \
+ "xxmrghd 33, 33, 34\n\t" \
+ "bcdsub. 0, 0, 1, %7\n\t" \
+ "mfocrf %0, 0b10\n\t" \
+ "mfvsrd %1, 32\n\t" \
+ "xxswapd 32, 32\n\t" \
+ "mfvsrd %2, 32\n\t" \
+ : "=r" (cr), "=r" (th), "=r" (tl) \
+ : "r" (AH), "r" (AL), "r" (BH), "r" (BL), "i" (PS) \
+ : "v0", "v1", "v2");
... belongs here as a comment.
+ if (TH || TL) { \
Would be clearer with TH != UNDEF || TL != UNDEF. Otherwise, Reviewed-by: Richard Henderson <richard.henderson@linaro.org> r~
| [Prev in Thread] | Current Thread | [Next in Thread] |