• Paul Burton's avatar
    MIPS: ptrace: introduce NT_MIPS_MSA regset · 3cd64083
    Paul Burton authored
    The current methods for obtaining FP context via ptrace only provide
    either 32 or 64 bits per data register. With MSA, where vector registers
    are aliased with scalar FP data registers, those registers are 128 bits
    wide. Thus a new mechanism is required for userland to access those
    registers via ptrace. This patch introduces an NT_MIPS_MSA regset which
    provides, in this order:
    
      - The full 128 bits value of each vector register, in native
        endianness saved as though elements are doubles. That is, the format
        of each vector register is as would be obtained by saving it to
        memory using an st.d instruction.
    
      - The 32 bit scalar FP implementation register (FIR).
    
      - The 32 bit scalar FP control & status register (FCSR).
    
      - The 32 bit MSA implementation register (MSAIR).
    
      - The 32 bit MSA control & status register (MSACSR).
    
    The provision of the FIR & FCSR registers in addition to the MSA
    equivalents allows scalar FP context to be retrieved as a subset of
    the context available via this regset. Along with the MSA equivalents
    they also nicely form the final 128 bit "register" of the regset.
    Signed-off-by: default avatarPaul Burton <paul.burton@mips.com>
    Patchwork: https://patchwork.linux-mips.org/patch/21180/
    Cc: linux-mips@linux-mips.org
    3cd64083
ptrace.c 35.5 KB