target/arm: Permit accesses to ELR_Hyp from Hyp mode via MSR/MRS (banked)
commitaec4dd09f172ee64c19222b78269d5952fd9c1dc
authorPeter Maydell <peter.maydell@linaro.org>
Mon, 20 Aug 2018 10:24:32 +0000 (20 11:24 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Mon, 20 Aug 2018 10:24:32 +0000 (20 11:24 +0100)
treeca949782d84fcbed0980f521f2771d3fcf60c36f
parent68e78e332cb1c3f8b0317a0443acb2b5e190f0dd
target/arm: Permit accesses to ELR_Hyp from Hyp mode via MSR/MRS (banked)

The MSR (banked) and MRS (banked) instructions allow accesses to ELR_Hyp
from either Monitor or Hyp mode. Our translate time check
was overly strict and only permitted access from Monitor mode.

The runtime check we do in msr_mrs_banked_exc_checks() had the
correct code in it, but never got there because of the earlier
"currmode == tgtmode" check. Special case ELR_Hyp.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Reviewed-by: Luc Michel <luc.michel@greensocs.com>
Message-id: 20180814124254.5229-9-peter.maydell@linaro.org
target/arm/op_helper.c
target/arm/translate.c