[PATCH 5/57][Arm][GAS] Add support for MVE instructions: vmull{b,t}
Andre Vieira (lists)
andre.simoesdiasvieira@arm.com
Wed May 1 16:59:00 GMT 2019
Hi,
This patch implements support for the MVE VMULL[BT] instruction. This
instruction presents a new challenge to the implementation of GAS as
depending on architecture the same mnemonic can be split in different
ways because of condition codes. In a NEON context 'vmullt' should be
parsed as a 'vmul' instruction with 'lt' condition code, whereas in a
MVE context this same mnemonic should be parsed as a 'vmullt' instruction.
The way we implement this is to catch any 'vmullt' in 'do_mve_vmull' and
if we detect we are dealing with a NEON context, we set the correct
condition code, encoding, and call the neon encoding function.
gas/ChangeLog:
2019-05-01 Andre Vieira <andre.simoesdiasvieira@arm.com>
* config/tc-arm.c (BAD_MVE_AUTO): New error message.
(BAD_MVE_SRCDEST): Likewise.
(mark_feature_used): Diagnose MVE only instructions
when in auto-detection mode or -march=all.
(enum operand_parse_code): Define new operand.
(parse_operands): Handle new operand.
(M_MNEM_vmullt, M_MNEM_vmullb): New encodings.
(mve_encode_qqq): New encoding helper function.
(do_mve_vmull): New encoding function.
(insns):
* testsuite/gas/arm/mve-vmullbt-bad.d: New test.
* testsuite/gas/arm/mve-vmullbt-bad.l: New test.
* testsuite/gas/arm/mve-vmullbt-bad.s: New test.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 5.patch
Type: text/x-patch
Size: 9756 bytes
Desc: not available
URL: <https://sourceware.org/pipermail/binutils/attachments/20190501/8b0df61f/attachment.bin>
More information about the Binutils
mailing list