【问题标题】:Object code generation for new RISCV instruction emitted by LLVM backendLLVM 后端发出的新 RISCV 指令的目标代码生成
【发布时间】:2017-05-03 22:13:16
【问题描述】:

来自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 以便它知道新指令的格式?

【问题讨论】:

  • 是的,您需要在 xxxInstrInfo.td 文件中应用更改。

标签: llvm riscv object-files


【解决方案1】:

riscv64-unknown-elf-gcc 调用 as,即通常来自 binutils 的 GNU as 将汇编代码(即您的 sn-p 中的 hello.S)组装成可执行的机器代码。因此,如果您想汇编一条新指令,则必须修改 binutils。

【讨论】:

    猜你喜欢
    • 2013-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-20
    • 1970-01-01
    • 2021-08-25
    • 1970-01-01
    相关资源
    最近更新 更多