1/* Generate code from machine description to recognize rtl as insns.
2   Copyright (C) 1987-2015 Free Software Foundation, Inc.
3
4   This file is part of GCC.
5
6   GCC is free software; you can redistribute it and/or modify it
7   under the terms of the GNU General Public License as published by
8   the Free Software Foundation; either version 3, or (at your option)
9   any later version.
10
11   GCC is distributed in the hope that it will be useful, but WITHOUT
12   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
14   License for more details.
15
16   You should have received a copy of the GNU General Public License
17   along with GCC; see the file COPYING3.  If not see
18   <http://www.gnu.org/licenses/>.  */
19
20
21/* This program is used to produce tmp-mddump.md, which represents
22   md-file with expanded iterators and after define_subst transformation
23   is performed.
24
25   The only argument of the program is a source md-file (e.g.
26   config/i386/i386.md).  STDERR is used for the program output.  */
27
28#include "bconfig.h"
29#include "system.h"
30#include "coretypes.h"
31#include "tm.h"
32#include "rtl.h"
33#include "errors.h"
34#include "read-md.h"
35#include "gensupport.h"
36
37
38extern int main (int, char **);
39
40int
41main (int argc, char **argv)
42{
43  rtx desc;
44  int pattern_lineno;
45  int code; /* not used */
46  progname = "genmddump";
47
48  if (!init_rtx_reader_args (argc, argv))
49    return (FATAL_EXIT_CODE);
50
51  /* Read the machine description.  */
52  while (1)
53    {
54      desc = read_md_rtx (&pattern_lineno, &code);
55      if (desc == NULL)
56	break;
57      printf (";; %s: %d\n", read_md_filename, pattern_lineno);
58      print_inline_rtx (stdout, desc, 0);
59      printf ("\n\n");
60    }
61
62  fflush (stdout);
63  return (ferror (stdout) != 0 ? FATAL_EXIT_CODE : SUCCESS_EXIT_CODE);
64}
65
66