|
From: Carl L. <ca...@so...> - 2020-01-28 18:17:52
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=4f70aa4fb0d4cef97ee34602d72f3980c5a83bf6 commit 4f70aa4fb0d4cef97ee34602d72f3980c5a83bf6 Author: Carl Love <ca...@us...> Date: Tue Jan 28 12:17:16 2020 -0600 PPC64: Fix assembler constraints. The PPC64 assembler constraints "ws", "wa" and "ww" have changed to "wa" in GCC 10. Update the ppc64 tests test_isa_2_07_part1.c and test_isa_3_0.c. Diff: --- NEWS | 1 + none/tests/ppc64/test_isa_2_07_part1.c | 10 +++++----- none/tests/ppc64/test_isa_3_0.c | 16 ++++++++-------- 3 files changed, 14 insertions(+), 13 deletions(-) diff --git a/NEWS b/NEWS index d409c13..96ed2ff 100644 --- a/NEWS +++ b/NEWS @@ -112,6 +112,7 @@ n-i-bz Add --run-cxx-freeres=no in outer args to avoid inner crashes. n-i-bz Add support for the Linux io_uring system calls n-i-bz sys_statx: don't complain if both |filename| and |buf| are NULL. n-i-bz Fix non-glibc build of test suite with s390x_features +416667 gcc10 ppc64le impossible constraint in 'asm' in test_isa. Release 3.15.0 (12 April 2019) diff --git a/none/tests/ppc64/test_isa_2_07_part1.c b/none/tests/ppc64/test_isa_2_07_part1.c index 187af37..0efd39c 100644 --- a/none/tests/ppc64/test_isa_2_07_part1.c +++ b/none/tests/ppc64/test_isa_2_07_part1.c @@ -384,27 +384,27 @@ static void test_fmrgow (void) // VSX move instructions static void test_mfvsrd (void) { - __asm__ __volatile__ ("mfvsrd %0,%x1" : "=r" (r14) : "ws" (vec_inA)); + __asm__ __volatile__ ("mfvsrd %0,%x1" : "=r" (r14) : "wa" (vec_inA)); }; static void test_mfvsrwz (void) { - __asm__ __volatile__ ("mfvsrwz %0,%x1" : "=r" (r14) : "ws" (vec_inA)); + __asm__ __volatile__ ("mfvsrwz %0,%x1" : "=r" (r14) : "wa" (vec_inA)); }; static void test_mtvsrd (void) { - __asm__ __volatile__ ("mtvsrd %x0,%1" : "=ws" (vec_out) : "r" (r14)); + __asm__ __volatile__ ("mtvsrd %x0,%1" : "=wa" (vec_out) : "r" (r14)); }; static void test_mtvsrwz (void) { - __asm__ __volatile__ ("mtvsrwz %x0,%1" : "=ws" (vec_out) : "r" (r14)); + __asm__ __volatile__ ("mtvsrwz %x0,%1" : "=wa" (vec_out) : "r" (r14)); }; static void test_mtvsrwa (void) { - __asm__ __volatile__ ("mtvsrwa %x0,%1" : "=ws" (vec_out) : "r" (r14)); + __asm__ __volatile__ ("mtvsrwa %x0,%1" : "=wa" (vec_out) : "r" (r14)); }; static void test_mtfprwa (void) diff --git a/none/tests/ppc64/test_isa_3_0.c b/none/tests/ppc64/test_isa_3_0.c index 78b5130..cf9df8a 100644 --- a/none/tests/ppc64/test_isa_3_0.c +++ b/none/tests/ppc64/test_isa_3_0.c @@ -1177,23 +1177,23 @@ static void test_xscmpexpdp(void) { } static void test_xscmpeqdp(void) { - __asm__ __volatile__ ("xscmpeqdp %x0, %x1, %x2 " : "+wa" (vec_xt): "ww" (vec_xa), "ww" (vec_xb)); + __asm__ __volatile__ ("xscmpeqdp %x0, %x1, %x2 " : "+wa" (vec_xt): "wa" (vec_xa), "wa" (vec_xb)); } static void test_xscmpgtdp(void) { - __asm__ __volatile__ ("xscmpgtdp %x0, %x1, %x2 " : "+wa" (vec_xt): "ww" (vec_xa), "ww" (vec_xb)); + __asm__ __volatile__ ("xscmpgtdp %x0, %x1, %x2 " : "+wa" (vec_xt): "wa" (vec_xa), "wa" (vec_xb)); } static void test_xscmpgedp(void) { - __asm__ __volatile__ ("xscmpgedp %x0, %x1, %x2 " : "+wa" (vec_xt): "ww" (vec_xa), "ww" (vec_xb)); + __asm__ __volatile__ ("xscmpgedp %x0, %x1, %x2 " : "+wa" (vec_xt): "wa" (vec_xa), "wa" (vec_xb)); } static void test_xsmincdp(void) { - __asm__ __volatile__ ("xsmincdp %x0, %x1, %x2 " : "+wa" (vec_xt): "ww" (vec_xa), "ww" (vec_xb)); + __asm__ __volatile__ ("xsmincdp %x0, %x1, %x2 " : "+wa" (vec_xt): "wa" (vec_xa), "wa" (vec_xb)); } static void test_xsmaxcdp(void) { - __asm__ __volatile__ ("xsmaxcdp %x0, %x1, %x2 " : "+wa" (vec_xt): "ww" (vec_xa), "ww" (vec_xb)); + __asm__ __volatile__ ("xsmaxcdp %x0, %x1, %x2 " : "+wa" (vec_xt): "wa" (vec_xa), "wa" (vec_xb)); } static test_list_t testgroup_vector_scalar_compare_double[] = { @@ -1827,15 +1827,15 @@ static void test_xscvhpdp(void) { } static void test_xscvdphp(void) { - __asm__ __volatile__ ("xscvdphp %x0, %x1 " : "+wi" (vec_xt) : "wi" (vec_xb)); + __asm__ __volatile__ ("xscvdphp %x0, %x1 " : "+wa" (vec_xt) : "wa" (vec_xb)); } static void test_xvcvhpsp(void) { - __asm__ __volatile__ ("xvcvhpsp %x0, %x1 " : "+ww" (vec_xt) : "ww" (vec_xb)); + __asm__ __volatile__ ("xvcvhpsp %x0, %x1 " : "+wa" (vec_xt) : "wa" (vec_xb)); } static void test_xvcvsphp(void) { - __asm__ __volatile__ ("xvcvsphp %x0, %x1 " : "+ww" (vec_xt) : "ww" (vec_xb)); + __asm__ __volatile__ ("xvcvsphp %x0, %x1 " : "+wa" (vec_xt) : "wa" (vec_xb)); } static test_list_t testgroup_vector_scalar_two_double[] = { |