X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2Fgenflags.c;h=b2c878d0594219c7753c1532c2c5ada4d6fad6fb;hp=ec90c1a624192d302e04d129a7de130eacc6230d;hb=df3ba0feef5d9404c65d8b38ca0b79b94ec7feff;hpb=805e22b2051e9c6a75377ea6599654d7415da483 diff --git a/gcc/genflags.c b/gcc/genflags.c index ec90c1a6241..b2c878d0594 100644 --- a/gcc/genflags.c +++ b/gcc/genflags.c @@ -1,14 +1,14 @@ /* Generate from machine description: - some flags HAVE_... saying which simple standard instructions are available for this machine. - Copyright (C) 1987, 1991, 1995, 1998, - 1999, 2000 Free Software Foundation, Inc. + Copyright (C) 1987, 1991, 1995, 1998, 1999, 2000, 2003, 2004, 2007 + Free Software Foundation, Inc. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free -Software Foundation; either version 2, or (at your option) any later +Software Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY @@ -17,9 +17,8 @@ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with GCC; see the file COPYING. If not, write to the Free -Software Foundation, 59 Temple Place - Suite 330, Boston, MA -02111-1307, USA. */ +along with GCC; see the file COPYING3. If not see +. */ #include "bconfig.h" @@ -40,17 +39,16 @@ static int max_id_len; /* Max operand encountered in a scan over some insn. */ static int max_opno; -static void max_operand_1 PARAMS ((rtx)); -static int num_operands PARAMS ((rtx)); -static void gen_proto PARAMS ((rtx)); -static void gen_macro PARAMS ((const char *, int, int)); -static void gen_insn PARAMS ((rtx)); +static void max_operand_1 (rtx); +static int num_operands (rtx); +static void gen_proto (rtx); +static void gen_macro (const char *, int, int); +static void gen_insn (rtx); /* Count the number of match_operand's found. */ static void -max_operand_1 (x) - rtx x; +max_operand_1 (rtx x) { RTX_CODE code; int i; @@ -82,8 +80,7 @@ max_operand_1 (x) } static int -num_operands (insn) - rtx insn; +num_operands (rtx insn) { int len = XVECLEN (insn, 1); int i; @@ -100,16 +97,12 @@ num_operands (insn) of arguments it takes. Any missing arguments are assumed to be at the end. */ static void -gen_macro (name, real, expect) - const char *name; - int real, expect; +gen_macro (const char *name, int real, int expect) { int i; - if (real > expect) - abort (); - if (real == 0) - abort (); + gcc_assert (real <= expect); + gcc_assert (real); /* #define GEN_CALL(A, B, C, D) gen_call((A), (B)) */ fputs ("#define GEN_", stdout); @@ -131,8 +124,7 @@ gen_macro (name, real, expect) does nothing. */ static void -gen_proto (insn) - rtx insn; +gen_proto (rtx insn) { int num = num_operands (insn); int i; @@ -159,9 +151,9 @@ gen_proto (insn) } if (truth != 0) - printf ("extern rtx gen_%-*s PARAMS ((", max_id_len, name); + printf ("extern rtx gen_%-*s (", max_id_len, name); else - printf ("static inline rtx gen_%-*s PARAMS ((", max_id_len, name); + printf ("static inline rtx gen_%-*s (", max_id_len, name); if (num == 0) fputs ("void", stdout); @@ -169,11 +161,11 @@ gen_proto (insn) { for (i = 1; i < num; i++) fputs ("rtx, ", stdout); - + fputs ("rtx", stdout); } - puts ("));"); + puts (");"); /* Some back ends want to take the address of generator functions, so we cannot simply use #define for these dummy definitions. */ @@ -184,21 +176,18 @@ gen_proto (insn) { putchar ('('); for (i = 0; i < num-1; i++) - printf ("%c, ", 'a' + i); - printf ("%c)\n", 'a' + i); - for (i = 0; i < num; i++) - printf (" rtx %c ATTRIBUTE_UNUSED;\n", 'a' + i); + printf ("rtx ARG_UNUSED (%c), ", 'a' + i); + printf ("rtx ARG_UNUSED (%c))\n", 'a' + i); } else - puts ("()"); + puts ("(void)"); puts ("{\n return 0;\n}"); } } static void -gen_insn (insn) - rtx insn; +gen_insn (rtx insn) { const char *name = XSTR (insn, 0); const char *p; @@ -217,7 +206,7 @@ gen_insn (insn) max_id_len = len; if (truth == 0) - /* emit nothing */; + /* Emit nothing. */; else if (truth == 1) printf ("#define HAVE_%s 1\n", name); else @@ -238,12 +227,8 @@ gen_insn (insn) obstack_grow (&obstack, &insn, sizeof (rtx)); } -extern int main PARAMS ((int, char **)); - int -main (argc, argv) - int argc; - char **argv; +main (int argc, char **argv) { rtx desc; rtx dummy; @@ -257,12 +242,9 @@ main (argc, argv) direct calls to their generators in C code. */ insn_elision = 0; - if (argc <= 1) - fatal ("no input file name"); - if (init_md_reader_args (argc, argv) != SUCCESS_EXIT_CODE) return (FATAL_EXIT_CODE); - + puts ("/* Generated automatically by the program `genflags'"); puts (" from the machine description file `md'. */\n"); puts ("#ifndef GCC_INSN_FLAGS_H"); @@ -284,7 +266,7 @@ main (argc, argv) /* Print out the prototypes now. */ dummy = (rtx) 0; obstack_grow (&obstack, &dummy, sizeof (rtx)); - insns = (rtx *) obstack_finish (&obstack); + insns = XOBFINISH (&obstack, rtx *); for (insn_ptr = insns; *insn_ptr; insn_ptr++) gen_proto (*insn_ptr); @@ -296,11 +278,3 @@ main (argc, argv) return SUCCESS_EXIT_CODE; } - -/* Define this so we can link with print-rtl.o to get debug_rtx function. */ -const char * -get_insn_name (code) - int code ATTRIBUTE_UNUSED; -{ - return NULL; -}