On 3/3/22 07:20, matheus.fe...@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.hender...@linaro.org> r~