[PATCH][binutils][Arm] Removed unsigned variants of VQ(R)DMLAH and VQ(R)DMLASH instructions.

Barnaby Wilks Barnaby.Wilks@arm.com
Mon Jul 29 16:35:00 GMT 2019


Hello,

This patch removes the unsigned variants of the VQ(R)DMLAH and VQ(R)DMLASH MVE instructions.

Previously GAS would accept .u32, .u16 and .u8 suffixes to the VQ(R)DMLAH and VQ(R)DMLASH
instructions, however the Armv8.1-M Mainline specification states that these functions only
have signed variations (.s32, .s16 and .s8 suffixes).
This is documented here:
https://static.docs.arm.com/ddi0553/bh/DDI0553B_h_armv8m_arm.pdf?_ga=2.143079093.1892401233.1563295591-999473562.1560847439#page=1183

This is due to an update in the specification, for which we believe no hardware exists yet, so we do not need to support both unsigned
and signed variants, and can just support the (correct) signed variants.

Fixed this by marking the instructions as only having signed variations in GAS
and by masking out the unsigned variations in opcodes.

Added testcases to verify that the error is thrown when the .u32/.u16/.u8 suffix is given to the instructions as
well as updating the positive tests to remove the unsigned variations.

Cross compiled and regtested on arm-none-eabi and arm-none-linux-gnueabihf.

I don't have write access, so if it's OK then could someone commit on my behalf?

Regards,
Barney

gas/ChangeLog:

2019-07-29  Barnaby Wilks  <barnaby.wilks@arm.com>

	* config/tc-arm.c (do_mve_vqdmlah): Use N_S_32 macro.
	(do_neon_qrdmlah): Use N_S_32 macro.
	* testsuite/gas/arm/mve-vqdmlah-bad.d: New test.
	* testsuite/gas/arm/mve-vqdmlah-bad.l: New test.
	* testsuite/gas/arm/mve-vqdmlah-bad.s: New test.
	* testsuite/gas/arm/mve-vqdmlah.d: Remove unsigned instruction tests.
	* testsuite/gas/arm/mve-vqdmlah.s: Remove unsigned instruction tests.
	* testsuite/gas/arm/mve-vqdmlash-bad.d: New test.
	* testsuite/gas/arm/mve-vqdmlash-bad.l: New test.
	* testsuite/gas/arm/mve-vqdmlash-bad.s: New test.
	* testsuite/gas/arm/mve-vqdmlash.d: Remove unsigned instruction tests.
	* testsuite/gas/arm/mve-vqdmlash.s: Remove unsigned instruction tests.

opcodes/ChangeLog:

2019-07-29  Barnaby Wilks  <barnaby.wilks@arm.com>

	* arm-dis.c: Only accept signed variants of VQ(R)DMLAH and VQ(R)DMLASH
	instructions.

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: arm-remove-unsigned-instructions.txt
URL: <https://sourceware.org/pipermail/binutils/attachments/20190729/3772b2db/attachment.txt>


More information about the Binutils mailing list