【发布时间】:2015-12-08 06:29:17
【问题描述】:
几天前我已经开始使用 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 代码?
【问题讨论】:
-
你的程序在做什么?如果您正在调用标准库,那么它将从 gcc 中提取代码。代码使用的扩展取决于您编译编译器的方式。
标签: riscv