• Ard Biesheuvel's avatar
    arm64: add abstractions for FPSIMD state manipulation · c51f9269
    Ard Biesheuvel authored
    There are two tacit assumptions in the FPSIMD handling code that will no longer
    hold after the next patch that optimizes away some FPSIMD state restores:
    . the FPSIMD registers of this CPU contain the userland FPSIMD state of
      task 'current';
    . when switching to a task, its FPSIMD state will always be restored from
      memory.
    
    This patch adds the following functions to abstract away from straight FPSIMD
    register file saves and restores:
    - fpsimd_preserve_current_state -> ensure current's FPSIMD state is saved
    - fpsimd_update_current_state -> replace current's FPSIMD state
    
    Where necessary, the signal handling and fork code are updated to use the above
    wrappers instead of poking into the FPSIMD registers directly.
    Signed-off-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
    c51f9269
fpsimd.h 1.73 KB