例如,下面的汇编语句应该翻译成操作码0x0000000b
custom0 0,0,0,0
使用旧版本的 riscv-gnu-toolchain(建于 6 月 4 日)不需要 -march= 选项来组装它。然而,今天我得到了riscv-tools的 git 负责人:
$ /opt/riscv_new/bin/riscv64-unknown-elf-as -m32 test.s
test.s: Assembler messages:
test.s:1: Error: unrecognized opcode `custom0 0,0,0,0'
通过阅读源代码,我猜想将拱门传递Xcustom
给工具应该可以解决这个问题,但是:
$ /opt/riscv_new/bin/riscv64-unknown-elf-as -m32 -march=RV32IMXcustom test.s
test.s: Assembler messages:
test.s:1: Error: unrecognized opcode `custom0 0,0,0,0'
(由于这个原因,目前 PicoRV32 测试固件没有使用最新的 riscv-gnu-toolchain 构建。)
编辑:对我有用的 riscv-tools 的最后一个版本是从 8 月 20 日开始提交 84a47e0b4e。使用该版本,无论有无该-march=
选项,都可以识别 custom0 操作码。