unicorn/qemu/target
Peter Maydell edfb13f8eb
target/arm/translate-a64: Fix mishandling of size in FCMLA decode
In disas_simd_indexed(), for the case of "complex fp", each indexable
element is a complex pair, so the total size is twice that indicated
in the 'size' field in the encoding. We were trying to do this
"double the size" operation with a left shift by 1, but this is
incorrect because the 'size' field is a MO_8/MO_16/MO_32/MO_64
value, and doubling the size should be done by a simple increment.

This meant we were mishandling FCMLA (by element) of values where
the real and imaginary parts are 32-bit floats, and would incorrectly
UNDEF this encoding. (No other insns take this code path, and for
16-bit floats it happens that 1 << 1 and 1 + 1 are both the same).

Backports commit eaefb97a8b97dbf42c016fe65b68b92f99a346f6 from qemu
2019-02-03 17:55:30 -05:00
..
arm target/arm/translate-a64: Fix mishandling of size in FCMLA decode 2019-02-03 17:55:30 -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