On 5/28/24 09:15, Peter Maydell wrote:
On Sat, 25 May 2024 at 00:27, Richard Henderson
<richard.hender...@linaro.org> wrote:
These are the only instructions in the 3 source scalar class.
Signed-off-by: Richard Henderson <richard.hender...@linaro.org>
---
target/arm/tcg/a64.decode | 10 ++
target/arm/tcg/translate-a64.c | 233 ++++++++++++---------------------
2 files changed, 93 insertions(+), 150 deletions(-)
static void disas_data_proc_fp(DisasContext *s, uint32_t insn)
{
- if (extract32(insn, 24, 1)) {
- /* Floating point data-processing (3 source) */
- disas_fp_3src(s, insn);
- } else if (extract32(insn, 21, 1) == 0) {
+ if (extract32(insn, 21, 1) == 0) {
/* Floating point to fixed point conversions */
disas_fp_fixed_conv(s, insn);
} else {
Doesn't this result in the unallocated-encodings in the
fp-3src class now falling into the "else" clause and
being mis-decoded as the wrong thing? I think this
needs to be
if (extract32(insn, 24, 1)) {
unallocated_encoding();
} else if (extract32(insn, 21, 1) == 0) {
[etc]
Agreed.
r~