来自https://github.com/riscv/riscv-llvm,
使用llvm-riscv构建完整的可执行文件非常简单 但是你需要riscv64-unknown - * - gcc来进行组装和 链接。编译hello world的一个例子:
$ clang -target riscv64 -mriscv=RV64IAMFD -S hello.c -o hello.S
$ riscv64-unknown-elf-gcc -o hello.riscv hello.S
我的问题是:如果我更改LLVM后端并让它在hello.S文件中发出新指令,那么riscv64-unknown-elf-gcc
将如何知道如何将其转换为目标代码?我还需要在riscv64-unknown-elf-gcc
中进行更改,以便它知道新指令的格式吗?
答案 0 :(得分:0)
riscv64-unknown-elf-gcc
调用as
,即通常从binutils调用GNU as
,以将汇编代码(即代码段中的hello.S
)汇编成可执行的机器代码。因此,如果要汇编一条新指令,则必须修改binutils。