[PATCH] RISC-V: fix JAL aliases ordering in opcode table
Maciej W. Rozycki
macro@orcam.me.uk
Sun Jan 8 13:53:14 GMT 2023
On Thu, 5 Jan 2023, Jan Beulich via Binutils wrote:
> >> I'm afraid reverting the "offending" hunk is only a workaround, as it
> >> would re-introduce the disassembler side issue that the patch tried to
> >> deal with (and which sadly looks to not be covered by anything in the
> >> testsuite, or else you would have noticed breakage when testing your
> >> change). Since I expect that in the course of table lookup it is still
> >> the correct entry (in particular one with two rather than just one
> >> operands) which is used, my suspicion is that something somewhere makes
> >> a silent assumption upon the (original) ordering of table entries. It
> >> would be that place which needs fixing then; I'll try to find time soon
> >> to see if I can spot where that is.
> >
> > Thanks for the analysis. Do you think you have time to get a patch with
> > that fix before the 2.40 release?
>
> I hope to get to looking into this tomorrow; whether that'll result in a
> patch I obviously can't tell yet. In any event Nelson's reply (which
> crossed with mine) suggests the reason for the problem to be different.
> Yet then still that's where the change wants to be (albeit I disagree
> with his proposal, yet that's without having looked at the code at all),
> rather than re-introducing the disassembler inconsistency. The latter
> would certainly be a short-term option for the impending release, if a
> proper solution can't be found in time or turns out too intrusive. But
> then the title and description would need adjustment to reflect this
> (e.g. it wouldn't be "fix" but maybe "restore" or "undo").
FWIW we have taken a similar approach in the MIPS port, which I believe
is where the RISC-V port took inspiration from, and by ordering the opcode
table carefully we get the desired results; see the various `j*' and other
instruction entries in opcodes/mips-opc.c. It has worked for some 30
years now, so it should be pretty straightforward to get this sorted here
as well.
Maciej
More information about the Binutils
mailing list