当前 riscv-gnu-toolchain 中无法识别的自定义 asm 助记符
custom asm mnemonics unrecognized in current riscv-gnu-toolchain
例如,以下 assembler 语句应转换为操作码 0x0000000b
custom0 0,0,0,0
对于旧版本的 riscv-gnu-toolchain(6 月 4 日构建),assemble 不需要 -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'
通过阅读源代码,我猜想将 arch 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。使用那个版本,custom0 操作码在有和没有 -march=
选项的情况下被识别。
我也遇到了这个问题,在昨天的 gnu 工具链更新中,如果你查看 risv-opcodes 文件夹中的 opcodes.custom 文件,所有自定义操作码都被注释了,你需要取消注释那些你需要并重新编译工具链
抱歉,这花了很长时间才找到 -- 我不读 Whosebug。为了将来参考,如果您提交 github issue/PR 或直接给我发电子邮件,我会处理这些事情。
此处应该有修复程序,您介意验证一下吗?
https://github.com/riscv/riscv-gnu-toolchain/pull/97
抱歉引入回归!
例如,以下 assembler 语句应转换为操作码 0x0000000b
custom0 0,0,0,0
对于旧版本的 riscv-gnu-toolchain(6 月 4 日构建),assemble 不需要 -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'
通过阅读源代码,我猜想将 arch 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。使用那个版本,custom0 操作码在有和没有 -march=
选项的情况下被识别。
我也遇到了这个问题,在昨天的 gnu 工具链更新中,如果你查看 risv-opcodes 文件夹中的 opcodes.custom 文件,所有自定义操作码都被注释了,你需要取消注释那些你需要并重新编译工具链
抱歉,这花了很长时间才找到 -- 我不读 Whosebug。为了将来参考,如果您提交 github issue/PR 或直接给我发电子邮件,我会处理这些事情。
此处应该有修复程序,您介意验证一下吗? https://github.com/riscv/riscv-gnu-toolchain/pull/97
抱歉引入回归!