|
|
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 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: 1.1.1.2 ! root 37: printf ("/* This file is automatically generated from bytecode.def,\n"); ! 38: printf ("do not make any changes here. Instead edit bytecode.def. */\n\n"); ! 39: printf ("enum bytecode_opcode\n{"); 1.1 root 40: 41: i = 0; 42: for (d = defs; d; d = d->next) 43: for (v = d->variations; v; v = v->next) 1.1.1.2 ! root 44: { ! 45: printf (" %s%s,\n", d->basename, v->name); ! 46: ++i; ! 47: } 1.1 root 48: 49: puts (" LAST_AND_UNUSED_OPCODE\n};"); 50: 51: if (i > 256) 52: fprintf (stderr, "%s: warning, number of opcodes is %d\n", *argv, i); 53: else 54: fprintf (stderr, "(Number of opcodes is %d)\n", i); 55: 56: fflush (stdout); 57: exit (ferror (stdout) != 0 ? FATAL_EXIT_CODE : SUCCESS_EXIT_CODE); 58: /* NOTREACHED */ 59: return 0; 60: } 61: 62: /* Safely allocate NBYTES bytes of memory. Returns pointer to block of 63: memory. */ 64: char * 65: xmalloc (nbytes) 66: int nbytes; 67: { 68: char *tmp = (char *) malloc (nbytes); 69: 70: if (!tmp) 71: { 72: fprintf (stderr, "can't allocate %d bytes (out of virtual memory)\n", nbytes); 73: exit (FATAL_EXIT_CODE); 74: } 75: 76: return tmp; 77: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.