unicorn/qemu/target
Peter Maydell f7d78d9e08
target/arm/translate-a64: Don't underdecode FP insns
In the encoding groups
* floating-point data-processing (1 source)
* floating-point data-processing (2 source)
* floating-point data-processing (3 source)
* floating-point immediate
* floating-point compare
* floating-ponit conditional compare
* floating-point conditional select

bit 31 is M and bit 29 is S (and bit 30 is 0, already checked at
this point in the decode). None of these groups allocate any
encoding for M=1 or S=1. We checked this in disas_fp_compare(),
disas_fp_ccomp() and disas_fp_csel(), but missed it in disas_fp_1src(),
disas_fp_2src(), disas_fp_3src() and disas_fp_imm().

We also missed that in the fp immediate encoding the imm5 field
must be all zeroes.

Correctly UNDEF the unallocated encodings here.

Backports commit c1e20801f5ee53472dbf2757df605543f3f4ce0b from qemu
2019-02-03 17:55:29 -05:00
..
arm target/arm/translate-a64: Don't underdecode FP insns 2019-02-03 17:55:29 -05:00
i386 i386: Enable NPT and NRIPSAVE for AMD CPUs 2019-02-03 17:55:28 -05:00
m68k target/m68k: Fix LGPL information in the file headers 2019-02-03 17:55:29 -05:00
mips target/mips: Add I6500 core configuration 2019-01-25 13:46:18 -05:00
sparc target: Resolve repeated typedef warnings 2019-01-22 20:27:35 -05:00