You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
qemu/target/arm/tcg
Harald van Dijk 7248dab3c9 target/arm: Fix assert on BRA.
trans_BRA does

    gen_a64_set_pc(s, dst);
    set_btype_for_br(s, a->rn);

gen_a64_set_pc does

    s->pc_save = -1;

set_btype_for_br (if aa64_bti is enabled and the register is not x16 or
x17) does

    gen_pc_plus_diff(s, pc, 0);

gen_pc_plus_diff does

    assert(s->pc_save != -1);

Hence, this assert is getting hit. We need to call set_btype_for_br
before gen_a64_set_pc, and there is nothing in set_btype_for_br that
depends on gen_a64_set_pc having already been called, so this commit
simply swaps the calls.

(The commit message for 64678fc45d says that set_brtype_for_br()
must be "moved after" get_a64_set_pc(), but this is a mistake in
the commit message -- the actual changes in that commit move
set_brtype_for_br() *before* get_a64_set_pc() and this is necessary
to avoid the assert.)

Cc: qemu-stable@nongnu.org
Fixes: 64678fc45d ("target/arm: Fix BTI versus CF_PCREL")
Signed-off-by: Harald van Dijk <hdijk@accesssoftek.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: d2265ebb-84bc-41b7-a2d7-05dc9a5a2055@accesssoftek.com
[PMM: added note about 64678fc45d to commit message]
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
1 day ago
..
a32-uncond.decode
a32.decode
a64.decode target/arm: Implement GCSB 2 months ago
arith_helper.c target/arm/tcg/arith_helper: compile file once 7 months ago
arm_ldst.h target/arm: Move translate-a32.h, arm_ldst.h, sve_ldst_internal.h to tcg/ 3 years ago
cpregs-at.c target/arm: Implement FEAT_ATS1A 3 months ago
cpu-v7m.c arm/cpu: store clidr into the idregs array 5 months ago
cpu32.c target/arm: Remove deprecated pxa CPU family 3 months ago
cpu64.c target/arm: Enable FEAT_AIE for -cpu max 1 month ago
crypto_helper.c target/arm/tcg/crypto_helper: compile file once 7 months ago
gengvec.c target/arm: Introduce gen_gvec_urecpe, gen_gvec_ursqrte 12 months ago
gengvec64.c target/arm: Introduce gen_gvec_sve2_sqdmulh 5 months ago
helper-a64.c target/arm: Implement EXLOCK check during exception return 2 months ago
helper-a64.h target/arm: Make helper_exception_return system-only 2 months ago
helper-mve.h target/arm: Move helper-{a64,mve,sme,sve}.h to tcg/ 3 years ago
helper-sme.h target/arm: Expand the descriptor for SME/SVE memory ops to i64 4 months ago
helper-sve.h target/arm: Expand the descriptor for SME/SVE memory ops to i64 4 months ago
helper.h target/arm: Remove iwmmxt helper functions 3 months ago
hflags.c target/arm: Add GCS enable and trap levels to DisasContext 2 months ago
m-nocp.decode
m_helper.c target/arm: call plugin trap callbacks 1 month ago
meson.build target/arm: Remove iwmmxt helper functions 3 months ago
mte_helper.c target/arm: Remove unused env argument from regime_el 2 months ago
mte_helper.h target/arm: Make some MTE helpers widely available 1 year ago
mve.decode
mve_helper.c target/arm: Move do_urshr, do_srshr to vec_internal.h 5 months ago
neon-dp.decode target/arm: Convert VQSHL, VQSHLU to gvec 1 year ago
neon-ls.decode
neon-shared.decode
neon_helper.c target/arm: Implement SME2 Multiple and Single SVE Destructive 5 months ago
op_addsub.c.inc target/arm: Move minor arithmetic helpers out of helper.c 11 months ago
op_helper.c target/arm: Implement EXLOCKException for ELR_ELx and SPSR_ELx 2 months ago
pauth_helper.c include: Remove 'exec/exec-all.h' 7 months ago
psci.c target/arm: Share ARM_PSCI_CALL trace event between TCG and HVF 1 month ago
sme-fa64.decode
sme.decode target/arm: Implement SME2 BFMOPA (non-widening) 5 months ago
sme_helper.c target/arm: Pack mtedesc into upper 32 bits of descriptor 4 months ago
sve.decode target/arm: LD1Q, ST1Q are vector + scalar, not scalar + vector 4 months ago
sve_helper.c target/arm: Fix LD1W, LD1D to 128-bit elements 4 months ago
sve_ldst_internal.h target/arm: Move ld1qq and st1qq primitives to sve_ldst_internal.h 5 months ago
t16.decode
t32.decode target/arm: Use PLD, PLDW, PLI not NOP for t32 2 years ago
tlb-insns.c target/arm: Introduce mmu indexes for GCS 2 months ago
tlb_helper.c target/arm: Implement gcs bit for data abort 2 months ago
translate-a32.h target/arm: Implement store_cpu_field_low32() macro 1 year ago
translate-a64.c target/arm: Fix assert on BRA. 1 day ago
translate-a64.h target/arm: Expand the descriptor for SME/SVE memory ops to i64 4 months ago
translate-m-nocp.c target/arm: Rename FPCR_ QC, NZCV macros to FPSR_ 1 year ago
translate-mve.c tcg: Rename cpu_env to tcg_env 2 years ago
translate-neon.c accel/tcg: Introduce and use MO_ALIGN_TLB_ONLY 1 month ago
translate-sme.c target/arm: Expand the descriptor for SME/SVE memory ops to i64 4 months ago
translate-sve.c target/arm: LD1Q, ST1Q are vector + scalar, not scalar + vector 4 months ago
translate-vfp.c target/arm: Use FPST_A32_F16 in A32 decoder 10 months ago
translate.c target/arm: Fix accidental write to TCG constant 3 weeks ago
translate.h accel/tcg: Introduce and use MO_ALIGN_TLB_ONLY 1 month ago
vec_helper.c target/arm: Add BFMUL (indexed) 4 months ago
vec_internal.h target/arm: Support FPCR.AH in SME FMOPS, BFMOPS 5 months ago
vfp-uncond.decode
vfp.decode target/arm: Correct names of VFP VFNMA and VFNMS insns 1 year ago
vfp_helper.c target/arm: Introduce FPST_ZA, FPST_ZA_F16 5 months ago