Annotation of gcc/bi-opcode.c, revision 1.1.1.3

1.1       root        1: /* Utility to generate opcode list from bytecode definition.
1.1.1.2   root        2:    Copyright (C) 1993, 1994 Free Software Foundation, Inc.
1.1       root        3: 
                      4: This file is part of GNU CC.
                      5: 
                      6: GNU CC is free software; you can redistribute it and/or modify
                      7: it under the terms of the GNU General Public License as published by
                      8: the Free Software Foundation; either version 2, or (at your option)
                      9: any later version.
                     10: 
                     11: GNU CC is distributed in the hope that it will be useful,
                     12: but WITHOUT ANY WARRANTY; without even the implied warranty of
                     13: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
                     14: GNU General Public License for more details.
                     15: 
                     16: You should have received a copy of the GNU General Public License
                     17: along with GNU CC; see the file COPYING.  If not, write to
1.1.1.3 ! root       18: the Free Software Foundation, 59 Temple Place - Suite 330,
        !            19: Boston, MA 02111-1307, USA.  */
1.1       root       20: 
                     21: #include <stdio.h>
                     22: #include "hconfig.h"
                     23: #include "bi-defs.h"
                     24: 
                     25: int
                     26: main(argc, argv)
                     27:      int argc;
                     28:      char **argv;
                     29: {
                     30:   struct def *d;
                     31:   struct variation *v;
                     32:   int i;
                     33: 
                     34:   yyparse();
                     35:   reverse();
                     36: 
                     37: 
1.1.1.2   root       38:   printf ("/* This file is automatically generated from bytecode.def,\n");
                     39:   printf ("do not make any changes here. Instead edit bytecode.def.  */\n\n");
                     40:   printf ("enum bytecode_opcode\n{");
1.1       root       41: 
                     42:   i = 0;
                     43:   for (d = defs; d; d = d->next)
                     44:     for (v = d->variations; v; v = v->next)
1.1.1.2   root       45:       {
                     46:        printf ("  %s%s,\n", d->basename, v->name);
                     47:        ++i;
                     48:       }
1.1       root       49: 
                     50:   puts ("  LAST_AND_UNUSED_OPCODE\n};");
                     51: 
                     52:   if (i > 256)
                     53:     fprintf (stderr, "%s: warning, number of opcodes is %d\n", *argv, i);
                     54:   else
                     55:     fprintf (stderr, "(Number of opcodes is %d)\n", i);
                     56: 
                     57:   fflush (stdout);
                     58:   exit (ferror (stdout) != 0 ? FATAL_EXIT_CODE : SUCCESS_EXIT_CODE);
                     59:   /* NOTREACHED */
                     60:   return 0;
                     61: }
                     62: 
                     63: /* Safely allocate NBYTES bytes of memory. Returns pointer to block of
                     64:    memory. */
                     65: char *
                     66: xmalloc (nbytes)
                     67:      int nbytes;
                     68: {
                     69:   char *tmp = (char *) malloc (nbytes);
                     70:   
                     71:   if (!tmp)
                     72:     {
                     73:       fprintf (stderr, "can't allocate %d bytes (out of virtual memory)\n", nbytes);
                     74:       exit (FATAL_EXIT_CODE);
                     75:     }
                     76: 
                     77:   return tmp;
                     78: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.