*参照元 [#bbc0ce69]
#backlinks

*説明 [#i0318e99]
-パス: [[gcc-8.3/gcc/rtl.h]]

-FIXME: これは何?
--RTX の引数(u.fld[])が取るべき型が文字列で返される。
--例えば insn なら 'uuBeiie' である。1文字が 1フィールドに対応している。
なので insn は 7つ引数を取って、それぞれの型は 'u', 'u', 'B', 'e', 'i', 'i', 'e' だとわかる。
--RTX のオペランド(u.fld[])が取るべき型が文字列で返される。
--例えば insn なら 'uuBeiie' である。1文字が 1オペランドに対応している。
なので insn は 7つオペランドを取って、それぞれの型は 'u', 'u', 'B', 'e', 'i', 'i', 'e' だとわかる。

-GCC 内では、
 char c = GET_RTX_FORMAT(GET_CODE(rtx))[N]
このようにして、rtx の N 番目のフィールドが取るべき型は何か?を得ている。
このようにして、rtx の N 番目のオペランドが取るべき型は何か?を得ている。

-デバッガなどで直接見たければ、マクロ展開後の式、
 rtx_format[rtx->code][N]
で見ると早い。rtx_format はグローバル変数なので、いつでも参照できるはず。


**引数 [#h1e69a2d]
-enum rtx_code CODE
--RTX の種類、簡単に言えば RTX の code メンバの値
--[[gcc-8.3/gcc/rtx_def]]


**返り値 [#x76a4123]
-const char *
--RTX の引数(u.fld[])が取るべき型が文字列で返される。
--RTX のオペランド(u.fld[])が取るべき型が文字列で返される。


**参考 [#za24dd91]


*実装 [#v72e2b2f]
 #define GET_RTX_FORMAT(CODE)		(rtx_format[(int) (CODE)])
-RTX が取るべき型を返す。
-RTX のオペランドが取るべき型を返す。
--[[gcc-8.3/gcc/rtx_format(global)]]


*コメント [#z2b46ef4]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS