[PATCH] arm: Fix MVE vmla encoding

Richard Earnshaw (lists) Richard.Earnshaw@arm.com
Fri May 17 14:31:12 GMT 2024


On 15/04/2024 11:00, Claudio Bantaloukas wrote:
> 
> Bit 12 of the first halfword in the VMLA instruction is listed as (0)
> in the ARMARM (document DDI0553B.w, version ID07072023).
> This means that the instruction does not discriminate between signed
> and unsigned types and processing elements do not use the bit.
> The encoding used by gas was based on an older version
> of the document that made the sign important.
> This change makes it possible to use vmla.i8 (16,32) in addition to
> vmla.u8 and vmla.s8 mnemonics, with the i8, i16 and i32 aliases becoming
> the default when disassembling.
> The generated encoding sets bit 12 to 0, compatibly with other
> assembler implementations.
> ---
> Hi,
> 
> Is this Ok for master? I do not have commit rights, if OK, can someone commit on my behalf please?
> Tested on arm-none-eabi.
> 
> Thanks,
> Claudio Bantaloukas
> 
>  gas/config/tc-arm.c              |    4 +-
>  gas/testsuite/gas/arm/mve-vmla.d | 3383 ++++++++++++++++++------------
>  gas/testsuite/gas/arm/mve-vmla.s |    8 +-
>  opcodes/arm-dis.c                |    2 +-
>  4 files changed, 2041 insertions(+), 1356 deletions(-)
> 

I think this patch is incomplete.  The current armv8-m Arm ARM also shows that VMLAS was also changed in a similar manner.  Were any other instructions affected?

R.


More information about the Binutils mailing list