一:概述
LLVM具有非常灵活的架构。我们可以向其添加新的目标后端。后端的核心是目标描述。在本篇文章中,我们将学习如何在LLVM中添加一个CPU后端。
在本章中,我们将涵盖以下内容:
• 为新的后端搭建环境,学习M88k CPU架构,并介绍从哪里可以找到所需的信息。
• 将新架构添加到Triple类中,学习如何让LLVM识别新的CPU架构。
• 扩展LLVM中的ELF文件格式定义,向处理ELF目标文件的库和工具添加对M88k特有重定位的支持。
• 创建目标描述,运用我们对TableGen语言的知识来建模目标描述中的寄存器文件和指令。
• 将M88k后端添加到LLVM,解释LLVM后端所需的数据结构。
• 实现汇编器解析器,学习如何开发汇编器。
• 创建反汇编器,学习如何创建反汇编器。
到本篇文章结束时,我们将知道如何将新后端添加到LLVM。我们将获得在目标描述中开发寄存器文件定义和指令定义的知识,并且我们将知道如何从该描述中创建汇编器和反汇编器。
二:为后端搭建环境
无论是出于商业需要支持新的 CPU,还是仅仅是为了一个爱好项目来增加对某些旧架构的支持,向 LLVM 添加一个新的后端都是一项重大任务。本文及接下来的两篇文章概述了开发新后端所需的内容。我们将为摩托罗拉 M88k 架构添加一个后端,该架构是 1980 年代的 RISC 架构。
M88k 架构早已停产,但我们找到了足够的信息和工具,使得为其添加 LLVM 后端成为一个有趣的目标。我们将从扩展 Triple 类这一非常基础的任务开始。
标签:M88k,汇编器,LLVM,架构,后端,编译器,添加,CPU From: https://blog.csdn.net/zg260/article/details/141233747