]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit
ARM print_insn_mve assertion
authorAlan Modra <amodra@gmail.com>
Thu, 25 Jul 2024 23:19:48 +0000 (08:49 +0930)
committerAlan Modra <amodra@gmail.com>
Fri, 26 Jul 2024 01:04:54 +0000 (10:34 +0930)
commite26ff6c44e7546b9f761e00bb7cf76a3fa8bfc5d
tree0b517db8c2a89950a86ae2b0700b02bc2afd3190
parent5a7f5aa29b33e9cd01a0062bcf8d2aa4d76852f9
ARM print_insn_mve assertion

This corrects objdump -d -m armv8.1-m.main output for a testcase found
by oss-fuzz, .inst 0xee2fee79, which hits an assertion.

Obviously the switch case constants should be binary, not hex.
Correcting that is enough to cure this assertion, but I don't see any
point in singling out the invalid case 0b10.  In fact, it is just plain
wrong to print "undefined instruction: size equals zero    undefined
instruction: size equals two".

I also don't see the need for defensive programming here as is done
elsewhere in checking that "value" is in range before indexing
mve_vec_sizename.  There is exactly one MVE_VSHLL_T2 entry in
mve_opcodes.  It is easy to verify that "value" is only two bits.
opcodes/arm-dis.c