unicorn/qemu
Edgar E. Iglesias 8aee797956
target-arm: A64: Create Instruction Syndromes for Data Aborts
Add support for generating the ISS (Instruction Specific Syndrome) for
Data Abort exceptions taken from AArch64.
These syndromes are used by hypervisors for example to trap and emulate
memory accesses.

We save the decoded data out-of-band with the TBs at translation time.
When exceptions hit, the extra data attached to the TB is used to
recreate the state needed to encode instruction syndromes.
This avoids the need to emit moves with every load/store.

Based on a suggestion from Peter Maydell.

Backports commit aaa1f954d4cab243e3d5337a72bc6d104e1c4808 from qemu
2018-02-24 16:46:44 -05:00
..
crypto
default-configs
docs docs: clarify memory region lifecycle 2018-02-12 15:11:21 -05:00
fpu fpu: silence warnings 2018-02-22 09:52:28 -05:00
hw qemu-common: push cpu.h inclusion out of qemu-common.h 2018-02-24 01:50:56 -05:00
include exec: hide mr->ram_addr from qemu_get_ram_ptr users 2018-02-24 16:17:49 -05:00
qapi qapi: Change visit_type_FOO() to no longer return partial objects 2018-02-23 19:53:17 -05:00
qobject util: move declarations out of qemu-common.h 2018-02-22 09:25:48 -05:00
qom tcg: Remove needless CPUState::current_tb 2018-02-23 23:45:42 -05:00
scripts qapi: Change visit_type_FOO() to no longer return partial objects 2018-02-23 19:53:17 -05:00
target-arm target-arm: A64: Create Instruction Syndromes for Data Aborts 2018-02-24 16:46:44 -05:00
target-i386 target-i386: Move TCG initialization to realize time 2018-02-24 03:23:09 -05:00
target-m68k cpu: move exec-all.h inclusion out of cpu.h 2018-02-24 02:39:08 -05:00
target-mips cpu: move exec-all.h inclusion out of cpu.h 2018-02-24 02:39:08 -05:00
target-sparc cpu: move exec-all.h inclusion out of cpu.h 2018-02-24 02:39:08 -05:00
tcg cpu: move exec-all.h inclusion out of cpu.h 2018-02-24 02:39:08 -05:00
util util: align memory allocations to 2M on AArch64 2018-02-23 13:56:59 -05:00
aarch64.h exec: hide mr->ram_addr from qemu_get_ram_ptr users 2018-02-24 16:17:49 -05:00
aarch64eb.h exec: hide mr->ram_addr from qemu_get_ram_ptr users 2018-02-24 16:17:49 -05:00
accel.c accel: make configure_accelerator return void 2018-02-24 00:31:28 -05:00
arm.h exec: hide mr->ram_addr from qemu_get_ram_ptr users 2018-02-24 16:17:49 -05:00
armeb.h exec: hide mr->ram_addr from qemu_get_ram_ptr users 2018-02-24 16:17:49 -05:00
CODING_STYLE
configure config.status: Pass extra parameters 2018-02-22 10:12:54 -05:00
COPYING
COPYING.LIB
cpu-exec-common.c cpu: move exec-all.h inclusion out of cpu.h 2018-02-24 02:39:08 -05:00
cpu-exec.c cpu-exec: Fix direct jump to TB spanning page 2018-02-24 03:24:53 -05:00
cpus.c cpu: move exec-all.h inclusion out of cpu.h 2018-02-24 02:39:08 -05:00
cputlb.c memory: split memory_region_from_host from qemu_ram_addr_from_host 2018-02-24 16:06:49 -05:00
exec.c exec: hide mr->ram_addr from qemu_get_ram_ptr users 2018-02-24 16:17:49 -05:00
gen_all_header.sh
glib_compat.c glib_compat: backport hashtable iterator interfaces 2018-02-21 13:18:44 -05:00
HACKING
header_gen.py exec: hide mr->ram_addr from qemu_get_ram_ptr users 2018-02-24 16:17:49 -05:00
ioport.c hw: remove pio_addr_t 2018-02-24 02:43:16 -05:00
LICENSE
m68k.h exec: hide mr->ram_addr from qemu_get_ram_ptr users 2018-02-24 16:17:49 -05:00
Makefile
Makefile.objs
Makefile.target
memory_mapping.c include/qemu/osdep.h: Don't include qapi/error.h 2018-02-21 23:08:18 -05:00
memory.c exec: hide mr->ram_addr from qemu_get_ram_ptr users 2018-02-24 16:17:49 -05:00
mips64.h exec: hide mr->ram_addr from qemu_get_ram_ptr users 2018-02-24 16:17:49 -05:00
mips64el.h exec: hide mr->ram_addr from qemu_get_ram_ptr users 2018-02-24 16:17:49 -05:00
mips.h exec: hide mr->ram_addr from qemu_get_ram_ptr users 2018-02-24 16:17:49 -05:00
mipsel.h exec: hide mr->ram_addr from qemu_get_ram_ptr users 2018-02-24 16:17:49 -05:00
powerpc.h exec: hide mr->ram_addr from qemu_get_ram_ptr users 2018-02-24 16:17:49 -05:00
qapi-schema.json
qemu-log.c log: move qemu_log_close/qemu_log_flush from header to log.c 2018-02-22 11:13:17 -05:00
qemu-timer.c all: Clean up includes 2018-02-19 01:34:28 -05:00
rules.mak rules.mak: Add COMMA constant 2018-02-24 16:20:31 -05:00
softmmu_template.h
sparc64.h exec: hide mr->ram_addr from qemu_get_ram_ptr users 2018-02-24 16:17:49 -05:00
sparc.h exec: hide mr->ram_addr from qemu_get_ram_ptr users 2018-02-24 16:17:49 -05:00
tcg-runtime.c
translate-all.c memory: remove unnecessary masking of MemoryRegion ram_addr 2018-02-24 03:01:34 -05:00
translate-all.h
translate-common.c
unicorn_common.h
VERSION
vl.c hw: explicitly include qemu/log.h 2018-02-24 02:00:45 -05:00
vl.h
x86_64.h exec: hide mr->ram_addr from qemu_get_ram_ptr users 2018-02-24 16:17:49 -05:00