unicorn/qemu
Sergey Fedorov 23ece1622c
target-arm: Clean up DISAS_UPDATE usage in AArch32 translation code
AArch32 translation code does not distinguish between DISAS_UPDATE and
DISAS_JUMP. Thus, we cannot use any of them without first updating PC in
CPU state. Furthermore, it is too complicated to update PC in CPU state
before PC gets updated in disas context. So it is hardly possible to
correctly end TB early if is is not likely to be executed before calling
disas_*_insn(), e.g. just after calling breakpoint check helper.

Modify DISAS_UPDATE and DISAS_JUMP usage in AArch32 translation and
apply to them the same semantic as AArch64 translation does:
- DISAS_UPDATE: update PC in CPU state when finishing translation
- DISAS_JUMP: preserve current PC value in CPU state when finishing
translation

This patch fixes a bug in AArch32 breakpoint handling: when
check_breakpoints helper does not generate an exception, ending the TB
early with DISAS_UPDATE couldn't update PC in CPU state and execution
hangs.

Backports commit 577bf808958d06497928c639efaa473bf8c5e099 from qemu
2018-02-17 17:43:21 -05:00
..
crypto Drop unused crypto source files 2018-02-17 15:23:57 -05:00
default-configs
docs
fpu
hw osdep.h: Move some compiler-specific things to compiler.h 2018-02-17 15:23:28 -05:00
include qobject: Protect against use-after-free in qobject_decref() 2018-02-17 17:28:27 -05:00
qapi qstring: Make conversion from QObject * accept null 2018-02-17 15:24:12 -05:00
qobject qstring: Make conversion from QObject * accept null 2018-02-17 15:24:12 -05:00
qom qom/object: fix 2 comment typos 2018-02-17 15:38:14 -05:00
scripts
target-arm target-arm: Clean up DISAS_UPDATE usage in AArch32 translation code 2018-02-17 17:43:21 -05:00
target-i386 target-i386: Add clflushopt/clwb/pcommit to TCG_7_0_EBX_FEATURES 2018-02-17 17:26:53 -05:00
target-m68k target-*: Advance pc after recognizing a breakpoint 2018-02-17 15:24:11 -05:00
target-mips target-mips: fix updating XContext on mmu exception 2018-02-17 15:24:14 -05:00
target-sparc target-*: Advance pc after recognizing a breakpoint 2018-02-17 15:24:11 -05:00
tcg tcg/mips: Support r6 SEL{NE, EQ}Z instead of MOVN/MOVZ 2018-02-17 15:24:04 -05:00
util mmap-alloc: fix error handling 2018-02-17 15:24:11 -05:00
aarch64.h pc: resizeable ROM blocks 2018-02-17 17:18:38 -05:00
aarch64eb.h pc: resizeable ROM blocks 2018-02-17 17:18:38 -05:00
accel.c
arm.h pc: resizeable ROM blocks 2018-02-17 17:18:38 -05:00
armeb.h pc: resizeable ROM blocks 2018-02-17 17:18:38 -05:00
CODING_STYLE
configure
COPYING
COPYING.LIB
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: Fix compiler warning (-Werror=clobbered) 2018-02-17 15:24:15 -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 exec: avoid unnecessary cacheline bounce on ram_list.mru_block 2018-02-17 17:21:04 -05:00
gen_all_header.sh
glib_compat.c crypto: introduce new module for computing hash digests 2018-02-17 15:23:17 -05:00
HACKING
header_gen.py pc: resizeable ROM blocks 2018-02-17 17:18:38 -05:00
ioport.c ioport: do not use CPU_LOG_IOPORT 2018-02-17 15:24:15 -05:00
LICENSE
m68k.h pc: resizeable ROM blocks 2018-02-17 17:18: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_mapping.c memory_mapping: Rework cpu related includes 2018-02-17 15:23:15 -05:00
memory.c pc: resizeable ROM blocks 2018-02-17 17:18:38 -05:00
mips64.h pc: resizeable ROM blocks 2018-02-17 17:18:38 -05:00
mips64el.h pc: resizeable ROM blocks 2018-02-17 17:18:38 -05:00
mips.h pc: resizeable ROM blocks 2018-02-17 17:18:38 -05:00
mipsel.h pc: resizeable ROM blocks 2018-02-17 17:18:38 -05:00
powerpc.h pc: resizeable ROM blocks 2018-02-17 17:18:38 -05:00
qapi-schema.json
qemu-log.c
qemu-timer.c
rules.mak
softmmu_template.h softmmu: remove now unused functions 2018-02-17 15:23:38 -05:00
sparc64.h pc: resizeable ROM blocks 2018-02-17 17:18:38 -05:00
sparc.h pc: resizeable ROM blocks 2018-02-17 17:18:38 -05:00
tcg-runtime.c
translate-all.c tcg/ppc: Revise goto_tb implementation 2018-02-17 15:24:03 -05:00
translate-all.h
translate-common.c translate-all: Move tcg_handle_interrupt() to -common 2018-02-17 15:23:51 -05:00
unicorn_common.h
VERSION
vl.c vl.c: Remove periods and exclamation points from error messages 2018-02-17 15:24:14 -05:00
vl.h
x86_64.h pc: resizeable ROM blocks 2018-02-17 17:18:38 -05:00