unicorn/qemu
Lioncash a2e7d86ccf
tcg/mips: Support r6 SEL{NE, EQ}Z instead of MOVN/MOVZ
Extend MIPS movcond implementation to support the SELNEZ/SELEQZ
instructions introduced in MIPS r6 (where MOVN/MOVZ have been removed).

Whereas the "MOVN/MOVZ rd, rs, rt" instructions have the following
semantics:
rd = [!]rt ? rs : rd

The "SELNEZ/SELEQZ rd, rs, rt" instructions are slightly different:
rd = [!]rt ? rs : 0

First we ensure that if one of the movcond input values is zero that it
comes last (we can swap the input arguments if we invert the condition).
This is so that it can exactly match one of the SELNEZ/SELEQZ
instructions and avoid the need to emit the other one.

Otherwise we emit the opposite instruction first into a temporary
register, and OR that into the result:
SELNEZ/SELEQZ TMP1, v2, c1
SELEQZ/SELNEZ ret, v1, c1
OR ret, ret, TMP1

Which does the following:
ret = cond ? v1 : v2

Backports commit 137d63902faf4960081856db9242cbaf234a23af 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
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
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 SEL{NE, EQ}Z instead of MOVN/MOVZ 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
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
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: 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
glib_compat.c crypto: introduce new module for computing hash digests 2018-02-17 15:23:17 -05:00
HACKING
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
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_mapping.c memory_mapping: Rework cpu related includes 2018-02-17 15:23:15 -05:00
memory.c osdep.h: Move some compiler-specific things to compiler.h 2018-02-17 15:23:28 -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
mips.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
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 target-arm: Fix CPU breakpoint handling 2018-02-17 15:24:02 -05:00
sparc.h target-arm: Fix CPU breakpoint handling 2018-02-17 15:24:02 -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-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
VERSION
vl.c Drop unused crypto source files 2018-02-17 15:23:57 -05:00
vl.h
x86_64.h target-arm: Fix CPU breakpoint handling 2018-02-17 15:24:02 -05:00