使用基于 LLVM 的工具(clang、Rust、Zig)为 N64 进行编译?

问题描述 投票:0回答:1

我正在尝试使用基于 LLVM 的

zig cc
为 R4300i / VR4300 MIPS CPU(N64 中的处理器)编译 C 代码(以及最终其他基于 LLVM 的语言,如 Rust/Zig)。但我没有看到任何以 VR4300 作为目标进行编译的证据或示例:

  • 编译指南/工具我见过使用GCC / IDO进行编译的指导,没有提到基于LLVM的C编译器(甚至没有像clang这样更主流的编译器)。
  • 我没有看到它列在
    zig targets
    中。
  • 我没有看到任何方法来列出可用于 LLVM 的有效目标。

问题

  1. LLVM不支持VR4300作为编译目标吗?
    • 我如何自己找到这个问题?
  2. 如果没有:我见过像 llvm-mos 这样的项目,它是旧 LLVM 版本的一个分支,已被修改为支持 MOS CPU 目标,如 Commodore 64。VR4300 有这样的项目吗?
rust clang llvm mips zig
1个回答
0
投票

让我们分解一下您的问题:

1. LLVM不支持VR4300作为编译目标吗?

LLVM 本身不支持 VR4300 或更广泛的 MIPS R4300i 作为特定目标。 LLVM 中的通用 MIPS 后端可能并不完美适合 VR4300,因为 VR4300 中存在独特的怪癖、特殊指令和协处理器,而这些在更通用的 MIPS 架构中并不存在。

2.我如何自己找到这个?

您可以采取以下一些步骤:

  1. LLVM 文档:这通常是最好的第一个检查位置。然而,LLVM 的广度和深度可能使其难以导航。

  2. LLVM 源代码:查看 LLVM 源代码并导航到

    lib/Target
    目录可以给出 LLVM 可以定位的架构列表。

  3. 命令行:您可以直接使用LLVM工具。例如,如果您有

    clang
    (LLVM 的 C 语言前端),您可以运行:

    clang --print-targets
    

    这应该提供一个架构列表

    clang
    /LLVM 可以编译。

  4. LLVM 邮件列表和论坛:如果您在官方文档或浏览源代码中找不到答案,LLVM 社区庞大且非常活跃。在 LLVM 邮件列表或适当的论坛上提问可能是获得明确答案的好方法。

3. VR4300有这样的项目吗?

截至我上次更新,我不知道有为 VR4300 量身定制的 LLVM 特定分支或项目。 N64 开发社区很活跃,但考虑到 GCC 编译器的丰富历史和对 MIPS 架构的支持,他们经常利用现有工具。

但是,如果您希望 VR4300 获得 LLVM 支持,可以采取以下几种方法:

  1. 搜索 GitHub 和其他存储库:新项目会定期弹出,并且可能有一个新的或不起眼的项目正在致力于此。

  2. 启动您自己的分支:如果您雄心勃勃并且对 VR4300 和 LLVM 内部结构有深入的了解(或愿意深入了解),您可以启动您自己的 LLVM 分支并添加支持。

  3. 扩展现有后端:可以扩展 LLVM 的现有 MIPS 后端以添加对 VR4300 特定功能的支持,而不是从头开始。

请记住,向 LLVM 添加新目标并非易事,需要深入了解相关架构和 LLVM 的内部结构。这是一项艰巨的任务,但如果您有奉献精神并拥有合适的资源,这当然是可行的。

© www.soinside.com 2019 - 2024. All rights reserved.