rtl.h (read_rtx): Change prototype.

* rtl.h (read_rtx): Change prototype.
	* read-rtl.c (read_rtx): Provide the caller with both an rtx and a
	line number.  Return true on success.
	* gensupport.c (process_include, init_md_reader_args_cb): Adjust
	callers accordingly.

From-SVN: r86657
This commit is contained in:
Richard Sandiford 2004-08-27 10:12:51 +00:00 committed by Richard Sandiford
parent 6a6bfc8e70
commit 57406c63cd
4 changed files with 33 additions and 37 deletions

View File

@ -1,3 +1,11 @@
2004-08-26 Richard Sandiford <rsandifo@redhat.com>
* rtl.h (read_rtx): Change prototype.
* read-rtl.c (read_rtx): Provide the caller with both an rtx and a
line number. Return true on success.
* gensupport.c (process_include, init_md_reader_args_cb): Adjust
callers accordingly.
2004-08-26 Richard Henderson <rth@redhat.com>
* c-typeck.c (build_offsetof): Remove.

View File

@ -246,20 +246,8 @@ process_include (rtx desc, int lineno)
read_rtx_lineno = 1;
/* Read the entire file. */
while (1)
{
rtx desc;
int c;
c = read_skip_spaces (input_file);
if (c == EOF)
break;
ungetc (c, input_file);
lineno = read_rtx_lineno;
desc = read_rtx (input_file);
process_rtx (desc, lineno);
}
while (read_rtx (input_file, &desc, &lineno))
process_rtx (desc, lineno);
/* Do not free pathname. It is attached to the various rtx queue
elements. */
@ -911,9 +899,10 @@ int
init_md_reader_args_cb (int argc, char **argv, bool (*parse_opt)(const char *))
{
FILE *input_file;
int i;
int i, lineno;
size_t ix;
char *lastsl;
rtx desc;
for (i = 1; i < argc; i++)
{
@ -991,19 +980,8 @@ init_md_reader_args_cb (int argc, char **argv, bool (*parse_opt)(const char *))
sequence_num = 0;
/* Read the entire file. */
while (1)
{
rtx desc;
int lineno;
int c = read_skip_spaces (input_file);
if (c == EOF)
break;
ungetc (c, input_file);
lineno = read_rtx_lineno;
desc = read_rtx (input_file);
process_rtx (desc, lineno);
}
while (read_rtx (input_file, &desc, &lineno))
process_rtx (desc, lineno);
fclose (input_file);
/* Process define_cond_exec patterns. */

View File

@ -1066,16 +1066,20 @@ check_code_macro (struct mapping *macro, FILE *infile)
bellwether_codes[macro->index] = bellwether;
}
/* Read an rtx in printed representation from INFILE
and return an actual rtx in core constructed accordingly.
/* Read an rtx in printed representation from INFILE and store its
core representation in *X. Also store the line number of the
opening '(' in *LINENO. Return true on success or false if the
end of file has been reached.
read_rtx is not used in the compiler proper, but rather in
the utilities gen*.c that construct C code from machine descriptions. */
rtx
read_rtx (FILE *infile)
bool
read_rtx (FILE *infile, rtx *x, int *lineno)
{
static rtx queue_head, queue_next;
rtx return_rtx;
static int queue_lineno;
int c;
/* Do one-time initialization. */
if (queue_head == 0)
@ -1087,8 +1091,13 @@ read_rtx (FILE *infile)
if (queue_next == 0)
{
queue_next = queue_head;
c = read_skip_spaces (infile);
if (c == EOF)
return false;
ungetc (c, infile);
queue_next = queue_head;
queue_lineno = read_rtx_lineno;
XEXP (queue_next, 0) = read_rtx_1 (infile);
XEXP (queue_next, 1) = 0;
@ -1096,10 +1105,11 @@ read_rtx (FILE *infile)
htab_traverse (codes.macros, apply_macro_traverse, queue_next);
}
return_rtx = XEXP (queue_next, 0);
*x = XEXP (queue_next, 0);
*lineno = queue_lineno;
queue_next = XEXP (queue_next, 1);
return return_rtx;
return true;
}
/* Subroutine of read_rtx that reads one construct from INFILE but

View File

@ -2147,7 +2147,7 @@ struct md_constant { char *name, *value; };
/* In read-rtl.c */
extern int read_skip_spaces (FILE *);
extern rtx read_rtx (FILE *);
extern bool read_rtx (FILE *, rtx *, int *);
extern const char *read_rtx_filename;
extern int read_rtx_lineno;