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]

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

Hi Barnaby,

Your patch looks OK to be, however I am not a maintainer so you still need maintainer approval for this.

Thanks for the fix,

> -----Original Message-----
> From: <> On 
> Behalf Of Barnaby Wilks
> Sent: Wednesday, June 26, 2019 15:20
> To:
> Cc: nd <>; Richard Earnshaw <>; 
> Marcus Shawcroft <>
> Subject: [PATCH][binutils][AArch64] Fix diagnostic error message for 
> structural load/store by element.
> 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  <>
> 	* 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.

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