objdump riscv: Stop disassembling addi rd, rs, 0 with a relocation as mv rd, rs?

Jan Beulich jbeulich@suse.com
Tue Feb 7 15:14:47 GMT 2023


On 07.02.2023 15:39, Maciej W. Rozycki wrote:
> On Mon, 6 Feb 2023, Fangrui Song wrote:
>> In llvm-project, https://reviews.llvm.org/D143345 brings up the topic
>> whether we should keep addi rd, rs, 0 when it is associated with a
>> relocation. If it does, the relocation may resolve to a non-zero and
>> `mv rd, rs` may look confusing.
> 
>  I agree, I was quite amused when I came across it a while before, and I 
> can imagine people may get confused.

I agree as well.

>  However it may be quite hard to implement given how the GNU disassembler 
> has been structured; most easily probably by setting the `no_aliases' flag 
> temporarily for any instruction seen with a relocation attached.  This 
> could have undesired consequences elsewhere though and would most likely 
> make Jan unhappy who wants to see aliases in disassembly rather than 
> machine instruction mnemonics with the immediate forms.
> 
>  So instead we may need another flag for the opcode table, such as 
> INSN_NORELOC, which would exclude the given entry for instructions with 
> any relocation attached; I think this would be the cleanest approach, 
> though maybe a little bit more involving implementation-wise.

Could we get away with simply skipping aliases in general when there's a
relocation for an insn?

Jan


More information about the Binutils mailing list