Thread: movep on 68060
View Single Post
Old 28 June 2016, 23:04   #3
Registered User
Join Date: Jun 2012
Location: Paris, France
Posts: 153
Originally Posted by Toni Wilen View Post
Works for me. If "umimplemented CPU emu" is ticked, MOVEP.L executes normally.
Are you fooled by some movep emulation implemented as an exception handler?

Here is a testcase, in the form of a modified EmuTOS ROM.
It contains the following code on startup:

        move.l  #illeg,4*4.w            // Illegal instruction
        move.l  #unimpl,61*4.w          // Unimplemented instruction

        lea     0x10000,a1
        move.l  #0x11223344,d1
        movep.l d1,-7(a1)

        move.w  #0x00f0,0xdff180        // Background color = green

        bra.s   loop

        move.w  #0x000f,0xdff180        // Background color = blue
        bra.s   loop

        move.w  #0x0f00,0xdff180        // Background color = red
        bra.s   loop
- If movep executes normally, the screen becomes green. This happens with 68000-68040.
- On normal 68060, the screen becomes blue, because an unimplemented instruction is generated, as expected.
- With 68060 and "Unimplemented CPU emu" checked, one would expect that the screen turns green, as on 68000. But it becomes red: it means that an illegal instruction is generated. There is no rational explication for that, this is why I believe this is a WinUAE bug.
Attached Files
File Type: zip (135.2 KB, 26 views)
BlankVector is offline  
Page generated in 0.06694 seconds with 10 queries