*参照元 [#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]