English Amiga Board Amiga Lore


Go Back   English Amiga Board > Support > support.WinUAE

 
 
Thread Tools
Old 01 January 2014, 22:41   #1
jotd
Cat freak
jotd's Avatar
 
Join Date: Dec 2004
Location: FRANCE
Age: 46
Posts: 1,888
68060 integer instruction emulation in 2.7.0

Hi,

I'm using WinUAE 2.7.0 and I think that the checkbox "unimplemented CPU emu" is inverted for 68060 at least:

- when I check it, each MOVEP triggers an illegal instruction. Of course JIT forces it so no JIT for me...
- when I uncheck it (and remove JIT), MOVEP are emulated.

Another strange fact: whdload does not patch those instructions whereas it should
I think it detects a non-68060 CPU because winuae has a problem, and does not patch the calls. Something is broken here.

oh BTW: winuae with MMU and all really rocks!!!! I'm back after 3 years of not checking winuae and it is really something. so thanks a million Toni.

Regards
jotd is offline  
AdSense AdSense  
Old 01 January 2014, 23:35   #2
thomas
Registered User
thomas's Avatar
 
Join Date: Jan 2002
Location: Germany
Posts: 5,526
Quote:
Originally Posted by jotd View Post
I'm using WinUAE 2.7.0 and I think that the checkbox "unimplemented CPU emu" is inverted for 68060 at least:

- when I check it, each MOVEP triggers an illegal instruction. Of course JIT forces it so no JIT for me...
- when I uncheck it (and remove JIT), MOVEP are emulated.

