操作数0——为一字符串,称为指令名。该字符串可以为空,当非空时,它要么为gcc 规定的标准指令名,要么为开发者任意给定的名字。非标准名和空名的指令样板只在gcc 编译的汇编代码生成过程中起作用。标准指令名的样板还在RTL 生成中起作用。
操作数1——为一不完全的rtx 表达式或向量,称为RTL 模板。它表示该指令样板的RTL 指令体。RTL 模板只规定了RTL 指令体中的各种操作以及操作数的位置和操作数必须满足的条件和限制,并未指明具体的操作数。 操作数2——为一字符串,称为条件。这个字符串或者为空,或者为一C 条件表达式。当非空时,它指出此样板有效的条件。 操作数3——为一字符串,称为输出模板。输出模板用来确定与此样板相匹配的RTL 指令的汇编输出形式,它有三种形式:单个汇编模板,多个汇编模板以及C 代码。前二种形式直接就是目标机的汇编指令,汇编模板中用特殊字符‘%’后随数字或其它字符指明各操作数的位置和输出格式。第三种C代码形式适用于不能直 接静态给出汇编模板的情形,这段汇编代码将被编译程序吸收并用动态产生汇编模板。 操作数4——它为一任选的rtx 向量,称为指令属性。当此操作数出现时,它给出与这一样板相匹配的指令的属性 RTL - gcc 的中间语言称为寄存器传递语言(RegisterTransfer Language)