• Michael Neuling's avatar
    powerpc: Introduce VSX thread_struct and CONFIG_VSX · c6e6771b
    Michael Neuling authored
    The layout of the new VSR registers and how they overlap on top of the
    legacy FPR and VR registers is:
    
                       VSR doubleword 0               VSR doubleword 1
              ----------------------------------------------------------------
      VSR[0]  |             FPR[0]            |                              |
              ----------------------------------------------------------------
      VSR[1]  |             FPR[1]            |                              |
              ----------------------------------------------------------------
              |              ...              |                              |
              |              ...              |                              |
              ----------------------------------------------------------------
      VSR[30] |             FPR[30]           |                              |
              ----------------------------------------------------------------
      VSR[31] |             FPR[31]           |                              |
              ----------------------------------------------------------------
      VSR[32] |                             VR[0]                            |
              ----------------------------------------------------------------
      VSR[33] |                             VR[1]                            |
              ----------------------------------------------------------------
              |                              ...                             |
              |                              ...                             |
              ----------------------------------------------------------------
      VSR[62] |                             VR[30]                           |
              ----------------------------------------------------------------
      VSR[63] |                             VR[31]                           |
              ----------------------------------------------------------------
    
    VSX has 64 128bit registers.  The first 32 regs overlap with the FP
    registers and hence extend them with and additional 64 bits.  The
    second 32 regs overlap with the VMX registers.
    
    This commit introduces the thread_struct changes required to reflect
    this register layout.  Ptrace and signals code is updated so that the
    floating point registers are correctly accessed from the thread_struct
    when CONFIG_VSX is enabled.
    Signed-off-by: default avatarMichael Neuling <mikey@neuling.org>
    Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
    c6e6771b
ptrace.c 23.2 KB