unicorn/qemu
James Hogan e71d19df81
tcg/mips: Support r6 multiply/divide encodings
MIPSr6 adds several new integer multiply, divide, and modulo
instructions, and removes several pre-r6 encodings, along with the HI/LO
registers which were the implicit operands of some of those
instructions. Update TCG to use the new instructions when built for r6.

The new instructions actually map much more directly to the TCG ops, as
they only provide a single 32-bit half of the result and in a normal
general purpose register instead of HI or LO.

The mulu2_i32 and muls2_i32 operations are no longer appropriate for r6,
so they are removed from the TCG opcode table. This is because they
would need to emit two separate host instructions anyway (for the high
and low half of the result), which TCG can arrange automatically for us
in the absense of mulu2_i32/muls2_i32 by splitting it into mul_i32 and
mul*h_i32 TCG ops.

Backports commit bc6d0c22b09a72897d9db4482076f89e7de97400 from qemu
2018-02-17 15:24:04 -05:00
..
crypto Drop unused crypto source files 2018-02-17 15:23:57 -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 exec: factor out duplicate mmap code 2018-02-17 15:24:03 -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: Fix CPU breakpoint handling 2018-02-17 15:24:02 -05:00
target-i386 tcg: Remove gen_intermediate_code_pc 2018-02-17 15:23:59 -05:00
target-m68k target-m68k: Silence unused variable warning 2018-02-17 15:24:00 -05:00
target-mips tcg: Remove gen_intermediate_code_pc 2018-02-17 15:23:59 -05:00
target-sparc tcg: Remove gen_intermediate_code_pc 2018-02-17 15:23:59 -05:00
tcg tcg/mips: Support r6 multiply/divide encodings 2018-02-17 15:24:04 -05:00
util exec: factor out duplicate mmap code 2018-02-17 15:24:03 -05:00
aarch64.h target-arm: Fix CPU breakpoint handling 2018-02-17 15:24:02 -05:00
aarch64eb.h target-arm: Fix CPU breakpoint handling 2018-02-17 15:24:02 -05:00
accel.c Automated leading tab to spaces conversion. 2017-01-21 12:28:22 +11:00
arm.h target-arm: Fix CPU breakpoint handling 2018-02-17 15:24:02 -05:00
armeb.h target-arm: Fix CPU breakpoint handling 2018-02-17 15:24:02 -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 exec: factor out duplicate mmap code 2018-02-17 15:24:03 -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-arm: Fix CPU breakpoint handling 2018-02-17 15:24:02 -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: Fix CPU breakpoint handling 2018-02-17 15:24:02 -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-arm: Fix CPU breakpoint handling 2018-02-17 15:24:02 -05:00
mips64.h target-arm: Fix CPU breakpoint handling 2018-02-17 15:24:02 -05:00
mips64el.h target-arm: Fix CPU breakpoint handling 2018-02-17 15:24:02 -05:00
mipsel.h target-arm: Fix CPU breakpoint handling 2018-02-17 15:24:02 -05:00
powerpc.h target-arm: Fix CPU breakpoint handling 2018-02-17 15:24:02 -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 target-arm: Fix CPU breakpoint handling 2018-02-17 15:24:02 -05:00
sparc64.h target-arm: Fix CPU breakpoint handling 2018-02-17 15:24:02 -05:00
tcg-runtime.c platform.h move #3 2017-01-21 00:13:21 +11:00
translate-all.c tcg/ppc: Revise goto_tb implementation 2018-02-17 15:24:03 -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 Drop unused crypto source files 2018-02-17 15:23:57 -05:00
vl.h import 2015-08-21 15:04:50 +08:00
x86_64.h target-arm: Fix CPU breakpoint handling 2018-02-17 15:24:02 -05:00