+2000-11-16 DJ Delorie <dj@redhat.com>
+
+ * rtl.c (read_rtx): Provide suitable names for unnamed
+ define_insn and define_insn_and_split patterns, based on file
+ and line numbers.
+
2000-11-15 Neil Booth <neilb@earthling.net>
* cpplib.c (start_directive, end_directive): New functions.
{
int saw_paren = 0;
register char *stringbuf;
+ int saw_anything = 0;
c = read_skip_spaces (infile);
if (c == '(')
break;
obstack_1grow (&rtl_obstack, c);
+ saw_anything = 1;
+ }
+
+ /* For insn patterns, we want to provide a default name
+ based on the file and line, like "*foo.md:12", if the
+ given name is blank. These are only for define_insn and
+ define_insn_and_split, to aid debugging. */
+ if (!saw_anything
+ && i == 0
+ && (GET_CODE (return_rtx) == DEFINE_INSN
+ || GET_CODE (return_rtx) == DEFINE_INSN_AND_SPLIT))
+ {
+ char line_name[20];
+ const char *fn = (read_rtx_filename ? read_rtx_filename : "rtx");
+ char *slash;
+ for (slash = fn; *slash; slash ++)
+ if (*slash == '/' || *slash == '\\' || *slash == ':')
+ fn = slash + 1;
+ obstack_1grow (&rtl_obstack, '*');
+ obstack_grow (&rtl_obstack, fn, strlen (fn));
+ sprintf (line_name, ":%d", read_rtx_lineno);
+ obstack_grow (&rtl_obstack, line_name, strlen (line_name));
}
obstack_1grow (&rtl_obstack, 0);