Welcome, Guest. Please login or register.

Author Topic: Best version of 68040.library to use with WinUAE.  (Read 6288 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16879
  • Country: gb
  • Thanked: 5 times
    • Show all replies
Re: Best version of 68040.library to use with WinUAE.
« on: October 09, 2003, 03:09:38 PM »
Quote

Thomas wrote:

Not at all. In fact 040 emulation is slower than 020 emulation. The more complex the emulated machine is, the slower is the emulation. The speed gain of a 040 about a 020 mainly is the cache. And in WinUAE cache is adjusted by the JIT slider, not by the processor type. Another improvement is the FPU, but AFAIK the builtin FPU of any processor has less commands than the external FPU of the 68020+FPU setting. (As mentioned above, FPU emulation might slow down emulation compared to a processor without FPU).


Whilst I don't pretend to understand why, this isn't my experience at all. 68040 optimised code runs about 5% faster on my installation of UAE running in 040 mode than the 020/882 optimised version of the same code in 020+68882 emulation mode.

Perhaps it could be that the 040 has fewer user-mode instructions to support than the 020/6882 model but I'm only guessing.
int p; // A
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16879
  • Country: gb
  • Thanked: 5 times
    • Show all replies
Re: Best version of 68040.library to use with WinUAE.
« Reply #1 on: October 09, 2003, 03:23:22 PM »
Quote

xeron wrote:
Quote

Karlos wrote:
Whilst I don't pretend to understand why, this isn't my experience at all. 68040 optimised code runs about 5% faster on my installation of UAE running in 040 mode than the 020/882 optimised version of the same code in 020+68882 emulation mode.


Run the 040 code on the 020/882 emulation mode and see if it makes any difference.


Well, I forgot to say - the 040 optimised code running in 020/882 mode runs at no noticable speed difference to the 020/882 code in 020/882 mode.

Basically all I am saying is that on my (old and a bit slow PC) system, 040 optimised code running in 040 emulation mode is measurably faster (sometimes upto 10%) than any other combo I've tried...
int p; // A
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16879
  • Country: gb
  • Thanked: 5 times
    • Show all replies
Re: Best version of 68040.library to use with WinUAE.
« Reply #2 on: October 09, 2003, 04:17:35 PM »
@Kenny,

I guess the phrase we are looking for is 'Your Mileage May Vary'...

MOS speed advantage is not just down to its 68K emulation - the fact that the OS calls (usually the most time consuming) are PPC native helps just as much. No doubt register allocation is a trivial operation on PPC too ;-)

Anyway, back to WinUAE. I've written code and tested under pretty strict conditions. On my PC at least, 040 optimised code running in 040 emulation mode (all other UAE settings unchanged) is faster than than 020/882 code in 040 emulation mode. This is unusual, unless the 040 emulation is written differently in some way.

The 040 optimised code running in 020/882 mode is no different from 020/882 optimised code in 020/882 mode.

Naturally any small set of tests are subject to random fluctuations, but the differences I've noticed on my PC are totally systematic over many repetitions.
int p; // A
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16879
  • Country: gb
  • Thanked: 5 times
    • Show all replies
Re: Best version of 68040.library to use with WinUAE.
« Reply #3 on: October 09, 2003, 04:24:53 PM »
Quote

KennyR wrote:

I meant more the fact that Trance is Hotspot JIT, the fastest variant available.


Yeah, I wouldn't mind seeing that for myself but alas MOS1.4 for blizzard is not publically available.

Quote

I suppose then it depends on the PC's CPU and memory bandwidth. If you say that 040 code is faster on WinUAE for you I believe you, but there's no logical reason why it should be faster (at least that I can think of).


Agreed - it is pretty weird and not at all what I expected.
int p; // A