[PATCH] power: Fix VSCR position on ucontext
Tulio Magno Quites Machado Filho
tuliom@ascii.art.br
Mon Dec 10 21:20:00 GMT 2018
"Gabriel F. T. Gomes" <gabriel@inconstante.eti.br> writes:
> On Fri, 07 Dec 2018, Gabriel F. T. Gomes wrote:
>
>>On Fri, 07 Dec 2018, Rogerio Alves wrote:
>>
>>>+/* This test is supported only on POWER 5 or higher. */
>>>+#define PPC_CPU_SUPPORTED (PPC_FEATURE_POWER5 | PPC_FEATURE_POWER5_PLUS | \
>>>+ PPC_FEATURE_ARCH_2_05 | PPC_FEATURE_ARCH_2_06 | \
>>>+ PPC_FEATURE2_ARCH_2_07)
>>
>>Is this actually needed? Glibc has code to fill all the bits for older
>>architectures in sysdeps/powerpc/hwcapinfo.c [1]. So, as far as I can
>>see, you only need to test for AT_HWCAP & PPC_FEATURE_POWER5.
>>
>>[1] https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/powerpc/hwcapinfo.c;h=a09b18309324423d0cdf04e88367899a4396bab7;hb=HEAD#l47
>
> Hrm, that's only true for the hwcap info that is copied into the TCB, not
> when accessing it with getauxval, so my comment is wrong (as Rogerio
> kindly pointed out to me in a private message... thanks).
>
> So, nevermind this comment.
>
>
> On the other hand, on powerpc64 builds configured with --with-cpu set to
> power4, power5, and power6, (but not to power8 or power7), I got the
> following error message:
>
> ../sysdeps/powerpc/powerpc64/tst-ucontext-ppc64-vscr.c: In function ‘do_test’:
> ../sysdeps/powerpc/powerpc64/tst-ucontext-ppc64-vscr.c:51:3: error: inconsistent operand constraints in an ‘asm’
> asm volatile ("vspltisb %0,0\n"
> ^~~
>
> I guess we didn't get this error message before, because of the
> `#ifdef ARCH_PWR8' statement. So, unless you know a better way to fix
> this, you should reintroduce the `#ifdef' statement (now, you could use
> ARCH_PWR7).
You can use:
.machine push;
.machine "power7";
...
.machine pop
It should be safe to use with the current minimum required Binutils i.e.
support for POWER7 was already available in GNU Binutils 2.25 (even P8 was
supported).
--
Tulio Magno
More information about the Libc-alpha
mailing list