Skip to content
Snippets Groups Projects
  1. Nov 03, 2020
  2. Nov 02, 2020
  3. Oct 27, 2020
  4. Oct 26, 2020
  5. Oct 22, 2020
  6. Oct 20, 2020
    • Peter Maydell's avatar
      target/arm: Implement FPSCR.LTPSIZE for M-profile LOB extension · 8128c8e8
      Peter Maydell authored
      
      If the M-profile low-overhead-branch extension is implemented, FPSCR
      bits [18:16] are a new field LTPSIZE.  If MVE is not implemented
      (currently always true for us) then this field always reads as 4 and
      ignores writes.
      
      These bits used to be the vector-length field for the old
      short-vector extension, so we need to take care that they are not
      misinterpreted as setting vec_len. We do this with a rearrangement
      of the vfp_set_fpscr() code that deals with vec_len, vec_stride
      and also the QC bit; this obviates the need for the M-profile
      only masking step that we used to have at the start of the function.
      
      We provide a new field in CPUState for LTPSIZE, even though this
      will always be 4, in preparation for MVE, so we don't have to
      come back later and split it out of the vfp.xregs[FPSCR] value.
      (This state struct field will be saved and restored as part of
      the FPSCR value via the vmstate_fpscr in machine.c.)
      
      Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
      Reviewed-by: default avatarRichard Henderson <richard.henderson@linaro.org>
      Message-id: 20201019151301.2046-11-peter.maydell@linaro.org
      8128c8e8
Loading