unicorn/qemu/target
Richard Henderson 57c66389c2 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: bba87d0a0f4

Backports commit 4b4dc9750a0aa0b9766bd755bf6512a84744ce8a from qemu
2021-02-25 23:10:37 -05:00
..
arm target/arm: Fix temp double-free in sve ldr/str 2021-02-25 23:10:37 -05:00
i386 target/i386: reimplement fpatan using floatx80 operations 2021-02-25 13:48:32 -05:00
m68k softfloat: merge floatx80_mod and floatx80_rem 2021-02-25 13:34:05 -05:00
mips target/mips: Support variable page size 2020-06-14 21:09:51 -04:00
riscv target/riscv: Implement checks for hfence 2021-02-25 12:03:57 -05:00
sparc softfloat: Name compare relation enum 2020-05-21 18:08:52 -04:00