unicorn/qemu
Peter Maydell db9901f2ad
target-arm: Avoid buffer overrun on UNPREDICTABLE ldrd/strd
A LDRD or STRD where rd is not an even number is UNPREDICTABLE.
We were letting this fall through, which is OK unless rd is 15,
in which case we would attempt to do a load_reg or store_reg
to a nonexistent r16 for the second half of the double-word.
Catch the odd-numbered-rd cases and UNDEF them instead.

To do this we rearrange the structure of the code a little
so we can put the UNDEF catches at the top before we've
allocated TCG temporaries.

Backports commit a4bb522ee51087af61998f290d12ba2e14c7910e from qemu
2018-02-12 17:17:23 -05:00
..
default-configs arm64eb: add support for ARM64 big endian. 2017-04-24 23:30:01 +08:00
docs docs: clarify memory region lifecycle 2018-02-12 15:11:21 -05:00
fpu softfloat: expand out STATUS macro 2018-02-12 13:43:13 -05:00
hw target-i386: clear bsp bit when designating bsp 2018-02-12 16:40:35 -05:00
include target-i386: clear bsp bit when designating bsp 2018-02-12 16:40:35 -05:00
qapi This code should now build the x86_x64-softmmu part 2. 2017-01-19 22:50:28 +11:00
qobject This code should now build the x86_x64-softmmu part 2. 2017-01-19 22:50:28 +11:00
qom qom: Fix object_property_add_alias() with [*] 2018-02-12 16:33:58 -05:00
scripts Save copies of generated qapi files. 2017-01-21 00:30:50 +11:00
target-arm target-arm: Avoid buffer overrun on UNPREDICTABLE ldrd/strd 2018-02-12 17:17:23 -05:00
target-i386 target-i386: remove superfluous TARGET_HAS_SMC macro 2018-02-12 16:41:55 -05:00
target-m68k target-*: Increment num_insns immediately after tcg_gen_insn_start 2018-02-11 12:46:30 -05:00
target-mips target-mips: save cpu state before calling MSA load and store helpers 2018-02-12 16:31:17 -05:00
target-sparc target-*: Increment num_insns immediately after tcg_gen_insn_start 2018-02-11 12:46:30 -05:00
tcg tcg: Allow extra data to be attached to insn_start 2018-02-11 13:03:51 -05:00
util Arm support ported. (#736) 2017-01-23 23:30:57 +08:00
aarch64.h exec: introduce cpu_reload_memory_map 2018-02-12 15:09:49 -05:00
aarch64eb.h exec: introduce cpu_reload_memory_map 2018-02-12 15:09:49 -05:00
accel.c Automated leading tab to spaces conversion. 2017-01-21 12:28:22 +11:00
arm.h exec: introduce cpu_reload_memory_map 2018-02-12 15:09:49 -05:00
armeb.h exec: introduce cpu_reload_memory_map 2018-02-12 15:09:49 -05:00
CODING_STYLE import 2015-08-21 15:04:50 +08:00
configure tcg: Drop ia64 host support 2018-02-04 18:33:02 -05:00
COPYING import 2015-08-21 15:04:50 +08:00
COPYING.LIB import 2015-08-21 15:04:50 +08:00
cpu-exec.c exec: make iotlb RCU-friendly 2018-02-12 15:20:39 -05:00
cpus.c cleanup more synchronization code 2017-01-09 14:05:39 +08:00
cputlb.c exec: make iotlb RCU-friendly 2018-02-12 15:20:39 -05:00
exec.c exec: make iotlb RCU-friendly 2018-02-12 15:20:39 -05:00
gen_all_header.sh arm64eb: add support for ARM64 big endian. 2017-04-24 23:30:01 +08:00
glib_compat.c Merge branch 'master' into msvc2 2017-04-21 01:17:00 +08:00
HACKING import 2015-08-21 15:04:50 +08:00
header_gen.py exec: introduce cpu_reload_memory_map 2018-02-12 15:09:49 -05:00
ioport.c This code should now build the x86_x64-softmmu part 2. 2017-01-19 22:50:28 +11:00
LICENSE import 2015-08-21 15:04:50 +08:00
m68k.h exec: introduce cpu_reload_memory_map 2018-02-12 15:09:49 -05:00
Makefile cleanup qemu/default-configs/ 2017-01-19 14:52:30 +08:00
Makefile.objs cleanup qemu/Makefile.objs 2017-01-21 21:50:12 +08:00
Makefile.target tcg: Move some opcode generation functions out of line 2018-02-09 08:10:00 -05:00
memory.c merge msvc with master 2017-02-24 10:39:36 +08:00
memory_mapping.c revert to use of g_free to make future qemu integrations easier (#695) 2016-12-21 22:28:36 +08:00
mips.h exec: introduce cpu_reload_memory_map 2018-02-12 15:09:49 -05:00
mips64.h exec: introduce cpu_reload_memory_map 2018-02-12 15:09:49 -05:00
mips64el.h exec: introduce cpu_reload_memory_map 2018-02-12 15:09:49 -05:00
mipsel.h exec: introduce cpu_reload_memory_map 2018-02-12 15:09:49 -05:00
powerpc.h exec: introduce cpu_reload_memory_map 2018-02-12 15:09:49 -05:00
qapi-schema.json import 2015-08-21 15:04:50 +08:00
qemu-log.c import 2015-08-21 15:04:50 +08:00
qemu-timer.c timer is redundant 2017-01-20 16:46:58 +08:00
rules.mak import 2015-08-21 15:04:50 +08:00
softmmu_template.h exec: make iotlb RCU-friendly 2018-02-12 15:20:39 -05:00
sparc.h exec: introduce cpu_reload_memory_map 2018-02-12 15:09:49 -05:00
sparc64.h exec: introduce cpu_reload_memory_map 2018-02-12 15:09:49 -05:00
tcg-runtime.c platform.h move #3 2017-01-21 00:13:21 +11:00
translate-all.c target-i386: remove superfluous TARGET_HAS_SMC macro 2018-02-12 16:41:55 -05:00
translate-all.h import 2015-08-21 15:04:50 +08:00
unicorn_common.h This code should now build the x86_x64-softmmu part 2. 2017-01-19 22:50:28 +11:00
VERSION import 2015-08-21 15:04:50 +08:00
vl.c This code should now build the x86_x64-softmmu part 2. 2017-01-19 22:50:28 +11:00
vl.h import 2015-08-21 15:04:50 +08:00
x86_64.h exec: introduce cpu_reload_memory_map 2018-02-12 15:09:49 -05:00