svn commit: r279189 - in head/sys/powerpc: aim fpu include powerpc

Nathan Whitehorn nwhitehorn at freebsd.org
Mon Feb 23 03:30:22 UTC 2015


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


More information about the svn-src-all mailing list