unicorn/qemu/target-mips
Miodrag Dinic 63dad98564
target-mips: Fix ALIGN instruction when bp=0
If executing ALIGN with shift count bp=0 within mips64 emulation,
the result of the operation should be sign extended.

Taken from the official documentation (pseudo code) :

ALIGN:
tmp_rt_hi = unsigned_word(GPR[rt]) << (8*bp)
tmp_rs_lo = unsigned_word(GPR[rs]) >> (8*(4-bp))
tmp = tmp_rt_hi || tmp_rt_lo
GPR[rd] = sign_extend.32(tmp)

Backports commit 51243852af322f0a1103a90c936c43db84def82f from qemu
2018-02-19 00:42:13 -05:00
..
cpu-qom.h remove slow cpu QOM casts (#815) 2017-05-02 14:56:39 +08:00
cpu.c target-mips: implement the CPU wake-up on non-enabled interrupts in R6 2018-02-17 15:24:12 -05:00
cpu.h target-mips/cpu.h: Fix spell error 2018-02-19 00:38:27 -05:00
dsp_helper.c
helper.c target-mips: Fix exceptions while UX=0 2018-02-17 18:57:52 -05:00
helper.h target-mips: add PC, XNP reg numbers to RDHWR 2018-02-17 15:24:13 -05:00
lmi_helper.c
Makefile.objs
mips-defs.h target-mips: fix MIPS64R6-generic configuration 2018-02-17 15:23:21 -05:00
msa_helper.c fpu: Replace int32 typedef with int32_t 2018-02-19 00:24:56 -05:00
op_helper.c target-mips: silence NaNs for cvt.s.d and cvt.d.s 2018-02-19 00:40:29 -05:00
TODO
translate_init.c target-mips: Set Config5.XNP for R6 cores 2018-02-17 15:24:13 -05:00
translate.c target-mips: Fix ALIGN instruction when bp=0 2018-02-19 00:42:13 -05:00
unicorn.c Merge branch 'master' into msvc2 2017-04-21 01:17:00 +08:00
unicorn.h armeb: rename arm's and mips's *REGS_STORAGE_SIZE to avoid big-endian and little-endian's duplicated definition. 2017-03-15 22:25:35 +08:00