- 追加された行はこの色です。
- 削除された行はこの色です。
*参照元 [#g7ee039b]
#backlinks
*説明 [#d458c05d]
-パス: [[gcc-8.3/gcc/gengenrtl.c]]
--[[gcc-8.3/gcc/gengtype.c]]
--[[gcc-8.3/gcc/genopinit.c]]
--[[gcc-8.3/gcc/genrecog.c]]
--[[gcc-8.3/gcc/rtl.c]]
--[[gcc-8.3/gcc/rtl.h]]
-FIXME: これは何?
--説明
--このマクロを define, include "rtl.def", マクロを undef をセットにして使う。
例
enum rtx_code
{
#define DEF_RTL_EXPR(ENUM, NAME, FORMAT, CLASS) ENUM ,
#include "rtl.def"
#undef DEF_RTL_EXPR
NUM_RTX_CODE
};
rtl.def には下記のように DEF_RTL_EXPR を使った定義が羅列されていて、
/* Unknown, or no such operation; the enumeration constant should have
value zero. */
DEF_RTL_EXPR(UNKNOWN, "UnKnown", "*", RTX_EXTRA)
/* Used in the cselib routines to describe a value. Objects of this
kind are only allocated in cselib.c, in an alloc pool instead of in
GC memory. The only operand of a VALUE is a cselib_val.
var-tracking requires this to have a distinct integral value from
DECL codes in trees. */
DEF_RTL_EXPR(VALUE, "value", "0", RTX_OBJ)
/* The RTL generated for a DEBUG_EXPR_DECL. It links back to the
DEBUG_EXPR_DECL in the first operand. */
DEF_RTL_EXPR(DEBUG_EXPR, "debug_expr", "0", RTX_OBJ)
ENUM のみを残すマクロを定義してから、
#define DEF_RTL_EXPR(ENUM, NAME, FORMAT, CLASS) ENUM ,
include "rtl.def" することで、NAME, FORMAT, CLASS の情報は消えて、ENUM のみが並ぶ。
**引数 [#jbe12db6]
-
-ENUM
--
-NAME
--
-FORMAT
--
-CLASS
--
**返り値 [#q4fa68e4]
-
--
**参考 [#a1e2b1bc]
*実装 [#w6a30d88]
*コメント [#r52b8f4f]