Next: Assembler Format, Previous: Sections, Up: Target Macros
这一节描述了帮助实现位置独立代码生成的宏。
简单的定义这些宏并不足以生成有效的PIC;
你必须还要增加对宏GO_IF_LEGITIMATE_ADDRESS
和
PRINT_OPERAND_ADDRESS
的支持,还有LEGITIMIZE_ADDRESS
。
你必须修改‘movsi’的定义,
当源操作数包含一个符号地址时来做一些适当的处理。
还可能需要修改switch语句的处理,使得它们使用相对地址。
用于寻址内存中静态数据地址表的寄存器的编号。一些情况下, 该寄存器由处理器的“应用二进制接口”(ABI)定义。当该宏被定义时, 会为该寄存器生成一次 RTL,使用栈指针和帧指针寄存器。如果该宏没有被定义, 则需要机器相关文件来分配这样的寄存器(如果需要的话)。 注意该寄存器在使用时(即当
flag_pic
为真时)必须为固定的。