That's exactly how it should be. "Unimplemented CPU emu" emulates correct behaviour of unimplemented instructions. If you uncheck it, non-existent instructions do not trigger an exception.
thomas is offline  
Old 02 January 2014, 08:05   #3
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 42
Posts: 19,661
It works as designed. It prevents users from ticking it because it looks interesting. (and break their system, they also most likely don't have correct CPU libraries installed and then complaining emulation being broken..)

How does it detect 68060?
Toni Wilen is online now  
Old 02 January 2014, 08:49   #4
jotd
Cat freak
jotd's Avatar
 
Join Date: Dec 2004
Location: FRANCE
Age: 46
Posts: 1,888
ok, but you should check the tooltip. it's confusing.
then why is it not possible to enable it in jit mode? the checkbox is checked and disabled

about whdload i don t know, i ve asked Bert

once again, only constructive comments, winuae is still great stuff!

bye
jotd is offline  
Old 02 January 2014, 10:39   #5
Dr.Venom
Registered User
 
Join Date: Jul 2008
Location: Netherlands
Posts: 300
Quote:
Originally Posted by Toni Wilen View Post
It works as designed. It prevents users from ticking it because it looks interesting. (and break their system, they also most likely don't have correct CPU libraries installed and then complaining emulation being broken..)
Possibly you could add a more descriptive tooltip? Personally when it comes to tooltips in general (for any program) I prefer them to not only contain the "technical" aspect, but also to indicate what the use is of the option, to me as a user. Such that I can make a better judgement whether I should tick or untick it, even when I don't know the exact technicality of it.

As a suggestion it could be something along the lines of "Emulate 68060 unimplemented integer instruction. Check this option for more accurate 68060 emulation. Note that it causes issues when you don't have correct CPU libraries installed." It's still short, but more descriptive in a non-technical sense.


Edit to add: since you'd probably want it shorter it could also be something like "Emulate 68060 unimplemented integer instruction. More accurate, but will cause issues when you don't have correct (68040/060) CPU libraries installed."

Last edited by Dr.Venom; 02 January 2014 at 10:47.
Dr.Venom is offline  
Old 02 January 2014, 10:51   #6
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 42
Posts: 19,661
No. If you don't know what it means, you either should forget about it or research it yourself instead of blindly changing the option.

No "normal" user need to ever select 68060 emulation, there is no 68060-only user space programs. (No, there really isn't any, some may say so but only because REAL 68040 or older is too slow)

"I know i have correct libraries, I have 68060.library in libs:". No, it isn't that simple, he/she may still have 68040.library that crashes with 68060 or no dummy 68040.library and old enough setpatch which ignores 68060.library. Or the library may be hardware specific one and not "generic" or. or. and so on.

You really have to know what are you doing if you use 68060. It is same with real 68060 hardware, search and you find out that there are lots of questions about 68060 crashing or working slowly or FPU not working and so on..
Toni Wilen is online now  
Old 02 January 2014, 23:31   #7
jotd
Cat freak
jotd's Avatar
 
Join Date: Dec 2004
Location: FRANCE
Age: 46
Posts: 1,888
Hi Toni,

I want to make sure my whdload slave is running on a 68060. That's why I use this setting (and also my original amiga uses that).

I talked with Bert and I think he figured this out:

maybe winuae is wrong because it has to fault with an 'unimplemented
integer instruction' instead of 'illegal instruction' when encountering a "MOVEP".

Regards
jotd is offline  
Old 03 January 2014, 15:38   #8
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 42
Posts: 19,661
MOVEP generates unimplemented integer instruction exception and 68060.library exception handler also emulates it correctly.
Toni Wilen is online now  
Old 03 January 2014, 16:27   #9
Mad-Matt
Longplayer

Mad-Matt's Avatar
 
Join Date: Jan 2005
Location: Lincoln / UK
Age: 38
Posts: 1,580
Send a message via ICQ to Mad-Matt Send a message via MSN to Mad-Matt
Are the 'Recommended' CPU Libraries still the generic MMULib ones? Also, is there any recommended WinUAE specific settings for the mmulib config file such as the mmu cache config when using CybergraphX for rtg cards.

Last edited by Mad-Matt; 03 January 2014 at 16:34.
Mad-Matt is offline  
Old 03 January 2014, 17:12   #10
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 42
Posts: 19,661
Quote:
Originally Posted by Mad-Matt View Post
Are the 'Recommended' CPU Libraries still the generic MMULib ones? Also, is there any recommended WinUAE specific settings for the mmulib config file such as the mmu cache config when using CybergraphX for rtg cards.
Nothing is recommended but anything that does not require or assume any extra hardware should work. Cache settings make no difference. Caches are only emulated if 68020 or 030 and cycle-exact mode.

But as I said in previous post: do you really need 68060 or MMU? Answer seems to be: no.
Toni Wilen is online now  
Old 03 January 2014, 17:15   #11
Mad-Matt
Longplayer

Mad-Matt's Avatar
 
Join Date: Jan 2005
Location: Lincoln / UK
Age: 38
Posts: 1,580
Send a message via ICQ to Mad-Matt Send a message via MSN to Mad-Matt
Its more for the feeling that the emulation acts and behaves exactly like a real Amiga. It matters not that an emulated 020 can outrun a real 060 Amiga
Mad-Matt is offline  
Old 03 January 2014, 19:13   #12
jotd
Cat freak
jotd's Avatar
 
Join Date: Dec 2004
Location: FRANCE
Age: 46
Posts: 1,888
okay, still a mystery
i ll switch to 68040, lets drop the 060 setting
jotd is offline  
Old 04 January 2014, 10:05   #13
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 42
Posts: 19,661
whdload seems to set exception handler to all "unexpected" exceptions and it checks if exception format and vector offset word is 00F4 (4*61) and if it is, it emulates unimplemented instruction.

-> include example slave that uses movep and I'll check if there is some other wrong bit somewhere..
Toni Wilen is online now  
Old 04 January 2014, 18:41   #14
jotd
Cat freak
jotd's Avatar
 
Join Date: Dec 2004
Location: FRANCE
Age: 46
Posts: 1,888
MOVEP fails on 68060 with WHDload

Hi Toni

Made a quick empty slave.

on 040 config it stops on "ILLEGAL"
on 060 config it stops on "MOVEP"

thx & regards

movep_test.zip
jotd is offline  
Old 04 January 2014, 19:20   #15
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 42
Posts: 19,661
Quote:
Originally Posted by jotd View Post
Hi Toni

Made a quick empty slave.

on 040 config it stops on "ILLEGAL"
on 060 config it stops on "MOVEP"
It works 100% correctly, problem is your test case. It does not crash on MOVEP.

MOVEP is emulated (by whdload exception handler), it crashes with ILLEGAL because next instruction after MOVEP is 4AFC!
Toni Wilen is online now  
AdSense AdSense  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
Integer scaling not pixel-perfect in 2.3.3 and 2.4.0 beta 21 Bonifacy support.WinUAE 11 08 September 2012 20:27
Integer Scaling FreakyDan support.WinUAE 3 12 May 2012 15:43
Integer scaling bug Leandro Jardim support.WinUAE 2 14 February 2012 20:46
WinUAE Integer Scaling Crash Schlachtwerk support.WinUAE 1 11 November 2011 17:04
68060 emulation bug riftcon support.WinUAE 4 14 March 2008 22:52

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 18:50.


Powered by vBulletin® Version 3.8.8 Beta 1
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Page generated in 0.18649 seconds with 12 queries