*参照元 [#ca815f68] #backlinks *説明 [#fb655811] -パス: [[gcc-8.3/gcc/recog.h]] -FIXME: これは何? --説明 **参考 [#gcc61343] *実装 [#k98f98b2] /* The following vectors hold the results from insn_extract. */ struct recog_data_d { /* It is very tempting to make the 5 operand related arrays into a structure and index on that. However, to be source compatible with all of the existing md file insn constraints and output templates, we need `operand' as a flat array. Without that member, making an array for the rest seems pointless. */ /* Gives value of operand N. */ rtx operand[MAX_RECOG_OPERANDS]; /* Gives location where operand N was found. */ rtx *operand_loc[MAX_RECOG_OPERANDS]; - --[[gcc-8.3/gcc/rtx]] /* Gives the constraint string for operand N. */ const char *constraints[MAX_RECOG_OPERANDS]; /* Nonzero if operand N is a match_operator or a match_parallel. */ char is_operator[MAX_RECOG_OPERANDS]; /* Gives the mode of operand N. */ machine_mode operand_mode[MAX_RECOG_OPERANDS]; - --[[gcc-8.3/gcc/machine_mode]] /* Gives the type (in, out, inout) for operand N. */ enum op_type operand_type[MAX_RECOG_OPERANDS]; - --[[gcc-8.3/gcc/op_type]] /* Gives location where the Nth duplicate-appearance of an operand was found. This is something that matched MATCH_DUP. */ rtx *dup_loc[MAX_DUP_OPERANDS]; /* Gives the operand number that was duplicated in the Nth duplicate-appearance of an operand. */ char dup_num[MAX_DUP_OPERANDS]; /* ??? Note that these are `char' instead of `unsigned char' to (try to) avoid certain lossage from K&R C, wherein `unsigned char' default promotes to `unsigned int' instead of `int' as in ISO C. As of 1999, the most common places to bootstrap from K&R C are SunOS and HPUX, both of which have signed characters by default. The only other supported natives that have both K&R C and unsigned characters are ROMP and Irix 3, and neither have been seen for a while, but do continue to consider unsignedness when performing arithmetic inside a comparison. */ /* The number of operands of the insn. */ char n_operands; /* The number of MATCH_DUPs in the insn. */ char n_dups; /* The number of alternatives in the constraints for the insn. */ char n_alternatives; /* True if insn is ASM_OPERANDS. */ bool is_asm; /* In case we are caching, hold insn data was generated for. */ rtx_insn *insn; }; - --[[gcc-8.3/gcc/rtx_insn]] *コメント [#i24ecda8]