Date: Mon, 23 Feb 2015 03:21:48 +0200 From: Konstantin Belousov <kostikbel@gmail.com> To: Nathan Whitehorn <nwhitehorn@FreeBSD.org> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r279189 - in head/sys/powerpc: aim fpu include powerpc Message-ID: <20150223012148.GN74514@kib.kiev.ua> In-Reply-To: <201502222140.t1MLeSFg075690@svn.freebsd.org> References: <201502222140.t1MLeSFg075690@svn.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20150223012148.GN74514>