[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
RTX コード asm_operands
は、ユーザが指定したアセンブラ命令に
より生成される値を表現する。引数付きの asm
文を表現するのに
使われる。出力オペランドが一つの asm
文は以下のようになる。
asm ("foo %1,%2,%0" : "=a" (outputvar) : "g" (x + y), "di" (*z)); |
この asm
文は、値が outputvar
に格納されることを
表現する、一個の asm_operands
RTX を使って以下のように表現される。
(set rtx-for-outputvar (asm_operands "foo %1,%2,%0" "a" 0 [rtx-for-addition-result rtx-for-*z] [(asm_input:m1 "g") (asm_input:m2 "di")])) |
ここで、asm_operands
RTX のオペランドは、アセンブラテンプレート文字列、
出力オペランドについての制限子、指定されたオペランドの中での出力オペランド
の番号、入力オペランド RTX のベクトル、それに、入力オペランドのモードと
制約のベクトルからなる。モード m1 は、和 x+y
のモードであり、
m2 は、*z
のモードである。
asm
文に複数の出力値がある場合は、その insn は parallel
の
内側に幾つかの set
RTX を持つ。
set
はそれぞれ asm_operands
を含んでいる。
これらの set
は全て、同じアセンブラテンプレートとベクトルを
共有しているが、それぞれ出力オペランドに応じた制約を保持している。
This document was generated
using texi2html 1.78.