kstenerud / Musashi

Motorola 680x0 emulator written in C
412 stars 94 forks source link

Bug in MOVEC implementation #94

Open dirkwhoffmann opened 2 years ago

dirkwhoffmann commented 2 years ago

This code is part of m68k_op_movec_32_cr

            case 0x802:            /* CAAR */
                if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))
                {
                    REG_DA[(word2 >> 12) & 15] = REG_CAAR;
                    return;
                }
                m68ki_exception_illegal();
                break;

In the last line, break needs to be replaced by return. Otherwise, a privilege exception is executed in addition to the illegal exception.