unicorn/qemu/target/arm
Peter Maydell c2c628eb71 target/arm: Add stubs for AArch32 Neon decodetree
Add the infrastructure for building and invoking a decodetree decoder
for the AArch32 Neon encodings. At the moment the new decoder covers
nothing, so we always fall back to the existing hand-written decode.

We follow the same pattern we did for the VFP decodetree conversion
(commit 78e138bc1f672c145ef6ace74617d and following): code that deals
with Neon will be moving gradually out to translate-neon.vfp.inc,
which we #include into translate.c.

In order to share the decode files between A32 and T32, we
split Neon into 3 parts:
* data-processing
* load-store
* 'shared' encodings

The first two groups of instructions have similar but not identical
A32 and T32 encodings, so we need to manually transform the T32
encoding into the A32 one before calling the decoder; the third group
covers the Neon instructions which are identical in A32 and T32.

Backports commit 625e3dd44a15dfbe9532daa6454df3f86cf04d3e from qemu
2020-05-07 08:59:42 -04:00
..
a32-uncond.decode target/arm: Convert Unallocated memory hint 2019-11-28 02:47:41 -05:00
a32.decode target/arm: Convert SVC 2019-11-28 02:46:55 -05:00
arm-powerctl.c arm/arm-powerctl: set NSACR.{CP11, CP10} bits in arm_set_cpu_on() 2020-01-07 18:10:29 -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-param.h target/arm: Don't use a TLB for ARMMMUIdx_Stage2 2020-05-07 08:40:06 -04:00
cpu-qom.h target/arm: Make cpu_register() available for other files 2020-04-30 21:38:42 -04:00
cpu.c target/arm: Implement ARMv8.2-TTS2UXN 2020-05-07 08:49:18 -04:00
cpu.h target/arm: Use uint64_t for midr field in CPU state struct 2020-05-07 08:51:28 -04:00
cpu64.c target/arm: Use correct variable for setting 'max' cpu's ID_AA64DFR0 2020-05-07 08:50:40 -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
debug_helper.c target/arm: Stop assuming DBGDIDR always exists 2020-03-21 18:26:24 -04:00
helper-a64.c target/arm: Move helper_dc_zva to helper-a64.c 2020-04-30 06:12:26 -04:00
helper-a64.h target/arm: Use DEF_HELPER_FLAGS for helper_dc_zva 2020-04-30 06:14:45 -04:00
helper-sve.h target/arm: Convert PMULL.8 to gvec 2020-03-21 19:35:46 -04:00
helper.c target/arm: Implement ARMv8.2-TTS2UXN 2020-05-07 08:49:18 -04:00
helper.h target/arm: Vectorize integer comparison vs zero 2020-04-30 21:29:17 -04:00
internals.h target/arm: Introduce core_to_aa64_mmu_idx 2020-04-30 05:58:59 -04: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
m_helper.c target/arm: Add isar_feature_aa32_vfp_simd 2020-03-21 23:11:36 -04:00
Makefile.objs target/arm: Add stubs for AArch32 Neon decodetree 2020-05-07 08:59:42 -04:00
neon-dp.decode target/arm: Add stubs for AArch32 Neon decodetree 2020-05-07 08:59:42 -04:00
neon-ls.decode target/arm: Add stubs for AArch32 Neon decodetree 2020-05-07 08:59:42 -04:00
neon-shared.decode target/arm: Add stubs for AArch32 Neon decodetree 2020-05-07 08:59:42 -04:00
neon_helper.c target/arm: Vectorize integer comparison vs zero 2020-04-30 21:29:17 -04: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_dc_zva to helper-a64.c 2020-04-30 06:12:26 -04:00
pauth_helper.c target/arm: Use bit 55 explicitly for pauth 2020-03-21 17:59:06 -04: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 tcg: Use tlb_fill probe from tlb_vaddr_to_host 2019-05-16 18:27:03 -04:00
t16.decode target/arm: Convert T16, long branches 2019-11-28 02:53:54 -05:00
t32.decode target/arm: Convert TT 2019-11-28 02:48:06 -05:00
tlb_helper.c target/arm: Return correct IL bit in merge_syn_data_abort 2020-03-21 12:08:05 -04:00
translate-a64.c target/arm: Vectorize integer comparison vs zero 2020-04-30 21:29:17 -04:00
translate-a64.h tcg: TCGMemOp is now accelerator independent MemOp 2019-11-28 03:01:12 -05:00
translate-neon.inc.c target/arm: Add stubs for AArch32 Neon decodetree 2020-05-07 08:59:42 -04:00
translate-sve.c tcg: TCGMemOp is now accelerator independent MemOp 2019-11-28 03:01:12 -05:00
translate-vfp.inc.c target/arm/translate-vfp.inc.c: Remove duplicate simd_r32 check 2020-05-07 08:52:42 -04:00
translate.c target/arm: Add stubs for AArch32 Neon decodetree 2020-05-07 08:59:42 -04:00
translate.h target/arm: Vectorize integer comparison vs zero 2020-04-30 21:29: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 Add implementation of access to the ARM SPSR register. (#1178) 2020-01-14 09:57:55 -05:00
vec_helper.c target/arm: Vectorize integer comparison vs zero 2020-04-30 21:29:17 -04:00
vfp-uncond.decode target/arm: Split VMINMAXNM decode 2020-03-22 00:09:53 -04:00
vfp.decode target/arm: Split VFM decode 2020-03-22 00:07:53 -04:00
vfp_helper.c target/arm: Add isar_feature_any_fp16 and document naming/usage conventions 2020-03-21 18:12:02 -04:00