diff options
author | Soren Brinkmann | 2015-11-03 14:49:41 +0100 |
---|---|---|
committer | Peter Maydell | 2015-11-03 14:49:41 +0100 |
commit | 99a99c1fc8e9bfec1656ac5916c53977a93d3581 (patch) | |
tree | 061b54dc59630c9633ca671867d75975f1948d52 /target-arm/internals.h | |
parent | Merge remote-tracking branch 'remotes/kraxel/tags/pull-ui-20151103-1' into st... (diff) | |
download | qemu-99a99c1fc8e9bfec1656ac5916c53977a93d3581.tar.gz qemu-99a99c1fc8e9bfec1656ac5916c53977a93d3581.tar.xz qemu-99a99c1fc8e9bfec1656ac5916c53977a93d3581.zip |
target-arm: Add and use symbolic names for register banks
Add BANK_<cpumode> #defines to index banked registers.
Suggested-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'target-arm/internals.h')
-rw-r--r-- | target-arm/internals.h | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/target-arm/internals.h b/target-arm/internals.h index 412827bcbf..347998c8be 100644 --- a/target-arm/internals.h +++ b/target-arm/internals.h @@ -25,6 +25,16 @@ #ifndef TARGET_ARM_INTERNALS_H #define TARGET_ARM_INTERNALS_H +/* register banks for CPU modes */ +#define BANK_USRSYS 0 +#define BANK_SVC 1 +#define BANK_ABT 2 +#define BANK_UND 3 +#define BANK_IRQ 4 +#define BANK_FIQ 5 +#define BANK_HYP 6 +#define BANK_MON 7 + static inline bool excp_is_internal(int excp) { /* Return true if this exception number represents a QEMU-internal @@ -91,9 +101,9 @@ static inline void arm_log_exception(int idx) static inline unsigned int aarch64_banked_spsr_index(unsigned int el) { static const unsigned int map[4] = { - [1] = 1, /* EL1. */ - [2] = 6, /* EL2. */ - [3] = 7, /* EL3. */ + [1] = BANK_SVC, /* EL1. */ + [2] = BANK_HYP, /* EL2. */ + [3] = BANK_MON, /* EL3. */ }; assert(el >= 1 && el <= 3); return map[el]; |