On 12/11/24 08:44, Peter Maydell wrote:
All of the TLBI insns with an NXS variant put that variant at the
same encoding but with a CRn field that is one greater than for the
original TLBI insn.  To avoid having to define every TLBI insn
effectively twice, once in the normal way and once in a set of cpreg
arrays that are only registered when FEAT_XS is present, we define a
new ARM_CP_ADD_TLB_NXS type flag for cpregs.  When this flag is set
in a cpreg struct and FEAT_XS is present,
define_one_arm_cp_reg_with_opaque() will automatically add a second
cpreg to the hash table for the TLBI NXS insn with:
  * the crn+1 encoding
  * an FGT field that indicates that it should honour HCR_EL2.FGTnXS
  * a name with the "NXS" suffix

(If there are future TLBI NXS insns that don't use this same
encoding convention, it is also possible to define them manually.)

Signed-off-by: Peter Maydell<peter.mayd...@linaro.org>
---
  target/arm/cpregs.h |  8 ++++++++
  target/arm/helper.c | 25 +++++++++++++++++++++++++
  2 files changed, 33 insertions(+)

Reviewed-by: Richard Henderson <richard.hender...@linaro.org>

r~

Reply via email to