|
|
1.1 ! root 1: /* Utility to generate opcode list from bytecode definition. ! 2: Copyright (C) 1993 Free Software Foundation, Inc. ! 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 ! 18: the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ ! 19: ! 20: #include <stdio.h> ! 21: #include "hconfig.h" ! 22: #include "bi-defs.h" ! 23: ! 24: int ! 25: main(argc, argv) ! 26: int argc; ! 27: char **argv; ! 28: { ! 29: struct def *d; ! 30: struct variation *v; ! 31: int i; ! 32: ! 33: yyparse(); ! 34: reverse(); ! 35: ! 36: ! 37: puts ("/* This file is automatically generated from bytecode.def, do not make\n\ ! 38: any changes here. Instead edit bytecode.def and type ``make''. */\n\ ! 39: enum bytecode_opcode\n{"); ! 40: ! 41: i = 0; ! 42: for (d = defs; d; d = d->next) ! 43: for (v = d->variations; v; v = v->next) ! 44: printf (" %s%s,\n", d->basename, v->name, i++); ! 45: ! 46: puts (" LAST_AND_UNUSED_OPCODE\n};"); ! 47: ! 48: if (i > 256) ! 49: fprintf (stderr, "%s: warning, number of opcodes is %d\n", *argv, i); ! 50: else ! 51: fprintf (stderr, "(Number of opcodes is %d)\n", i); ! 52: ! 53: fflush (stdout); ! 54: exit (ferror (stdout) != 0 ? FATAL_EXIT_CODE : SUCCESS_EXIT_CODE); ! 55: /* NOTREACHED */ ! 56: return 0; ! 57: } ! 58: ! 59: /* Safely allocate NBYTES bytes of memory. Returns pointer to block of ! 60: memory. */ ! 61: char * ! 62: xmalloc (nbytes) ! 63: int nbytes; ! 64: { ! 65: char *tmp = (char *) malloc (nbytes); ! 66: ! 67: if (!tmp) ! 68: { ! 69: fprintf (stderr, "can't allocate %d bytes (out of virtual memory)\n", nbytes); ! 70: exit (FATAL_EXIT_CODE); ! 71: } ! 72: ! 73: return tmp; ! 74: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.