gpt4 book ai didi

c - 如何为 gcc 编写自己的代码生成器后端?

转载 作者:太空狗 更新时间:2023-10-29 16:21:09 25 4
gpt4 key购买 nike

我已经创建了我自己的(非常简单的)字节码语言,以及一个执行它的虚拟机。它工作正常,但现在我想使用 gcc(或任何其他免费提供的编译器)从普通的 c 程序为这台机器生成字节码。那么问题来了,我该如何修改或者扩展gcc,让它可以输出我自己的字节码呢?请注意,我不想将我的字节代码编译为机器代码,我想将 c 代码“编译”为(我自己的)字节代码。

我意识到这是一个潜在的大问题,最好的答案可能是“去看看 gcc 源代码”。我只需要一些帮助来了解如何开始使用它。我想一定有一些关于这个主题的文章或书籍可以描述将自定义生成器添加到 gcc 的过程,但我没有通过谷歌搜索找到任何东西。

最佳答案

我正忙于将 gcc 移植到我们之前设计的 8 位处理器上。对于我们的机器来说,这是一项艰巨的任务,因为它是 8 位的,而且我们只有一个累加器,但如果你有更多的资源,它就会变得容易。这就是我们尝试使用 gcc 4.9 和 cygwin 管理它的方式:

  1. 下载 gcc 4.9 源代码
  2. 将您的体系结构名称添加到 config.sub 大约第 250 行查找 # Decode aliases for certain CPU-COMPANY combinations。 在该列表中添加 |我的处理器\
  3. 在同一文件中查找 # Recognize the basic CPU types with company name. 将您自己添加到列表中:|我的处理器-*\
  4. 搜索文件gcc/config.gcc,在文件中查找case ${target},它在880行附近,按以下方式添加自己:

      ;;
    my_processor*-*-*)
    c_target_objs="my_processor-c.o"
    cxx_target_objs="my_processor-c.o"
    target_has_targetm_common=no
    tmake_file="${tmake_file} my_processor/t-my_processor"
    ;;
  5. 创建一个文件夹gcc-4.9.0\gcc\config\my_processor
  6. 从现有项目复制文件并对其进行编辑,或者从头开始创建您自己的文件。在我们的项目中,我们复制了 msp430 项目中的所有文件并对其进行了全部编辑
  7. 您应该拥有以下文件(并非所有文件都是必需的):
    • my_processor.c
    • my_processor.h
    • my_processor.md
    • my_processor.opt
    • my_processor-c.c
    • my_processor.def
    • my_processor-protos.h
    • constraints.md
    • 谓词.md
    • README.txt
    • t-my_processor
  8. 创建路径gcc-4.9.0/build/object
  9. 为我的编译器运行 ../../configure --target=my_processor --prefix=path --enable-languages="c"
  10. 制作
  11. 安装
  12. 做大量研究和调试。
  13. 玩得开心。

关于c - 如何为 gcc 编写自己的代码生成器后端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10617215/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com