Next: Exception Region Output, Previous: Instruction Output, Up: Assembler Format
这些是关于派遣表的。
一条C语句,用来将汇编伪指令输出到stdio流stream中, 以生成两个标号间的距离。value和rel为两个内部标号的编号。 这些标号的定义通过使用
(*targetm.asm_out.internal_label)
来输出, 并且它们必须使用相同的方式打印。例如,fprintf (stream, "\t.word L%d-L%d\n", value, rel)在一些机器上,派遣表中的地址是相对于表自己的地址,对此你必须提供该宏。 如果定义,GCC还将在生成PIC的所有机器上使用该宏。 body为
ADDR_DIFF_VEC
的主体;提供它使得可以读取模式和标记。
在一些机器上,派遣表中的地址为绝对地址,对此应该提供该宏。
定义应该为一条C语句,用来将汇编伪指令输出到stdio流stream中, 以生成对一个标号的引用。value为内部标号的编号, 其定义应该使用
(*targetm.asm_out.internal_label)
输出。例如,fprintf (stream, "\t.word L%d\n", value)
定义该宏,如果在跳转表之前的标号需要被特殊输出。 前三个参数跟
(*targetm.asm_out.internal_label)
相同; 第四个参数为随后的跳转表(一个包含addr_vec
或addr_diff_vec
的jump_insn
)。该特点用于system V,来为table输出一条
swbeg
语句。如果没有定义该宏,这些标号使用
(*targetm.asm_out.internal_label)
输出。
定义该宏,如果在跳转表的结尾必须输出一些特殊的东西。定义应该为一条C语句, 在写完table的汇编代码后被执行。其应该将适当的代码写入到stdio流stream中。 参数table为jump-table insn,num为前面的标号的编号。
如果没有定义该宏,在跳转表的结尾不输出任何特殊的东西。
该target钩子在每个FDE的起始处生成一个标号。在一些target上,FDE需要特殊的标号, 对此应该定义该宏。其应该为函数声明decl相关联的FDE写入适当的标号到stdio流 stream中。第三个参数,for_eh,为一个布尔值;当是异常表时为真。 第四个参数empty,为一个布尔值;当是一个省略掉的FDE的占位符标号时为真。
缺省为FDE不给出非局部标号。
该target钩子在异常表的起始处生成一个标号。在一些target上, 异常表需要根据函数被分割开,对此应该定义该宏。
The default is that no label is emitted. 缺省为不生成标号。
If the target implements
TARGET_ASM_UNWIND_EMIT
, this hook may be used to emit a directive to install a personality hook into the unwind info. This hook should not be used if dwarf2 unwind info is used.