几天前我已经开始使用 risc-v,但昨天我遇到了问题。问题如下:
例如,我想为 RV32I 基本整数指令集编译代码,并且我也想添加“M”标准扩展。
当我编译 C 代码时,我使用以下命令
riscv64-unknown-elf-gcc Program.c -o Program.o -m32 -march=RV32IM
现在,例如,如果我想查看汇编代码,我使用
riscv64-unknown-elf-objdump -d Program.c > Program.dump
现在,如果我探索转储文件 "Program.dump" 。我注意到有时会出现汇编指令:
10c6c: 00a12427 fsw fa0,8(sp)
10dd0: 00a42023 sd a0,8(sp)
在许多其他情况下。
如果我在第 52 页看到“RISC-V 指令集手册,第一卷:用户级 ISA,版本 2.0”,我观察到 fsw 指令属于 RV32F 标准扩展,而 sd 指令属于 RV64I。
出于这个原因,我很困惑我不知道我的问题是否是我编译不好。
我的问题是:如何仅为 RV32I 基本整数指令和扩展 M 编译 C 代码?