qemu/target/arm
Richard Henderson 4b4dc9750a target/arm: Fix temp double-free in sve ldr/str
The temp that gets assigned to clean_addr has been allocated with
new_tmp_a64, which means that it will be freed at the end of the
instruction.  Freeing it earlier leads to assertion failure.

The loop creates a complication, in which we allocate a new local
temp, which does need freeing, and the final code path is shared
between the loop and non-loop.

Fix this complication by adding new_tmp_a64_local so that the new
local temp is freed at the end, and can be treated exactly like
the non-loop path.

Fixes: bba87d0a0f
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-id: 20200702175605.1987125-1-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2020-07-03 16:59:43 +01:00
..
a32-uncond.decode
a32.decode
arch_dump.c target/arm: Add isar_feature_aa32_vfp_simd 2020-02-28 16:14:57 +00:00
arm_ldst.h
arm-powerctl.c
arm-powerctl.h
arm-semi.c
cpu64.c target/arm: Enable MTE 2020-06-26 14:32:24 +01:00
cpu_tcg.c target/arm: Use correct GDB XML for M-profile cores 2020-05-14 15:03:08 +01:00
cpu-param.h target/arm: Don't use a TLB for ARMMMUIdx_Stage2 2020-05-04 10:32:46 +01:00
cpu-qom.h target/arm: Make cpu_register() available for other files 2020-04-30 15:35:41 +01:00
cpu.c target/arm: Create tagged ram when MTE is enabled 2020-06-26 14:31:12 +01:00
cpu.h target/arm: kvm: Handle misconfigured dabt injection 2020-07-03 16:59:42 +01:00
crypto_helper.c target/arm: Split helper_crypto_sm3tt 2020-06-05 17:23:09 +01:00
debug_helper.c target/arm: Stop assuming DBGDIDR always exists 2020-02-21 16:07:01 +00:00
gdbstub64.c gdbstub: extend GByteArray to read register helpers 2020-03-17 17:38:38 +00:00
gdbstub.c target/arm: Use correct GDB XML for M-profile cores 2020-05-14 15:03:08 +01:00
helper-a64.c target/arm: Simplify DC_ZVA 2020-06-26 14:31:12 +01:00
helper-a64.h target/arm: Add helper_mte_check_zva 2020-06-26 14:31:12 +01:00
helper-sve.h target/arm: Add mte helpers for sve scatter/gather memory ops 2020-06-26 14:31:12 +01:00
helper.c target/arm: Cache the Tagged bit for a page in MemTxAttrs 2020-06-26 14:31:12 +01:00
helper.h target/arm: Implement LDG, STG, ST2G instructions 2020-06-26 14:31:12 +01:00
idau.h
internals.h target/arm: Always pass cacheattr to get_phys_addr 2020-06-26 14:31:12 +01:00
iwmmxt_helper.c
kvm32.c target/arm: kvm: Handle misconfigured dabt injection 2020-07-03 16:59:42 +01:00
kvm64.c target/arm: kvm: Handle misconfigured dabt injection 2020-07-03 16:59:42 +01:00
kvm_arm.h target/arm: kvm: Handle misconfigured dabt injection 2020-07-03 16:59:42 +01:00
kvm-consts.h
kvm-stub.c
kvm.c target/arm: kvm: Handle misconfigured dabt injection 2020-07-03 16:59:42 +01:00
m_helper.c target/arm: Always pass cacheattr to get_phys_addr 2020-06-26 14:31:12 +01:00
machine.c target/arm: Add isar_feature_aa64_fp_simd, isar_feature_aa32_vfp 2020-02-28 16:14:57 +00:00
Makefile.objs target/arm: Implement the IRG instruction 2020-06-26 14:31:12 +01:00
monitor.c Use &error_abort instead of separate assert() 2020-03-17 16:05:40 +01:00
mte_helper.c target/arm: Add allocation tag storage for system mode 2020-06-26 14:31:12 +01:00
neon_helper.c target/arm: Convert Neon VADD, VSUB, VABD 3-reg-same insns to decodetree 2020-05-14 15:03:09 +01:00
neon-dp.decode target/arm: Convert Neon VTRN to decodetree 2020-06-23 11:39:47 +01:00
neon-ls.decode target/arm: Convert Neon 'load/store single structure' to decodetree 2020-05-04 12:57:56 +01:00
neon-shared.decode target/arm: Convert VFM[AS]L (scalar) to decodetree 2020-05-04 12:57:56 +01:00
op_addsub.h
op_helper.c target/arm: Implement LDG, STG, ST2G instructions 2020-06-26 14:31:12 +01:00
pauth_helper.c
psci.c
sve_helper.c target/arm: Complete TBI clearing for user-only for SVE 2020-06-26 14:31:12 +01:00
sve.decode
t16.decode
t32.decode target/arm: Use a non-overlapping group for misc control 2020-06-09 09:21:19 -07:00
tlb_helper.c target/arm: Cache the Tagged bit for a page in MemTxAttrs 2020-06-26 14:31:12 +01:00
trace-events
translate-a64.c target/arm: Fix temp double-free in sve ldr/str 2020-07-03 16:59:43 +01:00
translate-a64.h target/arm: Fix temp double-free in sve ldr/str 2020-07-03 16:59:43 +01:00
translate-neon.inc.c target/arm: Move some functions used only in translate-neon.inc.c to that file 2020-06-23 11:39:47 +01:00
translate-sve.c target/arm: Fix temp double-free in sve ldr/str 2020-07-03 16:59:43 +01:00
translate-vfp.inc.c target/arm: Rename DISAS_UPDATE to DISAS_UPDATE_EXIT 2020-06-26 14:31:12 +01:00
translate.c target/arm: Add DISAS_UPDATE_NOCHAIN 2020-06-26 14:31:12 +01:00
translate.h target/arm: Implement the LDGM, STGM, STZGM instructions 2020-06-26 14:31:12 +01:00
vec_helper.c target/arm: Convert aes and sm4 to gvec helpers 2020-06-05 17:23:09 +01:00
vec_internal.h target/arm: Convert aes and sm4 to gvec helpers 2020-06-05 17:23:09 +01:00
vfp_helper.c softfloat: Name compare relation enum 2020-05-19 08:41:45 -07:00
vfp-uncond.decode target/arm: Split VMINMAXNM decode 2020-02-28 16:14:57 +00:00
vfp.decode target/arm: Split VFM decode 2020-02-28 16:14:57 +00:00