This is the mail archive of the mailing list for the binutils project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


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:

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?



2019-07-29  Barnaby Wilks  <>

	* 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.


2019-07-29  Barnaby Wilks  <>

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

Attachment: arm-remove-unsigned-instructions.txt
Description: arm-remove-unsigned-instructions.txt

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]