ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/cebix/BasiliskII/src/uae_cpu/build68k.c
(Generate patch)

Comparing BasiliskII/src/uae_cpu/build68k.c (file contents):
Revision 1.1 by cebix, 1999-10-03T14:16:26Z vs.
Revision 1.6 by gbeauche, 2005-03-17T00:21:36Z

# Line 58 | Line 58 | int main(int argc, char **argv)
58      printf ("#include \"sysdeps.h\"\n");
59      printf ("#include \"readcpu.h\"\n");
60      printf ("struct instr_def defs68k[] = {\n");
61 < #if 0
62 <    tablef = fopen("table68k","r");
61 > #ifdef WIN32
62 >    tablef = fopen(argc > 1 ? argv[1] : "table68k","r");
63      if (tablef == NULL) {
64          fprintf(stderr, "table68k not found\n");
65          exit(1);
# Line 76 | Line 76 | int main(int argc, char **argv)
76          char opcstr[256];
77          int bitpos[16];
78          int flagset[5], flaguse[5];
79 +        char cflow;
80  
81          unsigned int bitmask,bitpattern;
82          int n_variable;
# Line 107 | Line 108 | int main(int argc, char **argv)
108               case 'r': currbit = bitr; break;
109               case 'R': currbit = bitR; break;
110               case 'z': currbit = bitz; break;
111 +                 case 'E': currbit = bitE; break;
112 +                 case 'p': currbit = bitp; break;
113               default: abort();
114              }
115              if (!(bitmask & 1)) {
# Line 131 | Line 134 | int main(int argc, char **argv)
134           case '2': cpulevel = 2; break;
135           case '3': cpulevel = 3; break;
136           case '4': cpulevel = 4; break;
137 +         case '5': cpulevel = 5; break;
138           default: abort();
139          }
140          getnextch();
# Line 154 | Line 158 | int main(int argc, char **argv)
158              getnextch();
159              switch(nextch){
160               case '-': flagset[i] = fa_unset; break;
157             case '/': flagset[i] = fa_isjmp; break;
161               case '0': flagset[i] = fa_zero; break;
162               case '1': flagset[i] = fa_one; break;
163               case 'x': flagset[i] = fa_dontcare; break;
# Line 174 | Line 177 | int main(int argc, char **argv)
177              getnextch();
178              switch(nextch){
179               case '-': flaguse[i] = fu_unused; break;
177             case '/': flaguse[i] = fu_isjmp; break;
178             case '+': flaguse[i] = fu_maybecc; break;
180               case '?': flaguse[i] = fu_unknown; break;
181               default: flaguse[i] = fu_used; break;
182              }
# Line 185 | Line 186 | int main(int argc, char **argv)
186          while (isspace(nextch))
187              getnextch();
188  
189 +        if (nextch != ':')                        /* Get control flow information */
190 +            abort();
191 +        
192 +        cflow = 0;
193 +        for(i = 0; i < 2; i++) {
194 +                getnextch();
195 +                switch(nextch){
196 +                 case '-': break;
197 +                 case 'R': cflow |= fl_return; break;
198 +                 case 'B': cflow |= fl_branch; break;
199 +                 case 'J': cflow |= fl_jump; break;
200 +                 case 'T': cflow |= fl_trap; break;
201 +                 default: abort();
202 +                }
203 +        }
204 +        
205 +        getnextch();
206 +        while (isspace(nextch))
207 +            getnextch();
208 +
209          if (nextch != ':')                        /* Get source/dest usage information */
210              abort();
211  
# Line 232 | Line 253 | int main(int argc, char **argv)
253              for(i = 0; i < 5; i++) {
254                  printf("{ %d, %d }%c ", flaguse[i], flagset[i], i == 4 ? ' ' : ',');
255              }
256 <            printf("}, %d, \"%s\"}", sduse, opstrp);
256 >            printf("}, %d, %d, \"%s\"}", cflow, sduse, opstrp);
257          }
258      }
259      printf("};\nint n_defs68k = %d;\n", no_insns);
260 <    fclose(tablef);
260 >    fflush(stdout);
261      return 0;
262   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines