arm: Rewrite ERET to behave according to the ARMv8 ARM
authorAndreas Sandberg <andreas.sandberg@arm.com>
Thu, 2 Jun 2016 12:41:26 +0000 (13:41 +0100)
committerAndreas Sandberg <andreas.sandberg@arm.com>
Thu, 2 Jun 2016 12:41:26 +0000 (13:41 +0100)
commit660fbd543f7c84dec81cd17bdb4ff08f954aec77
treea03fb18c83b32031b5331767e3067a026d641775
parentf48ad5b29d6f291b4f3679ff5fb7b5beae10d6fa
arm: Rewrite ERET to behave according to the ARMv8 ARM

The ERET instruction doesn't set PSTATE correctly in some cases
(particularly when returning to aarch32 code). Among other things,
this breaks EL0 thumb code when using a 64-bit kernel. This changeset
updates the ERET implementation to match the ARM ARM.

Change-Id: I408e7c69a23cce437859313dfe84e68744b07c98
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Nathanael Premillieu <nathanael.premillieu@arm.com>
src/arch/arm/insts/static_inst.cc
src/arch/arm/insts/static_inst.hh
src/arch/arm/isa/insts/branch64.isa
src/arch/arm/isa/operands.isa
src/arch/arm/miscregs.hh
src/arch/arm/utility.hh