unicorn/qemu/target/arm
Alex Bennée babf31dfa0
target/arm: expose CPUID registers to userspace
A number of CPUID registers are exposed to userspace by modern Linux
kernels thanks to the "ARM64 CPU Feature Registers" ABI. For QEMU's
user-mode emulation we don't need to emulate the kernels trap but just
return the value the trap would have done. To avoid too much #ifdef
hackery we process ARMCPRegInfo with a new helper (modify_arm_cp_regs)
before defining the registers. The modify routine is driven by a
simple data structure which describes which bits are exported and
which are fixed.

Backports commit 6c5c0fec29bbfe36c64eca1edfd8455be46b77c6 from qemu
2019-02-15 17:27:30 -05:00
..
arm-powerctl.c arm: Clarify the logic of set_pc() 2019-02-03 17:55:30 -05:00
arm-powerctl.h ARM: Factor out ARM on/off PSCI control functions 2018-03-01 23:31:47 -05:00
arm_ldst.h Fix Thumb-1 BE32 execution and disassembly. 2018-03-02 00:20:11 -05:00
cpu-qom.h target/arm: Add "-cpu max" support 2018-03-12 10:11:49 -04:00
cpu.c target/arm: Enable TBI for user-only 2019-02-05 17:44:17 -05:00
cpu.h target/arm: expose CPUID registers to userspace 2019-02-15 17:27:30 -05:00
cpu64.c target/arm: Enable BTI for -cpu max 2019-02-05 17:15:32 -05:00
crypto_helper.c target/arm/cpu and crypto_helper: Correct bad merge and adjust to qemu code style 2018-03-12 11:57:24 -04:00
helper-a64.c target/arm: Fix int128_make128 lo, hi order in paired_cmpxchg64_be 2019-02-15 17:16:55 -05:00
helper-a64.h target/arm: Add new_pc argument to helper_exception_return 2019-01-22 15:48:15 -05:00
helper-sve.h target/arm: Rewrite vector gather first-fault loads 2018-10-08 14:15:15 -04:00
helper.c target/arm: expose CPUID registers to userspace 2019-02-15 17:27:30 -05:00
helper.h target/arm: Move helper_exception_return to helper-a64.c 2019-01-22 15:44:53 -05:00
internals.h target/arm: Compute TB_FLAGS for TBI for user-only 2019-02-05 17:43:11 -05:00
iwmmxt_helper.c target/arm: Untabify iwmmxt_helper.c 2018-08-25 04:33:44 -04:00
kvm-consts.h arm: better stub version for MISMATCH_CHECK 2018-03-02 00:13:45 -05:00
Makefile.objs target/arm: Add PAuth helpers 2019-01-22 15:27:15 -05:00
neon_helper.c target/*/cpu.h: remove softfloat.h 2018-03-08 09:58:47 -05:00
op_addsub.h Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00
op_helper.c target/arm: Move helper_exception_return to helper-a64.c 2019-01-22 15:44:53 -05:00
pauth_helper.c target/arm: Implement pauth_computepac 2019-01-22 16:35:07 -05:00
psci.c fix WFI/WFE length in syndrome register 2018-03-05 11:21:51 -05:00
sve.decode target/arm: SVE brk[ab] merging does not have s bit 2019-01-13 19:39:34 -05:00
sve_helper.c sve_helper: Use the QEMU_FLATTEN macro instead of the compiler attribute directly 2018-10-23 13:05:02 -04:00
translate-a64.c target/arm: Clean TBI for data operations in the translator 2019-02-05 17:39:12 -05:00
translate-a64.h arm: Take DisasContext as a parameter instead of TCGContext where applicable 2018-10-06 04:17:12 -04:00
translate-sve.c decodetree: Remove insn argument from trans_* expanders 2018-11-11 08:27:01 -05:00
translate.c target/arm: Emit barriers for A32/T32 load-acquire/store-release insns 2019-01-13 19:48:27 -05:00
translate.h target/arm: Add TBFLAG_A64_TBID, split out gen_top_byte_ignore 2019-02-05 17:20:11 -05:00
unicorn.h Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00
unicorn_aarch64.c unicorn_aarch64: Use aa64_vfp_qreg instead of aa32_vfp_dreg 2018-09-03 07:47:40 +01:00
unicorn_arm.c unicorn_arm: Allow for read/write of UC_ARM_REG_FPSCR 2018-09-03 21:03:55 +01:00
vec_helper.c target/arm/vec_helper: Remove use of void pointer arithmetic 2019-01-30 14:03:26 -05:00