English Amiga Board


Go Back   English Amiga Board > Support > support.WinUAE

 
 
Thread Tools
Old 07 July 2012, 15:55   #1
BlankVector
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.
BlankVector is offline  
Old 07 July 2012, 16:04   #2
Toni Wilen
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.
Toni Wilen is online now  
Old 07 July 2012, 16:43   #3
BlankVector
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.
BlankVector is offline  
Old 07 July 2012, 17:27   #4
Toni Wilen
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.
Toni Wilen is online now  
Old 20 July 2012, 19:03   #5
Toni Wilen
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.
Toni Wilen is online now  
 


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

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 11:14.

Top

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Page generated in 0.23586 seconds with 13 queries