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

Comparing BasiliskII/src/uae_cpu/gencpu.c (file contents):
Revision 1.20 by gbeauche, 2002-11-02T18:13:27Z vs.
Revision 1.23 by gbeauche, 2007-06-15T08:09:01Z

# Line 2251 | Line 2251 | static void generate_one_opcode (int rp)
2251          return;
2252  
2253      if (opcode_next_clev[rp] != cpu_level) {
2254 +        if (table68k[opcode].flagdead == 0)
2255 +        /* force to the "ff" variant since the instruction doesn't set at all the condition codes */
2256 +        fprintf (stblfile, "{ CPUFUNC_FF(op_%lx_%d), 0, %ld }, /* %s */\n", opcode, opcode_last_postfix[rp],
2257 +                 opcode, lookuptab[i].name);
2258 +        else
2259          fprintf (stblfile, "{ CPUFUNC(op_%lx_%d), 0, %ld }, /* %s */\n", opcode, opcode_last_postfix[rp],
2260                   opcode, lookuptab[i].name);
2261          return;
# Line 2264 | Line 2269 | static void generate_one_opcode (int rp)
2269  
2270      fprintf (headerfile, "extern cpuop_func op_%lx_%d_nf;\n", opcode, postfix);
2271      fprintf (headerfile, "extern cpuop_func op_%lx_%d_ff;\n", opcode, postfix);
2267    printf ("void REGPARAM2 CPUFUNC(op_%lx_%d)(uae_u32 opcode) /* %s */\n{\n", opcode, postfix, lookuptab[i].name);
2268        printf ("\tcpuop_begin();\n");
2272          
2273          /* gb-- The "nf" variant for an instruction that doesn't set the condition
2274             codes at all is the same as the "ff" variant, so we don't need the "nf"
# Line 2274 | Line 2277 | static void generate_one_opcode (int rp)
2277          if (table68k[opcode].flagdead == 0)
2278          printf ("#ifndef NOFLAGS\n");
2279  
2280 +        printf ("void REGPARAM2 CPUFUNC(op_%lx_%d)(uae_u32 opcode) /* %s */\n{\n", opcode, postfix, lookuptab[i].name);
2281 +        printf ("\tcpuop_begin();\n");
2282 +
2283      switch (table68k[opcode].stype) {
2284       case 0: smsk = 7; break;
2285       case 1: smsk = 255; break;
# Line 2393 | Line 2399 | static void generate_one_opcode (int rp)
2399      gen_opcode (opcode);
2400      if (need_endlabel)
2401          printf ("%s: ;\n", endlabelstr);
2396        if (table68k[opcode].flagdead == 0)
2397        printf ("\n#endif\n");
2402          printf ("\tcpuop_end();\n");
2403      printf ("}\n");
2404 +        if (table68k[opcode].flagdead == 0)
2405 +        printf ("\n#endif\n");
2406      opcode_next_clev[rp] = next_cpu_level;
2407      opcode_last_postfix[rp] = postfix;
2408   }
# Line 2457 | Line 2463 | static void generate_func (void)
2463  
2464   int main (int argc, char **argv)
2465   {
2466 +    FILE *out;
2467      read_table68k ();
2468      do_merges ();
2469  
# Line 2470 | Line 2477 | int main (int argc, char **argv)
2477       * cputbl.h that way), but cpuopti can't cope.  That could be fixed, but
2478       * I don't dare to touch the 68k version.  */
2479  
2480 <    headerfile = fopen ("cputbl.h", "wb");
2481 <    stblfile = fopen ("cpustbl.cpp", "wb");
2482 <    freopen ("cpuemu.cpp", "wb", stdout);
2480 >    headerfile = fopen ("cputbl.h", "w");
2481 >    stblfile = fopen ("cpustbl.cpp", "w");
2482 >    out = freopen ("cpuemu.cpp", "w", stdout);
2483  
2484      generate_includes (stdout);
2485      generate_includes (stblfile);
# Line 2480 | Line 2487 | int main (int argc, char **argv)
2487      generate_func ();
2488  
2489      free (table68k);
2490 +    fclose (headerfile);
2491 +    fclose (stblfile);
2492 +    fflush (out);
2493      return 0;
2494   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines