参照元†
/* Describes a possible successful return from a routine. */
struct acceptance_type
{
/* The type of routine we're returning from. */
routine_type type : 16;
/* True if this structure only really represents a partial match,
and if we must call a subroutine of type TYPE to complete the match.
In this case we'll call the subroutine and, if it succeeds, return
whatever the subroutine returned.
False if this structure presents a full match. */
unsigned int partial_p : 1;
union
{
/* If PARTIAL_P, this is the number of the subroutine to call. */
int subroutine_id;
/* Valid if !PARTIAL_P. */
struct
{
/* The identifier of the matching pattern. For SUBPATTERNs this
value belongs to an ad-hoc routine-specific enum. For the
others it's the number of an .md file pattern. */
int code;
union
{
/* For RECOG, the number of clobbers that must be added to the
pattern in order for it to match CODE. */
int num_clobbers;
/* For PEEPHOLE2, the number of additional instructions that were
included in the optimization. */
int match_len;
} u;
} full;
} u;
};
コメント†