unicorn/qemu
Fredrik Noring e9a4475a35
target/mips: Make R5900 DMULT[U], DDIV[U], LL[D] and SC[D] user only
The Linux kernel traps certain reserved instruction exceptions to
emulate the corresponding instructions. QEMU plays the role of the
kernel in user mode, so those traps are emulated by accepting the
instructions.

This change adds the function check_insn_opc_user_only to signal a
reserved instruction exception for flagged CPUs in QEMU system mode.

The MIPS III instructions DMULT[U], DDIV[U], LL[D] and SC[D] are not
implemented in R5900 hardware. They are trapped and emulated by the
Linux kernel and, accordingly, therefore QEMU user only instructions.

Backports commit 96631327be14c4f54cc31f873c278d9ffedd1e00 from qemu
2018-11-10 12:10:01 -05:00
..
accel cputlb: read CPUTLBEntry.addr_write atomically 2018-10-23 15:37:43 -04:00
crypto
default-configs
docs
fpu
hw
include cputlb: read CPUTLBEntry.addr_write atomically 2018-10-23 15:37:43 -04:00
qapi
qobject
qom tcg: access cpu->icount_decr.u16.high with atomics 2018-10-23 14:36:46 -04:00
scripts
target target/mips: Make R5900 DMULT[U], DDIV[U], LL[D] and SC[D] user only 2018-11-10 12:10:01 -05:00
tcg tcg: Split CONFIG_ATOMIC128 2018-10-23 15:17:39 -04:00
util
aarch64.h target/arm: Use gvec for NEON_3R_VTST_VCEQ, NEON_3R_VCGT, NEON_3R_VCGE 2018-11-10 11:03:42 -05:00
aarch64eb.h target/arm: Use gvec for NEON_3R_VTST_VCEQ, NEON_3R_VCGT, NEON_3R_VCGE 2018-11-10 11:03:42 -05:00
accel.c
arm.h target/arm: Use gvec for NEON_3R_VTST_VCEQ, NEON_3R_VCGT, NEON_3R_VCGE 2018-11-10 11:03:42 -05:00
armeb.h target/arm: Use gvec for NEON_3R_VTST_VCEQ, NEON_3R_VCGT, NEON_3R_VCGE 2018-11-10 11:03:42 -05:00
CODING_STYLE
configure tcg: Split CONFIG_ATOMIC128 2018-10-23 15:17:39 -04:00
COPYING
COPYING.LIB
cpus.c
exec.c exec: introduce tlb_init 2018-10-23 14:41:29 -04:00
gen_all_header.sh
glib_compat.c
HACKING
header_gen.py target/arm: Use gvec for NEON_3R_VTST_VCEQ, NEON_3R_VCGT, NEON_3R_VCGE 2018-11-10 11:03:42 -05:00
ioport.c
LICENSE
m68k.h exec: introduce tlb_init 2018-10-23 14:41:29 -04:00
Makefile
Makefile.objs
Makefile.target
memory.c
memory_ldst.inc.c
memory_mapping.c
mips.h exec: introduce tlb_init 2018-10-23 14:41:29 -04:00
mips64.h exec: introduce tlb_init 2018-10-23 14:41:29 -04:00
mips64el.h exec: introduce tlb_init 2018-10-23 14:41:29 -04:00
mipsel.h exec: introduce tlb_init 2018-10-23 14:41:29 -04:00
powerpc.h exec: introduce tlb_init 2018-10-23 14:41:29 -04:00
qemu-timer.c
riscv32.h
riscv64.h
rules.mak
sparc.h exec: introduce tlb_init 2018-10-23 14:41:29 -04:00
sparc64.h exec: introduce tlb_init 2018-10-23 14:41:29 -04:00
unicorn_common.h
VERSION
vl.c
vl.h
x86_64.h exec: introduce tlb_init 2018-10-23 14:41:29 -04:00