Re: [hatari-devel] Special WinUAE FPU settings |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/hatari-devel Archives
]
>> (What did this have to do with 68030 MMU PMOVE?)
>
> Eero originally noticed that Hatari printed something like this out
> when 68060 CPU has been selected:
>
> 68030 MMU enabled. Page size = 32768 PC=00e014f6
>
> That's of course confusing. It was due to that int_no_unimplemented
> option. If it is set to false, the PMOVE instruction of the 68030 MMU
> is also still allowed in 68060 mode, and TOS is using that instruction
> during boot.
It is a bug in "unimplemented opcode?" part in build_cpufunctbl(). It
accidentally enabled all unimplemented opcodes in 68060 mode, not just
68060-only unimplemented opcodes.
Something like this should work:
/* unimplemented opcode? */
if (table->unimpclev > 0 && lvl >= table->unimpclev) {
if (currprefs.cpu_model == 68060) {
// unimpclev == 5: not implemented in 68060.
if (currprefs.int_no_unimplemented && table->unimpclev == 5) {
cpufunctbl[opcode] = op_unimpl_1;
continue;
}
if (!currprefs.int_no_unimplemented || table->unimpclev != 5) {
cpufunctbl[opcode] = op_illg_1;
continue;
}
} else {
cpufunctbl[opcode] = op_illg_1;
continue;
}
}