编译RISC-V汇编遇mul指令报错,指定m扩展仍无效求解决
RISC-V汇编编译时mul指令不被识别的问题解决
问题场景
已构建基于newlib、rv32imac架构及ilp32 ABI的riscv-gnu-toolchain,执行汇编编译命令:
riscv32-unknown-elf-as -march=rv32imac -mabi=ilp32 main.s -o main.o
出现错误:
Error: unrecognized opcode 'mul a0,t4,t5', extension 'm' or 'zmmul' required
尽管工具链构建和编译命令均指定了m扩展,汇编器仍无法识别mul指令。
解决方法
检查汇编源码main.s,发现其中存在语句:
.attribute 5, "rv32i2p0"
该语句会覆盖命令行传入的-march参数,导致汇编器仅启用rv32i基础指令集,无法识别m扩展的mul指令。
将该属性语句修改为:
.attribute 5, "rv32imac"
重新执行编译命令即可正常生成目标文件。
内容的提问来源于stack exchange,提问作者user3272
相关产品推荐
相关产品推荐

