58f1a612e8
The wfi exception trigger behavior should take into account user mode, hstatus.vtw, and the fact the an wfi might raise different types of exceptions depending on various factors: If supervisor mode is not present: - an illegal instruction exception should be generated if user mode executes and wfi instruction and mstatus.tw = 1. If supervisor mode is present: - when a wfi instruction is executed, an illegal exception should be triggered if either the current mode is user or the mode is supervisor and mstatus.tw is set. Plus, if the hypervisor extensions are enabled: - a virtual instruction exception should be raised when a wfi is executed from virtual-user or virtual-supervisor and hstatus.vtw is set. Signed-off-by: Jose Martins <josemartins90@gmail.com> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Message-id: 20210420213656.85148-1-josemartins90@gmail.com Signed-off-by: Alistair Francis <alistair.francis@wdc.com> |
||
---|---|---|
.. | ||
accel/tcg | ||
crypto | ||
fpu | ||
hw | ||
include | ||
libdecnumber | ||
scripts | ||
softmmu | ||
target | ||
tcg | ||
trace | ||
util | ||
.editorconfig | ||
aarch64.h | ||
arm.h | ||
CODING_STYLE.rst | ||
configure | ||
COPYING | ||
COPYING.LIB | ||
exec-vary.c | ||
exec.c | ||
LICENSE | ||
m68k.h | ||
MAINTAINERS | ||
memory_ldst.inc.c | ||
mips64.h | ||
mips64el.h | ||
mips.h | ||
mipsel.h | ||
ppc64.h | ||
ppc.h | ||
riscv32.h | ||
riscv64.h | ||
rules.mak | ||
s390x.h | ||
sparc64.h | ||
sparc.h | ||
tricore.h | ||
unicorn_common.h | ||
VERSION | ||
vl.h | ||
x86_64.h |