unicorn/qemu
Peter Maydell 8840d8370d
target-arm: Split DISAS_YIELD from DISAS_WFE
Currently we use DISAS_WFE for both WFE and YIELD instructions.
This is functionally correct because at the moment both of them
are implemented as "yield this CPU back to the top level loop so
another CPU has a chance to run". However it's rather confusing
that YIELD ends up calling HELPER(wfe), and if we ever want to
implement real behaviour for WFE and SEV it's likely to trip us up.

Split out the yield codepath to use DISAS_YIELD and a new
HELPER(yield) function, and have HELPER(wfe) call HELPER(yield).

Backports commit 049e24a191c212d9468db84169197887f2c91586 from qemu
2018-02-17 15:23:14 -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 qerror: Clean up QERR_ macros to expand into a single string 2018-02-17 15:23:09 -05:00
include qerror: Move #include out of qerror.h 2018-02-17 15:23:10 -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 qerror: Clean up QERR_ macros to expand into a single string 2018-02-17 15:23:09 -05:00
scripts Save copies of generated qapi files. 2017-01-21 00:30:50 +11:00
target-arm target-arm: Split DISAS_YIELD from DISAS_WFE 2018-02-17 15:23:14 -05:00
target-i386 qerror: Clean up QERR_ macros to expand into a single string 2018-02-17 15:23:09 -05:00
target-m68k m68k: remove useless parameter op_size from gen_lea_indexed() 2018-02-17 15:23:14 -05:00
target-mips target-mips: add mips32r6-generic CPU definition 2018-02-17 15:23:13 -05:00
target-sparc target-*: Increment num_insns immediately after tcg_gen_insn_start 2018-02-11 12:46:30 -05:00
tcg tcg: add TCG_TARGET_TLB_DISPLACEMENT_BITS 2018-02-13 08:28:29 -05:00
util bitmap: add atomic test and clear 2018-02-13 10:02:12 -05:00
aarch64.h target-arm: Split DISAS_YIELD from DISAS_WFE 2018-02-17 15:23:14 -05:00
aarch64eb.h target-arm: Split DISAS_YIELD from DISAS_WFE 2018-02-17 15:23:14 -05:00
accel.c Automated leading tab to spaces conversion. 2017-01-21 12:28:22 +11:00
arm.h target-arm: Split DISAS_YIELD from DISAS_WFE 2018-02-17 15:23:14 -05:00
armeb.h target-arm: Split DISAS_YIELD from DISAS_WFE 2018-02-17 15:23:14 -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 memory: replace cpu_physical_memory_reset_dirty() with test-and-clear 2018-02-13 11:25:45 -05:00
exec.c memory: replace cpu_physical_memory_reset_dirty() with test-and-clear 2018-02-13 11:25:45 -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 target-arm: Split DISAS_YIELD from DISAS_WFE 2018-02-17 15:23:14 -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 target-arm: Split DISAS_YIELD from DISAS_WFE 2018-02-17 15:23:14 -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 memory: use mr->ram_addr in "is this RAM?" assertions 2018-02-13 11:31:02 -05: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 target-arm: Split DISAS_YIELD from DISAS_WFE 2018-02-17 15:23:14 -05:00
mips64.h target-arm: Split DISAS_YIELD from DISAS_WFE 2018-02-17 15:23:14 -05:00
mips64el.h target-arm: Split DISAS_YIELD from DISAS_WFE 2018-02-17 15:23:14 -05:00
mipsel.h target-arm: Split DISAS_YIELD from DISAS_WFE 2018-02-17 15:23:14 -05:00
powerpc.h target-arm: Split DISAS_YIELD from DISAS_WFE 2018-02-17 15:23:14 -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 Add MemTxAttrs to the IOTLB 2018-02-12 18:38:38 -05:00
sparc.h target-arm: Split DISAS_YIELD from DISAS_WFE 2018-02-17 15:23:14 -05:00
sparc64.h target-arm: Split DISAS_YIELD from DISAS_WFE 2018-02-17 15:23:14 -05:00
tcg-runtime.c platform.h move #3 2017-01-21 00:13:21 +11:00
translate-all.c translate-all: fix watchpoints if retranslation not possible 2018-02-17 15:22:43 -05:00
translate-all.h translate-all: remove unnecessary argument to tb_invalidate_phys_range 2018-02-13 09:04: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 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 target-arm: Split DISAS_YIELD from DISAS_WFE 2018-02-17 15:23:14 -05:00