unicorn/qemu
Pavel Dovgaluk 011861cd0e
target-mips: improve exception handling
This patch improves exception handling in MIPS.
Instructions generate several types of exceptions.
When exception is generated, it breaks the execution of the current
translation block. Implementation of the exceptions handling does not
correctly restore icount for the instruction which caused the exception.
In most cases icount will be decreased by the value equal to the size of
TB. This patch passes pointer to the translation block internals to the
exception handler. It allows correct restoring of the icount value.

Backports commit 9c708c7f9fbb813a3fac02f2728e51e62f2f5ffc from qemu
2018-02-17 15:23:53 -05:00
..
crypto crypto: move crypto objects out of libqemuutil.la 2018-02-17 15:23:50 -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 osdep.h: Move some compiler-specific things to compiler.h 2018-02-17 15:23:28 -05:00
include cputlb: Change tlb_set_dirty() arg to cpu 2018-02-17 15:23:52 -05:00
qapi qerror: Clean up QERR_ macros to expand into a single string 2018-02-17 15:23:09 -05:00
qobject qerror: Finally unused, clean up 2018-02-17 15:23:10 -05:00
qom cpu: initialize cpu->exception_index on reset 2018-02-17 15:23:51 -05:00
scripts Save copies of generated qapi files. 2017-01-21 00:30:50 +11:00
target-arm target-arm: Add VMPIDR_EL2 2018-02-17 15:23:48 -05:00
target-i386 target-i386: exception handling for other helper functions 2018-02-17 15:23:51 -05:00
target-m68k tlb: Add ifetch argument to cpu_mmu_index() 2018-02-17 15:23:37 -05:00
target-mips target-mips: improve exception handling 2018-02-17 15:23:53 -05:00
target-sparc tlb: Add ifetch argument to cpu_mmu_index() 2018-02-17 15:23:37 -05:00
tcg tcg: split tcg_op_defs to -common 2018-02-17 15:23:51 -05:00
util error: On abort, report where the error was created 2018-02-17 15:23:37 -05:00
aarch64.h cpu-exec: introduce loop exit with restore function 2018-02-17 15:23:38 -05:00
aarch64eb.h cpu-exec: introduce loop exit with restore function 2018-02-17 15:23:38 -05:00
accel.c Automated leading tab to spaces conversion. 2017-01-21 12:28:22 +11:00
arm.h cpu-exec: introduce loop exit with restore function 2018-02-17 15:23:38 -05:00
armeb.h cpu-exec: introduce loop exit with restore function 2018-02-17 15:23:38 -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-common.c cpu-exec: Migrate some generic fns to cpu-exec-common 2018-02-17 15:23:51 -05:00
cpu-exec.c cpu-exec: Migrate some generic fns to cpu-exec-common 2018-02-17 15:23:51 -05:00
cpus.c cpu-exec: Purge all uses of ENV_GET_CPU() 2018-02-17 15:23:18 -05:00
cputlb.c cputlb: Change tlb_set_dirty() arg to cpu 2018-02-17 15:23:52 -05:00
exec.c cputlb: Change tlb_set_dirty() arg to cpu 2018-02-17 15:23:52 -05:00
gen_all_header.sh arm64eb: add support for ARM64 big endian. 2017-04-24 23:30:01 +08:00
glib_compat.c crypto: introduce new module for computing hash digests 2018-02-17 15:23:17 -05:00
HACKING import 2015-08-21 15:04:50 +08:00
header_gen.py target-mips: improve exception handling 2018-02-17 15:23:53 -05:00
ioport.c memory: Define API for MemoryRegionOps to take attrs and return status 2018-02-12 17:17:27 -05:00
LICENSE import 2015-08-21 15:04:50 +08:00
m68k.h cpu-exec: introduce loop exit with restore function 2018-02-17 15:23:38 -05:00
Makefile crypto: move crypto objects out of libqemuutil.la 2018-02-17 15:23:50 -05:00
Makefile.objs crypto: move crypto objects out of libqemuutil.la 2018-02-17 15:23:50 -05:00
Makefile.target tcg: split tcg_op_defs to -common 2018-02-17 15:23:51 -05:00
memory.c osdep.h: Move some compiler-specific things to compiler.h 2018-02-17 15:23:28 -05:00
memory_mapping.c memory_mapping: Rework cpu related includes 2018-02-17 15:23:15 -05:00
mips.h target-mips: improve exception handling 2018-02-17 15:23:53 -05:00
mips64.h target-mips: improve exception handling 2018-02-17 15:23:53 -05:00
mips64el.h target-mips: improve exception handling 2018-02-17 15:23:53 -05:00
mipsel.h target-mips: improve exception handling 2018-02-17 15:23:53 -05:00
powerpc.h cpu-exec: introduce loop exit with restore function 2018-02-17 15:23:38 -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 softmmu: remove now unused functions 2018-02-17 15:23:38 -05:00
sparc.h cpu-exec: introduce loop exit with restore function 2018-02-17 15:23:38 -05:00
sparc64.h cpu-exec: introduce loop exit with restore function 2018-02-17 15:23:38 -05:00
tcg-runtime.c platform.h move #3 2017-01-21 00:13:21 +11:00
translate-all.c translate-all: Move tcg_handle_interrupt() to -common 2018-02-17 15:23:51 -05:00
translate-all.h translate-all: remove unnecessary argument to tb_invalidate_phys_range 2018-02-13 09:04:51 -05:00
translate-common.c translate-all: Move tcg_handle_interrupt() to -common 2018-02-17 15:23:51 -05: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 exec: Add semihosting stubs 2018-02-17 15:23:33 -05:00
vl.h import 2015-08-21 15:04:50 +08:00
x86_64.h cpu-exec: introduce loop exit with restore function 2018-02-17 15:23:38 -05:00