07 July 2012, 15:55 | #1 |
Registered User
Join Date: Jun 2012
Location: France
Posts: 183
|
mulu.l (a0),d0-d1 on 68060
Hello.
Basically, it seems that WinUAE allows the "mulu.l (a0),d0-d1" instruction in 68060 mode, while it should not. I bumped into this bug when running EmuTOS. It detects the presence of a 68060 CPU by testing that instruction. If it fails with an unimplemented instruction exception, it is assumed that the CPU is a 68060. If it works, the CPU is detected as 68040 (of course tests for other CPUs are done before). I have no real 68060 myself to check the correct behavior. However, it is described in the official M68060 User's Manual. See page 366 in the PDF. It is said that mulu.l to 64-bit result is unimplemented (as well as a few other instructions) and triggers an unimplemented integer instruction exception. For accurate 68060 emulation, the behavior should be the same in WinUAE. |
07 July 2012, 16:04 | #2 |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,505
|
It is by design.
Emulating unimplemented instruction exceptions 100% correctly is very complex and slow. Performance wins here. (This also includes FPU instructions) "Compatible" 040/060 mode may be implemented in future. |
07 July 2012, 16:43 | #3 |
Registered User
Join Date: Jun 2012
Location: France
Posts: 183
|
Ok, no trouble.
In EmuTOS, I have changed the 68060 detection using "movec pcr,d1", now it works as expected on WinUAE too. |
07 July 2012, 17:27 | #4 |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,505
|
All MOVEC registers are 100% correctly emulated (including masking of unused bits) because they are very commonly used to detect CPU type.
Only exception (that don't cause exceptions) are instructions that 68020/030 (and/or 68881/68882) support but which were removed from 68040 or 68060. |
20 July 2012, 19:03 | #5 |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,505
|
68060 unimplemented integer instruction exception is supported in next beta. (If compatible CPU checkbox is set)
I forgot that only unimplemented FPU instructions need complex handling, integer instructions are easy. |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
68060 numbers | Cosmos | Hardware pics | 4 | 30 May 2011 22:54 |
68060 Overclocking | Hewitson | support.Hardware | 56 | 03 February 2010 15:15 |
68060 | Toni Wilen | request.UAE Wishlist | 20 | 29 May 2007 00:30 |
68060 | glue | request.UAE Wishlist | 19 | 25 January 2007 00:00 |
68060 | killergorilla | support.Hardware | 2 | 24 March 2003 16:50 |
|
|