gcc 的后端机器描述文件是放在gcc/config 目录中,
其中各个硬件平台占有一个目录
比如
gcc\config\xtensa 就是xtensa 的硬件描述文件所在
这里面主要是三个文件
xtensa.md xtensa.h xtensa.c
xtensa.h xtensa.c
主要完成下面项目的描述:
argetm是用来描述目标机器的结构体
struct gcc_target targetm = TARGET_INITIALIZER
存储布局(storage layout)
函数调用规范
寄存器描述
寻址方式
堆stack 规范描述
寻址方式
详细可参看《深入分析GCC.pdf》,并结合xtensa.h xtensa.c源码
具体各个平台,可参看对应平台的描述文件
xtensa.md
机器描述文件的作用是将目标机器的特性引入到编译器中,从知道编译器根据目标机器的特性将Insn转换为目标代码. 机器描述文件中的主要内容包括对于目标机器的:
指令模板(Insn Pattern)的定义
常量(Constant)的定义
属性(Attribute)的定义
自定义断言(User-Defined Predicte)的定义
自定义约束(User-Defined Constraint)的定义
枚举器(It