fix WFI/WFE length in syndrome register
commit58803318e5a546b2eb0efd7a053ed36b6c29ae6f
authorStefano Stabellini <sstabellini@kernel.org>
Tue, 31 Oct 2017 11:50:50 +0000 (31 11:50 +0000)
committerPeter Maydell <peter.maydell@linaro.org>
Tue, 31 Oct 2017 11:50:50 +0000 (31 11:50 +0000)
treeef357a57b967e898d4ac94d2a55ed8398d0a7a91
parentabf6e752e55b2f5afb48303429dea2db7c3a62de
fix WFI/WFE length in syndrome register

WFI/E are often, but not always, 4 bytes long. When they are, we need to
set ARM_EL_IL_SHIFT in the syndrome register.

Pass the instruction length to HELPER(wfi), use it to decrement pc
appropriately and to pass an is_16bit flag to syn_wfx, which sets
ARM_EL_IL_SHIFT if needed.

Set dc->insn in both arm_tr_translate_insn and thumb_tr_translate_insn.

Signed-off-by: Stefano Stabellini <sstabellini@kernel.org>
Message-id: alpine.DEB.2.10.1710241055160.574@sstabellini-ThinkPad-X260
[PMM: move setting of dc->insn for Thumb so it is correct for 32 bit insns]
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
target/arm/helper.h
target/arm/internals.h
target/arm/op_helper.c
target/arm/psci.c
target/arm/translate-a64.c
target/arm/translate.c