- 论坛徽章:
- 0
|
回复 27# zylthinking
/* Reference to an assembler label in the code for this function.
The operand is a CODE_LABEL found in the insn chain. */
DEF_RTL_EXPR(LABEL_REF, "label_ref", "u", RTX_CONST_OBJ)
/* Reference to a named label:
Operand 0: label name
Operand 1: flags (see SYMBOL_FLAG_* in rtl.h)
Operand 2: tree from which this symbol is derived, or null.
This is either a DECL node, or some kind of constant. */
DEF_RTL_EXPR(SYMBOL_REF, "symbol_ref", "s00", RTX_CONST_OBJ)
assembler label指的是asm的label,不是C的控制label。
asm的label不可能用内嵌汇编去定义,只能间接生成,比如 "s"("hello"),字符串hello就让gcc间接生成了一个asm label。
named label指的还是asm的label,但是是命名的。只有全局变量才会有命名的label,比如"s"(&globaln),如果globaln是全局变量,那么gcc会为他生成一个命名label,名字就是globaln,传其地址,其实就是传其label。 |
|