我有以下几行
la x14, L2
sw x13, 0(x14)
L2 的地址在哪里0x2018
。
当我生成 ELF 文件并使用 检查它时objdump
,这就是我所看到的(仅相关部分):
...
1018: auipc a4,0x1
101c: mv a4,a4
1020: sw a3,0(a4) # 2018 <L2>
...
1018 处的行,即mv a4 a4
转换addi a4, a4, 0
为多余的行。为什么会产生这个?如果没有这条线,它是否仍然有效?
gcc 是否需要始终为指令生成 2la
条指令?