xqemu/target/arm
Roman Kapl c2d9644e6d target/arm: Fix crash on conditional instruction in an IT block
If an instruction is conditional (like CBZ) and it is executed
conditionally (using the ITx instruction), a jump to an undefined
label is generated, and QEMU crashes.

CBZ in IT block is an UNPREDICTABLE behavior, but we should not
crash.  Honouring the condition code is allowed by the spec in this
case (constrained unpredictable, ARMv8, section K1.1.7), and matches
what we do for other "UNPREDICTABLE inside an IT block" instructions.

Fix the 'skip on condition' code to create a new label only if it
does not already exist.  Previously multiple labels were created, but
only the last one of them was set.

Signed-off-by: Roman Kapl <rka@sysgo.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20180816120533.6587-1-rka@sysgo.com
[PMM: fixed ^ 1 being applied to wrong argument, fixed typo]
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2018-08-20 11:24:31 +01:00
..
Makefile.objs target/arm: Implement SVE predicate test 2018-05-18 17:48:08 +01:00
arch_dump.c target/arm: Add aa{32, 64}_vfp_{dreg, qreg} helpers 2018-01-25 11:45:29 +00:00
arm-powerctl.c target: Do not include "exec/exec-all.h" if it is not necessary 2018-06-01 14:15:10 +02:00
arm-powerctl.h target-arm/powerctl: defer cpu reset work to CPU context 2017-02-24 10:32:46 +00:00
arm-semi.c Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
arm_ldst.h target: Do not include "exec/exec-all.h" if it is not necessary 2018-06-01 14:15:10 +02:00
cpu-qom.h target/arm: Add "-cpu max" support 2018-03-09 17:09:44 +00:00
cpu.c target/arm: add "cortex-m0" CPU model 2018-08-16 14:05:28 +01:00
cpu.h target/arm: Adjust FPCR_MASK for FZ16 2018-08-16 14:29:58 +01:00
cpu64.c target/arm: Add sve-max-vq cpu property to -cpu max 2018-08-16 14:05:28 +01:00
crypto_helper.c target: Do not include "exec/exec-all.h" if it is not necessary 2018-06-01 14:15:10 +02:00
gdbstub.c arm: fix malloc type mismatch 2018-05-31 14:50:52 +01:00
gdbstub64.c Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
helper-a64.c tcg: Fix helper function vs host abi for float16 2018-05-31 14:50:51 +01:00
helper-a64.h target/arm: Implement FCMP for fp16 2018-05-15 14:58:43 +01:00
helper-sve.h target/arm: Implement SVE fp complex multiply add 2018-06-29 15:11:12 +01:00
helper.c target/arm: Ignore float_flag_input_denormal from fp_status_f16 2018-08-16 14:29:58 +01:00
helper.h target/arm: Implement SVE dot product (indexed) 2018-06-29 15:11:15 +01:00
idau.h target/arm: Define an IDAU interface 2018-03-02 11:03:45 +00:00
internals.h target/arm: Add pre-EL change hooks 2018-04-26 11:04:39 +01:00
iwmmxt_helper.c target: Do not include "exec/exec-all.h" if it is not necessary 2018-06-01 14:15:10 +02:00
kvm-consts.h arm: add trailing ; after MISMATCH_CHECK 2017-02-01 03:37:18 +02:00
kvm-stub.c Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
kvm.c target/arm: Allow KVM device address overwriting 2018-06-22 13:28:35 +01:00
kvm32.c target/arm: Remove redundant DIV detection for KVM 2018-06-29 15:11:18 +01:00
kvm64.c target/arm: Query host CPU features on-demand at instance init 2018-03-09 17:09:44 +00:00
kvm_arm.h target/arm: Allow KVM device address overwriting 2018-06-22 13:28:35 +01:00
machine.c target/arm: Add dummy needed functions to M profile vmstate subsections 2018-08-06 16:19:33 +01:00
monitor.c qapi: Empty out qapi-schema.json 2018-03-02 13:45:50 -06:00
neon_helper.c target: Do not include "exec/exec-all.h" if it is not necessary 2018-06-01 14:15:10 +02:00
op_addsub.h Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
op_helper.c target/arm: Honour HCR_EL2.TGE when raising synchronous exceptions 2018-08-14 17:17:21 +01:00
psci.c target: Do not include "exec/exec-all.h" if it is not necessary 2018-06-01 14:15:10 +02:00
sve.decode target/arm: Implement SVE dot product (indexed) 2018-06-29 15:11:15 +01:00
sve_helper.c target/arm: Use fp_status_fp16 for do_fmpa_zpzzz_h 2018-08-16 14:29:58 +01:00
trace-events target/arm/kvm: Translate the MSI doorbell in kvm_arch_fixup_msi_route 2018-05-04 18:52:58 +01:00
translate-a64.c target/arm: Fix aa64 FCADD and FCMLA decode 2018-08-16 14:29:58 +01:00
translate-a64.h target/arm: Extend vec_reg_offset to larger sizes 2018-06-15 15:23:34 +01:00
translate-sve.c target/arm: Use FZ not FZ16 for SVE FCVT single-half and double-half 2018-08-16 14:29:58 +01:00
translate.c target/arm: Fix crash on conditional instruction in an IT block 2018-08-20 11:24:31 +01:00
translate.h target/arm: convert conversion helpers to fpst/ahp_flag 2018-05-17 15:27:09 -07:00
vec_helper.c target/arm: Implement SVE dot product (indexed) 2018-06-29 15:11:15 +01:00