823 |
|
return i->stype == 3; |
824 |
|
} |
825 |
|
|
826 |
– |
static const char * cflow_string_of(uae_u32 opcode) |
827 |
– |
{ |
828 |
– |
const char * cflow_type_str; |
829 |
– |
|
830 |
– |
int cflow_type = table68k[opcode].cflow & ~fl_trap; |
831 |
– |
switch (cflow_type) { |
832 |
– |
case fl_branch: cflow_type_str = "CFLOW_BRANCH"; break; |
833 |
– |
case fl_jump: cflow_type_str = "CFLOW_JUMP"; break; |
834 |
– |
case fl_return: cflow_type_str = "CFLOW_RETURN"; break; |
835 |
– |
default: cflow_type_str = "CFLOW_NORMAL"; |
836 |
– |
} |
837 |
– |
|
838 |
– |
/* Patch M68K_EXEC_RETURN instruction */ |
839 |
– |
if (table68k[opcode].mnemo == i_EMULOP_RETURN) |
840 |
– |
cflow_type_str = "CFLOW_EXEC_RETURN"; |
841 |
– |
|
842 |
– |
return cflow_type_str; |
843 |
– |
} |
844 |
– |
|
826 |
|
static void gen_opcode (unsigned long int opcode) |
827 |
|
{ |
828 |
|
struct instr *curi = table68k + opcode; |
1326 |
|
} |
1327 |
|
printf ("\tm68k_incpc ((uae_s32)src + 2);\n"); |
1328 |
|
fill_prefetch_0 (); |
1329 |
< |
printf ("cpuop_return(%s);\n", cflow_string_of(opcode)); |
1329 |
> |
printf ("return;\n"); |
1330 |
|
printf ("didnt_jump:;\n"); |
1331 |
|
need_endlabel = 1; |
1332 |
|
} |
1359 |
|
} |
1360 |
|
printf ("\t\t\tm68k_incpc((uae_s32)offs + 2);\n"); |
1361 |
|
fill_prefetch_0 (); |
1362 |
< |
printf ("cpuop_return(%s);\n", cflow_string_of(opcode)); |
1362 |
> |
printf ("return;\n"); |
1363 |
|
printf ("\t\t}\n"); |
1364 |
|
printf ("\t}\n"); |
1365 |
|
need_endlabel = 1; |
2264 |
|
|
2265 |
|
fprintf (headerfile, "extern cpuop_func op_%lx_%d_nf;\n", opcode, postfix); |
2266 |
|
fprintf (headerfile, "extern cpuop_func op_%lx_%d_ff;\n", opcode, postfix); |
2267 |
< |
printf ("cpuop_rettype REGPARAM2 CPUFUNC(op_%lx_%d)(uae_u32 opcode) /* %s */\n{\n", opcode, postfix, lookuptab[i].name); |
2267 |
> |
printf ("void REGPARAM2 CPUFUNC(op_%lx_%d)(uae_u32 opcode) /* %s */\n{\n", opcode, postfix, lookuptab[i].name); |
2268 |
|
printf ("\tcpuop_begin();\n"); |
2269 |
|
|
2270 |
|
/* gb-- The "nf" variant for an instruction that doesn't set the condition |
2395 |
|
printf ("%s: ;\n", endlabelstr); |
2396 |
|
if (table68k[opcode].flagdead == 0) |
2397 |
|
printf ("\n#endif\n"); |
2398 |
< |
printf ("\tcpuop_end(%s);\n", cflow_string_of(opcode)); |
2398 |
> |
printf ("\tcpuop_end();\n"); |
2399 |
|
printf ("}\n"); |
2400 |
|
opcode_next_clev[rp] = next_cpu_level; |
2401 |
|
opcode_last_postfix[rp] = postfix; |