--- BasiliskII/src/uae_cpu/gencpu.c 1999/10/28 16:52:28 1.8 +++ BasiliskII/src/uae_cpu/gencpu.c 2000/09/22 17:19:12 1.11 @@ -232,7 +232,7 @@ static void genamode (amodes mode, char if (getv == 1) switch (size) { case sz_byte: -#ifdef AMIGA +#if defined(AMIGA) && !defined(WARPUP) /* sam: I don't know why gcc.2.7.2.1 produces a code worse */ /* if it is not done like that: */ printf ("\tuae_s8 %s = ((uae_u8*)&m68k_dreg(regs, %s))[3];\n", name, reg); @@ -241,7 +241,7 @@ static void genamode (amodes mode, char #endif break; case sz_word: -#ifdef AMIGA +#if defined(AMIGA) && !defined(WARPUP) printf ("\tuae_s16 %s = ((uae_s16*)&m68k_dreg(regs, %s))[1];\n", name, reg); #else printf ("\tuae_s16 %s = m68k_dreg(regs, %s);\n", name, reg); @@ -2514,7 +2514,7 @@ static void generate_one_opcode (int rp) } fprintf (stblfile, "{ op_%lx_%d, 0, %ld }, /* %s */\n", opcode, postfix, opcode, lookuptab[i].name); fprintf (headerfile, "extern cpuop_func op_%lx_%d;\n", opcode, postfix); - printf ("unsigned long REGPARAM2 op_%lx_%d(uae_u32 opcode) /* %s */\n{\n", opcode, postfix, lookuptab[i].name); + printf ("void REGPARAM2 op_%lx_%d(uae_u32 opcode) /* %s */\n{\n", opcode, postfix, lookuptab[i].name); switch (table68k[opcode].stype) { case 0: smsk = 7; break; @@ -2628,7 +2628,6 @@ static void generate_one_opcode (int rp) gen_opcode (opcode); if (need_endlabel) printf ("%s: ;\n", endlabelstr); - printf ("return %d;\n", insn_n_cycles); printf ("}\n"); opcode_next_clev[rp] = next_cpu_level; opcode_last_postfix[rp] = postfix; @@ -2640,7 +2639,13 @@ static void generate_func (void) using_prefetch = 0; using_exception_3 = 0; +#if !USE_PREFETCH_BUFFER + /* gb-- No need for a prefetch buffer, nor exception 3 handling */ + /* Anyway, Basilisk2 does not use the op_smalltbl_5 table... */ + for (i = 0; i <= 4; i++) { +#else for (i = 0; i < 6; i++) { +#endif cpu_level = 4 - i; if (i == 5) { cpu_level = 0;