On 02/22/15 17:21, Konstantin Belousov wrote:
On Sun, Feb 22, 2015 at 09:40:28PM +0000, Nathan Whitehorn wrote:
Author: nwhitehorn
Date: Sun Feb 22 21:40:27 2015
New Revision: 279189
URL: https://svnweb.freebsd.org/changeset/base/279189
Log:
Kernel support for the Vector-Scalar eXtension (VSX) found on the POWER7
and POWER8. This instruction set unifies the 32 64-bit scalar floating
point registers with the 32 128-bit vector registers into a single bank
of 64 128-bit registers. Kernel support mostly amounts to saving and
restoring the wider version of the floating point registers and making
sure that both scalar FP and vector registers are enabled once a VSX
instruction is executed. get_mcontext() and friends currently cannot
see the high bits, which will require a little more work.
As the system compiler (GCC 4.2) does not support VSX, making use of this
from userland requires either newer GCC or clang.
Handling the similar issue (exploding of the machine state size) for x86
resulted in the creation of the getcontextx(3) API. It is both get/set
context(2) syscalls and signal handling which require modifications.
For signal handlers and sigreturn(2), it is possible to make it transparent
for the consumers, but not for *context(2), since mcontext_t is explicit
type allocated by callers.
Thanks! I had forgotten about the signal handling issue. Will look into
this tomorrow.
-Nathan
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"