unicorn/qemu/target/arm
Peter Maydell 87c8c0fde7
target/arm: Set FPCCR.S when executing M-profile floating point insns
The M-profile FPCCR.S bit indicates the security status of
the floating point context. In the pseudocode ExecuteFPCheck()
function it is unconditionally set to match the current
security state whenever a floating point instruction is
executed.

Implement this by adding a new TB flag which tracks whether
FPCCR.S is different from the current security state, so
that we only need to emit the code to update it in the
less-common case when it is not already set correctly.

Note that we will add the handling for the other work done
by ExecuteFPCheck() in later commits.

Backports commit 6d60c67a1a03be32c3342aff6604cdc5095088d1 from qemu
2019-04-30 10:50:17 -04: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: Overlap VECSTRIDE and XSCALE_CPAR TB flags 2019-04-30 10:45:14 -04:00
cpu.h target/arm: Set FPCCR.S when executing M-profile floating point insns 2019-04-30 10:50:17 -04:00
cpu64.c target/arm/translate: Synchronize with Qemu 2019-04-27 10:13:01 -04: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: Handle AArch32 CRC instructions 2019-04-27 10:50:25 -04:00
helper-a64.h target/arm: Split helper_msr_i_pstate into 3 2019-03-05 22:45:11 -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: Set FPCCR.S when executing M-profile floating point insns 2019-04-30 10:50:17 -04:00
helper.h target/arm: Implement ARMv8.5-FRINT 2019-03-05 23:17:33 -05:00
internals.h target/arm: Split helper_msr_i_pstate into 3 2019-03-05 22:45: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: Split out vfp_helper.c 2019-02-22 18:48:44 -05:00
neon_helper.c target/arm: Split out FPSCR.QC to a vector field 2019-02-15 18:04:13 -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: Add set/clear_pstate_bits, share gen_ss_advance 2019-03-05 22:55:22 -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: Sychronize with qemu 2019-04-18 04:49:11 -04:00
sve_helper.c target/arm: Sychronize with qemu 2019-04-18 04:49:11 -04:00
translate-a64.c exec: Backport tb_cflags accessor 2019-04-22 06:12:59 -04: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 target/arm: Check access permission to ADDVL/ADDPL/RDVL 2019-03-19 05:42:59 -04:00
translate.c target/arm: Set FPCCR.S when executing M-profile floating point insns 2019-04-30 10:50:17 -04:00
translate.h target/arm: Set FPCCR.S when executing M-profile floating point insns 2019-04-30 10:50:17 -04: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: Treat registers as unsigned values in casts 2019-04-26 08:48:31 -04:00
vec_helper.c target/arm: Add helpers for FMLAL 2019-02-28 15:31:48 -05:00
vfp_helper.c target/arm: Make sure M-profile FPSCR RES0 bits are not settable 2019-04-30 10:12:17 -04:00