diff options
Diffstat (limited to 'sim')
-rw-r--r-- | sim/v850/ChangeLog | 8 | ||||
-rw-r--r-- | sim/v850/Makefile.in | 16 | ||||
-rw-r--r-- | sim/v850/gencode.c | 149 | ||||
-rw-r--r-- | sim/v850/simops.h | 79 |
4 files changed, 88 insertions, 164 deletions
diff --git a/sim/v850/ChangeLog b/sim/v850/ChangeLog index cbf109f..477f711 100644 --- a/sim/v850/ChangeLog +++ b/sim/v850/ChangeLog @@ -1,3 +1,11 @@ +2001-12-02 Andrew Cagney <ac131313@redhat.com> + + * Makefile.in (simops.h, table.c): Delete targets. + (tmp-gencode, gencode.o, gencode): Delete targets. + (simops.h): New file. + ($(BUILT_SRC_FROM_IGEN)): Do not depend on simops.h. + * gencode.c: Delete file. + 2001-04-15 J.T. Conklin <jtc@redback.com> * Makefile.in (simops.o): Add simops.h to dependency list. diff --git a/sim/v850/Makefile.in b/sim/v850/Makefile.in index 2500fca..110cb17 100644 --- a/sim/v850/Makefile.in +++ b/sim/v850/Makefile.in @@ -47,20 +47,6 @@ NL_TARGET = -DNL_TARGET_v850 ## COMMON_POST_CONFIG_FRAG -simops.h table.c: tmp-gencode -tmp-gencode: gencode - ./gencode >tmp-table.c - mv tmp-table.c table.c - ./gencode -h >tmp-simops.h - mv tmp-simops.h simops.h - touch tmp-gencode -gencode.o: gencode.c - $(CC_FOR_BUILD) $(BUILD_CFLAGS) -c $(srcdir)/gencode.c -gencode: gencode.o ../../opcodes/libopcodes.a ../../intl/libintl.a - $(CC_FOR_BUILD) $(BUILD_CFLAGS) -o gencode gencode.o ../../opcodes/libopcodes.a ../../intl/libintl.a - - - BUILT_SRC_FROM_IGEN = \ icache.h \ icache.c \ @@ -77,7 +63,7 @@ BUILT_SRC_FROM_IGEN = \ engine.h \ engine.c \ irun.c -$(BUILT_SRC_FROM_IGEN): tmp-igen simops.h +$(BUILT_SRC_FROM_IGEN): tmp-igen # .PHONY: clean-igen diff --git a/sim/v850/gencode.c b/sim/v850/gencode.c deleted file mode 100644 index 05ce866..0000000 --- a/sim/v850/gencode.c +++ /dev/null @@ -1,149 +0,0 @@ -#include <stdio.h> -#include <ctype.h> -#include "ansidecl.h" -#include "opcode/v850.h" -#include <limits.h> - -static void write_header PARAMS ((void)); -static void write_opcodes PARAMS ((void)); -static void write_template PARAMS ((void)); - -long Opcodes[512]; -static int curop=0; - -int -main (argc, argv) - int argc; - char *argv[]; -{ - if ((argc > 1) && (strcmp (argv[1], "-h") == 0)) - write_header(); - else if ((argc > 1) && (strcmp (argv[1], "-t") == 0)) - write_template (); - else - write_opcodes(); - return 0; -} - - -static void -write_header () -{ - struct v850_opcode *opcode; - - for (opcode = (struct v850_opcode *)v850_opcodes; opcode->name; opcode++) - printf("int OP_%X PARAMS ((void));\t\t/* %s */\n", - opcode->opcode, opcode->name); -} - - -/* write_template creates a file all required functions, ready */ -/* to be filled out */ - -static void -write_template () -{ - struct v850_opcode *opcode; - int i,j; - - printf ("#include \"sim-main.h\"\n"); - printf ("#include \"v850_sim.h\"\n"); - printf ("#include \"simops.h\"\n"); - - for (opcode = (struct v850_opcode *)v850_opcodes; opcode->name; opcode++) - { - printf("/* %s */\nvoid\nOP_%X (void)\n{\n", opcode->name, opcode->opcode); - - /* count operands */ - j = 0; - for (i = 0; i < 6; i++) - { - int flags = v850_operands[opcode->operands[i]].flags; - - if (flags & (V850_OPERAND_REG | V850_OPERAND_SRG | V850_OPERAND_CC)) - j++; - } - switch (j) - { - case 0: - printf ("printf(\" %s\\n\");\n", opcode->name); - break; - case 1: - printf ("printf(\" %s\\t%%x\\n\", OP[0]);\n", opcode->name); - break; - case 2: - printf ("printf(\" %s\\t%%x,%%x\\n\",OP[0],OP[1]);\n", - opcode->name); - break; - case 3: - printf ("printf(\" %s\\t%%x,%%x,%%x\\n\",OP[0],OP[1],OP[2]);\n", - opcode->name); - break; - default: - fprintf (stderr,"Too many operands: %d\n", j); - } - printf ("}\n\n"); - } -} - -static void -write_opcodes () -{ - struct v850_opcode *opcode; - int i, j; - int numops; - - /* write out opcode table */ - printf ("#include \"sim-main.h\"\n"); - printf ("#include \"v850_sim.h\"\n"); - printf ("#include \"simops.h\"\n\n"); - printf ("struct simops Simops[] = {\n"); - - for (opcode = (struct v850_opcode *)v850_opcodes; opcode->name; opcode++) - { - printf (" { 0x%x,0x%x,OP_%X,", - opcode->opcode, opcode->mask, opcode->opcode); - - Opcodes[curop++] = opcode->opcode; - - /* count operands */ - j = 0; - for (i = 0; i < 6; i++) - { - int flags = v850_operands[opcode->operands[i]].flags; - - if (flags & (V850_OPERAND_REG | V850_OPERAND_SRG | V850_OPERAND_CC)) - j++; - } - printf ("%d,{",j); - - j = 0; - numops = 0; - for (i = 0; i < 6; i++) - { - int flags = v850_operands[opcode->operands[i]].flags; - int shift = v850_operands[opcode->operands[i]].shift; - - if (flags & (V850_OPERAND_REG | V850_OPERAND_SRG | V850_OPERAND_CC)) - { - if (j) - printf (", "); - printf ("%d,%d,%d", shift, - v850_operands[opcode->operands[i]].bits,flags); - j = 1; - numops++; - } - } - - switch (numops) - { - case 0: - printf ("0,0,0"); - case 1: - printf (",0,0,0"); - } - - printf ("}},\n"); - } - printf ("{ 0,0,NULL,0,{0,0,0,0,0,0}},\n};\n"); -} diff --git a/sim/v850/simops.h b/sim/v850/simops.h new file mode 100644 index 0000000..d4c0792 --- /dev/null +++ b/sim/v850/simops.h @@ -0,0 +1,79 @@ +#ifndef SIMOPS_H +#define SIMOPS_H +int OP_380 (void); +int OP_480 (void); +int OP_501 (void); +int OP_700 (void); +int OP_720 (void); +int OP_10720 (void); +int OP_740 (void); +int OP_760 (void); +int OP_10760 (void); +int OP_1C0 (void); +int OP_240 (void); +int OP_600 (void); +int OP_1A0 (void); +int OP_180 (void); +int OP_E0 (void); +int OP_2E0 (void); +int OP_6E0 (void); +int OP_40 (void); +int OP_1E0 (void); +int OP_260 (void); +int OP_7E0 (void); +int OP_C0 (void); +int OP_220 (void); +int OP_A0 (void); +int OP_660 (void); +int OP_80 (void); +int OP_160 (void); +int OP_200 (void); +int OP_640 (void); +int OP_2A0 (void); +int OP_A007E0 (void); +int OP_2C0 (void); +int OP_C007E0 (void); +int OP_280 (void); +int OP_8007E0 (void); +int OP_100 (void); +int OP_680 (void); +int OP_140 (void); +int OP_6C0 (void); +int OP_120 (void); +int OP_6A0 (void); +int OP_20 (void); +int OP_7C0 (void); +int OP_47C0 (void); +int OP_87C0 (void); +int OP_C7C0 (void); +int OP_16007E0 (void); +int OP_16087E0 (void); +int OP_12007E0 (void); +int OP_10007E0 (void); +int OP_E607E0 (void); +int OP_22207E0 (void); +int OP_E407E0 (void); +int OP_E207E0 (void); +int OP_E007E0 (void); +int OP_20007E0 (void); +int OP_1C207E0 (void); +int OP_1C007E0 (void); +int OP_18207E0 (void); +int OP_18007E0 (void); +int OP_2C207E0 (void); +int OP_2C007E0 (void); +int OP_28207E0 (void); +int OP_28007E0 (void); +int OP_24207E0 (void); +int OP_24007E0 (void); +int OP_107E0 (void); +int OP_10780 (void); +int OP_1B0780 (void); +int OP_130780 (void); +int OP_B0780 (void); +int OP_30780 (void); +int OP_22007E0 (void); +int OP_307F0 (void); +int OP_107F0 (void); +int OP_307E0 (void); +#endif |