在当前的riscv-gnu-toolchain中无法识别的自定义asm助记符

时间:2015-10-26 23:05:28

标签: riscv

例如,以下汇编语句应转换为操作码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 because of this构建。)

编辑:适用于我的riscv-tools的最新版本是从8月20日开始提交84a47e0b4e。使用该版本,可以使用-march=选项识别custom0操作码。

2 个答案:

答案 0 :(得分:2)

很抱歉这需要很长时间才能找到 - 我没有阅读stackoverflow。为了将来参考,如果您提交github问题/ PR或直接给我发电子邮件,我会处理这些事情。

修复应该在这里,你介意验证吗? https://github.com/riscv/riscv-gnu-toolchain/pull/97

很抱歉介绍回归!

答案 1 :(得分:1)

我也遇到过这个问题,在昨天更新gnu工具链时,如果查看risv-opcodes文件夹中的opcodes.custom文件,所有自定义操作码都被注释,你需要取消注释你需要的那些并重新编译工具链