|
GCC Middle and Back End API Reference
|
Public Types | |
| enum | long_mul_row_part { HIGH_PART , LOW_PART } |
Data Fields | |
| enum long_mul_row::long_mul_row_part | part |
| tree_code | outer |
| unsigned char | count |
| struct { | |
| long_mul_kind kind | |
| long_mul_extract extract | |
| } | sig [LONG_MUL_MAX_SUMMANDS] |
| bool(* | extra_check )(const vec< long_mul_summand > &, gimple *) |
One row of the long-multiply variant table. COUNT is how many entries
of SIG carry the row's signature (2 to LONG_MUL_MAX_SUMMANDS); a row
with fewer summands leaves the remaining SIG entries zero-initialized.
Those zeros are not a terminator -- {LMK_MUL_HIHI, LMX_NONE} is itself a
valid signature -- so long_mul_signature_matches is bounded by COUNT,
never by a sentinel entry. | unsigned char long_mul_row::count |
Referenced by long_mul_signature_matches().
| bool(* long_mul_row::extra_check) (const vec< long_mul_summand > &, gimple *) |
| long_mul_extract long_mul_row::extract |
Referenced by long_mul_signature_matches().
| long_mul_kind long_mul_row::kind |
Referenced by long_mul_signature_matches().
| tree_code long_mul_row::outer |
| enum long_mul_row::long_mul_row_part long_mul_row::part |
Referenced by match_long_mul(), and match_long_mul_phi().
| struct { ... } long_mul_row::sig[LONG_MUL_MAX_SUMMANDS] |
Referenced by long_mul_signature_matches().