Re: [PATCH] aarch64: increase alias candidate limit in aarch64-gen

Alice Carlotti <[email protected]>
Newsgroups gmane.comp.gnu.binutils
Message-ID <[email protected]>
On Fri, Aug 21, 2026 at 11:55:35AM +0100, Richard Earnshaw (foss) wrote:
> On 21/08/2026 11:45, Muhammad Kamran wrote:
> > 
> > 
> > On 21/08/2026 11:36, Richard Earnshaw (foss) wrote:
> >> On 19/08/2026 09:23, Muhammad Kamran wrote:
> >>> Increase max_num_aliases from 32 to 64 so that aarch64-gen can
> >>> accommodate the additional HINT-space alias added for FEAT_PAuth_LR.
> >>>
> >>
> >> What were the symptoms of the overflow? A build time failure, a run-time assert, or crash, or just garbled output?
> >>
> > 
> > The overflow shows up as a build-time failure while regenerating the
> > generated AArch64 opcode files.� The FEAT_PAuth_LR HINT-space alias
> > (yet to be posted) increases the number of aliases matching the same
> > encoding group, and find_alias_opcode trips:
> > 
> > � assert (i < max_num_aliases)
> > 
> > For instance,
> > $ aarch64-gen --gen-dis > $(binutils)/opcodes/aarch64-dis-2.c
> > aarch64-gen: /work/src/binutils/opcodes/aarch64-gen.c:813: find_alias_opcode: Assertion `i < max_num_aliases' failed.
> > Aborted
> > 
> 
> OK, thanks. Patch pushed.
> 
> R.

For context, max_num_aliases exists purely to bound the time taken to do a
linear scan of all the aliases of an aliased instruction.  I have some ideas to
improve this search in future, but increasing the current cap is absolutely
fine.

Alice

> 
> >>
> >>> The generated disassembler alias preference list can otherwise exceed
> >>> the old fixed limit.
> >>> ---
> >>> � opcodes/aarch64-gen.c | 4 ++--
> >>> � 1 file changed, 2 insertions(+), 2 deletions(-)
> >>>
> >>> diff --git a/opcodes/aarch64-gen.c b/opcodes/aarch64-gen.c
> >>> index a387cd4a1e0..abe4147f2c4 100644
> >>> --- a/opcodes/aarch64-gen.c
> >>> +++ b/opcodes/aarch64-gen.c
> >>> @@ -789,8 +789,8 @@ opcode_node *
> >>> � find_alias_opcode (const aarch64_opcode *opcode)
> >>> � {
> >>> ��� int i;
> >>> -� /* Assume maximum of 32 disassemble preference candidates.� */
> >>> -� const int max_num_aliases = 32;
> >>> +� /* Assume maximum of 64 disassemble preference candidates.� */
> >>> +� const int max_num_aliases = 64;
> >>> ��� const aarch64_opcode *ent;
> >>> ��� const aarch64_opcode *preferred[max_num_aliases + 1];
> >>> ��� opcode_node head, **next;
> >>
> > 
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.