unicorn/qemu/target-arm
Fabian Aggeler 90c47cb40f
target-arm: add banked register accessors
If EL3 is in AArch32 state certain cp registers are banked (secure and
non-secure instance). When reading or writing to coprocessor registers
the following macros can be used.

- A32_BANKED macros are used for choosing the banked register based on provided
input security argument. This macro is used to choose the bank during
translation of MRC/MCR instructions that are dependent on something other
than the current secure state.
- A32_BANKED_CURRENT macros are used for choosing the banked register based on
current secure state. This is NOT to be used for choosing the bank used
during translation as it breaks monitor mode.

If EL3 is operating in AArch64 state coprocessor registers are not
banked anymore. The macros use the non-secure instance (_ns) in this
case, which is architecturally mapped to the AArch64 EL register.

Backports commit ea30a4b824ecc3c829b70eb9999ac5457dc5790f from qemu
2018-02-11 17:46:52 -05:00
..
arm_ldst.h import 2015-08-21 15:04:50 +08:00
cpu-qom.h remove slow cpu QOM casts (#815) 2017-05-02 14:56:39 +08:00
cpu.c Backport the JAZELLE feature flag 2018-02-02 08:50:18 -05:00
cpu.h target-arm: add banked register accessors 2018-02-11 17:46:52 -05:00
cpu64.c Backport the PMU feature flag 2018-02-02 08:28:27 -05:00
crypto_helper.c Arm support ported. (#736) 2017-01-23 23:30:57 +08:00
helper-a64.c target-arm: Use new revbit functions 2018-02-11 02:57:55 -05:00
helper-a64.h import 2015-08-21 15:04:50 +08:00
helper.c target-arm: add async excp target_el function 2018-02-11 17:45:09 -05:00
helper.h rework code/block tracing 2016-01-22 19:07:50 -08:00
internals.h Arm support ported. (#736) 2017-01-23 23:30:57 +08:00
iwmmxt_helper.c import 2015-08-21 15:04:50 +08:00
kvm-consts.h import 2015-08-21 15:04:50 +08:00
Makefile.objs delete sparc32_dma.h & arm-semi.c 2017-01-19 15:10:41 +08:00
neon_helper.c Arm support ported. (#736) 2017-01-23 23:30:57 +08:00
op_addsub.h import 2015-08-21 15:04:50 +08:00
op_helper.c import 2015-08-21 15:04:50 +08:00
psci.c import 2015-08-21 15:04:50 +08:00
translate-a64.c target-arm: Add condexec state to insn_start 2018-02-11 15:13:40 -05:00
translate.c target-arm: Add condexec state to insn_start 2018-02-11 15:13:40 -05:00
translate.h target-arm: Introduce DisasCompare 2018-02-10 23:45:47 -05:00
unicorn.h arm64eb: add support for ARM64 big endian. 2017-04-24 23:30:01 +08:00
unicorn_aarch64.c aarch64: Add FPCR and FPSR registers 2018-01-16 17:37:47 +00:00
unicorn_arm.c fix conflicts 2017-03-30 12:23:24 +08:00