Lines Matching refs:macro

25 /* Disable rtl checking; it conflicts with the macro handling.  */
45 /* Maps a macro or attribute name to a list of (integer, string) pairs.
49 /* The name of the macro or attribute. */
52 /* The group (modes or codes) to which the macro or attribute belongs. */
55 /* Gives a unique number to the attribute or macro. Numbers are
69 number available for use as a macro placeholder). */
104 /* If CODE is the number of a code macro, return a real rtx code that
150 /* The mode and code macro structures. */
282 map_attr_string (const char *p, struct mapping *macro, int value)
288 /* If there's a "macro:" prefix, check whether the macro name matches.
295 if (strncmp (p, macro->name, attr - p) != 0
296 || macro->name[attr - p] != 0)
302 m = (struct mapping *) htab_find (macro->group->attrs, &attr);
342 attribute is used for a mode. MACRO is the current macro we are
349 apply_mode_maps (rtx x, struct map_value *mode_maps, struct mapping *macro,
367 v = map_attr_string (pm->string, macro, value);
382 apply_macro_to_string (const char *string, struct mapping *macro, int value)
396 v = map_attr_string (p, macro, value);
424 apply_macro_to_rtx (rtx original, struct mapping *macro, int value,
443 group = macro->group;
444 if (group->uses_macro_p (x, macro->index + group->num_builtins))
448 apply_mode_maps (x, mode_maps, macro, value, infile, unknown_mode_attr);
456 XTMPL (x, i) = apply_macro_to_string (XTMPL (x, i), macro, value);
461 XSTR (x, i) = apply_macro_to_string (XSTR (x, i), macro, value);
465 XEXP (x, i) = apply_macro_to_rtx (XEXP (x, i), macro, value,
477 macro, value, mode_maps,
489 /* Return true if X (or some subexpression of X) uses macro MACRO. */
492 uses_macro_p (rtx x, struct mapping *macro)
501 group = macro->group;
502 if (group->uses_macro_p (x, macro->index + group->num_builtins))
510 if (uses_macro_p (XEXP (x, i), macro))
518 if (uses_macro_p (XVECEXP (x, i, j), macro))
570 for rtxes that use the macro in *SLOT. Replace each such rtx
577 struct mapping *macro;
581 macro = (struct mapping *) *slot;
583 if (uses_macro_p (XEXP (elem, 0), macro))
585 /* For each macro we expand, we set UNKNOWN_MODE_ATTR to NULL.
594 for (v = macro->values; v != 0; v = v->next)
596 x = apply_macro_to_rtx (original, macro, v->number,
600 if (v != macro->values)
1362 /* Check newly-created code macro MACRO to see whether every code has the
1363 same format. Initialize the macro's entry in bellwether_codes. */
1366 check_code_macro (struct mapping *macro, FILE *infile)
1371 bellwether = (enum rtx_code) macro->values->number;
1372 for (v = macro->values->next; v != 0; v = v->next)
1374 fatal_with_file_and_line (infile, "code macro `%s' combines "
1375 "different rtx formats", macro->name);
1378 macro->index + 1);
1379 bellwether_codes[macro->index] = bellwether;