Riscv-gcc无法识别操作码b

时间:2015-04-22 12:30:00

标签: riscv

当我使用riscv-gcc编译一个简单的汇编程序时,它告诉我它无法识别操作码b 1b,这是程序:

   ...
   sll x28,x28,1;
1: b 1b

b 1b是最后一条指令,一个循环。

该计划来自riscv-sodor项目。为什么编译失败?

1 个答案:

答案 0 :(得分:2)

问题是你正在使用更新的编译器gcc 4.9,其中包括一个新的ABI和对接受的伪操作的一些更改。 Sodor存储库(截至2015年4月)包含针对已弃用的gcc 4.6端口的汇编代码。

您可以快速将“b”更改为“j”。

有关gcc4.9更新的其他信息:

https://riscv.org/2015/01/announcing-the-risc-v-gcc-4-9-port-and-new-abi/

关于新ABI的章节:

https://riscv.org/wp-content/uploads/2015/01/riscv-calling.pdf

更改包括删除v0 / v1(现在为a0 / a1)。