[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