This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH] powerpc: fix tst-ucontext-ppc64-vscr test for POWER 5/6
- From: Rogerio Alves <rcardoso at linux dot ibm dot com>
- To: libc-alpha at sourceware dot org, Tulio Magno Quites Machado Filho <tuliom at linux dot ibm dot com>
- Date: Mon, 14 Jan 2019 12:49:59 -0200
- Subject: [PATCH] powerpc: fix tst-ucontext-ppc64-vscr test for POWER 5/6
Hi,
I've sent a patch
https://sourceware.org/ml/libc-alpha/2018-11/msg00357.html that fix VSCR
reading from ucontext_t for powerpc BZ#24088. The problem is that the
test was fail to compile on POWER 5 and 6. The test was using __vector
__int128_t and generating an error impossible register constraint in
'asm' if compiled without -mvsx flag.
In fact the test doesn't need to use a __int128_t. A unsigned int should
be fine. So I am sent another patch to fix this since the other patch
was already committed. I will appreciate any comments or reviews on this.
Regards,
Rogerio
>From 1a70e67a2fda78bb56c34a882f85653e66bc087d Mon Sep 17 00:00:00 2001
From: Rogerio Alves <rcardoso@linux.ibm.com>
Date: Mon, 14 Jan 2019 07:53:50 -0600
Subject: [PATCH] powerpc: fix tst-ucontext-ppc64-vscr test for POWER 5/6.
An error: impossible register constraint in 'asm' was raised on POWER 5 and
6 due a __vector __int128_t being used as operands without passing the
option -msvx to gcc. However, the test doesn't need to use a __int128_t a
unsigned int should work.
2019-01-14 Rogerio A. Cardoso <rcardoso@linux.ibm.com>
* sysdeps/powerpc/powerpc64/tst-ucontext-ppc64-vscr.c: Changed __vector
__int128_t to vector unsigned int.
---
sysdeps/powerpc/powerpc64/tst-ucontext-ppc64-vscr.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/sysdeps/powerpc/powerpc64/tst-ucontext-ppc64-vscr.c b/sysdeps/powerpc/powerpc64/tst-ucontext-ppc64-vscr.c
index 2dcf5bb..dbe06c8 100644
--- a/sysdeps/powerpc/powerpc64/tst-ucontext-ppc64-vscr.c
+++ b/sysdeps/powerpc/powerpc64/tst-ucontext-ppc64-vscr.c
@@ -44,8 +44,8 @@ do_test (void)
uint32_t* vscr_ptr = vscr;
uint32_t vscr_word;
ucontext_t ucp;
- __vector __int128_t v0 = {0};
- __vector __int128_t v1 = {0};
+ __vector unsigned int v0 = {0};
+ __vector unsigned int v1 = {0};
/* Set SAT bit in VSCR register. */
asm volatile (".machine push;\n"
--
2.7.4