[PATCH][binutils][AArch64] Fix diagnostic error message for structural load/store by element.

Barnaby Wilks Barnaby.Wilks@arm.com
Wed Jun 26 14:20:00 GMT 2019


Hello,

This patch fixes a bug where an incorrect structural load/store by element instruction
would generate the wrong error message.

For example, when provided with the (incorrect) instruction

st4 {v0.16b-v3.16b}[4],[x0]

currently assembler provides the following error message
"Error: comma expected between operands at operand 2 -- `st4 {v0.16b-v3.16b}[4],[x0]'".

This was due to the assembler consuming the {v0.16b-v3.16b} as the first operand leaving
[4],[x0] as what it believed to be the second operand.

The actual error is that the first operand should be of element type and not
vector type (as provided). The new diagnostic for this error is
"Error: expected element type rather than vector type at operand 1 -- `st4 {v0.16b-v3.16b}[4],[x0]'.

Added testcases to check for the correct diagnostic message as well as checking that
variations of the structural load/store by element instruction also generate the error
when they have the same problem. 

Cross compiled and regtested aarch64-none-elf and aarch64-none-linux-gnu and no issues found.

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

Thanks,
Barney

gas/ChangeLog:

2019-06-26  Barnaby Wilks  <barnaby.wilks@arm.com>

	* config/tc-aarch64.c (parse_operands): Add error check.
	* testsuite/gas/aarch64/diagnostic.l: New test.
	* testsuite/gas/aarch64/diagnostic.s: New test.
	* testsuite/gas/aarch64/illegal.l: New tests.
	* testsuite/gas/aarch64/illegal.s: New tests.
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: rb11357.txt
URL: <https://sourceware.org/pipermail/binutils/attachments/20190626/bf5a05fd/attachment.txt>


More information about the Binutils mailing list