Thread: movep on 68060
View Single Post
Old 28 June 2016, 22:04   #3
BlankVector
Registered User
 
Join Date: Jun 2012
Location: Paris, France
Posts: 148
Quote:
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:

Code:
        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

loop:
        bra.s   loop

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

illeg:
        move.w  #0x0f00,0xdff180        // Background color = red
        bra.s   loop
So:
- 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 movep.zip (135.2 KB, 22 views)
BlankVector is offline  
 
Page generated in 0.05924 seconds with 10 queries