16 July 2014, 07:51 | #21 |
Hittin' the hardware...
Join Date: Feb 2002
Location: Mountain View, CA
Age: 44
Posts: 156
|
Oh, interesting... Ex-Transitive guy here!
A quick take on GCCJIT and QEMU TCG is that they're very basic for the purpose of replacing the UAE JIT and GCC is just heavyweight. If the motivation was to simply compile and run under x86_64 then sticking to the same i386 subset could be far more manageable as there are only a few common problems here such as default size of data pushed to stack, removed instructions (maybe not even applicable); far from a rewrite to port the ABI. I've taken a look at the UAE sources and it's fairly parseable to me but alas I'm likely encumbered. |
30 January 2018, 16:05 | #22 |
Registered User
Join Date: Apr 2012
Location: germany
Posts: 139
|
replace the JIT is not easy. The main problem is that the JIT must check every branch command if a new amiga chipset event need execute.
this cost lots time. because the problem with X86 is that the CPU flag register need stay correct . and when do the X86 asm commands that check if a new chipset event occur, this register is trash when it is not save. so the JIT code contain a commands pushf popf. this save and restore teh flags. The problem with this 2 commands is that they need more time than only 1 clock cycle. I think popf/pushf each use 10 X86 clock cycles https://en.wikipedia.org/wiki/FLAGS_register so short loops in 68k get very slow for example loop clr.l (a1) subq #1, d0 bne.s loop every time the bne is execute the JIt add code to check if a chipset event happen. (sound, dma, keyboard, mouse CIA) now we have 2018 with AVX and virtualisation extenstions in CPU, but i did not know if there is a way that the JIT can add some X86 commands to check for chipset events, and the flag Register of X86 is not trash If AVX or SSE have own flag register and a value compare do not change normal X86 flag register then can avoid that pushf and popf need use and so speed up much |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
FS-UAE - Why it have no JIT? | nexusle | support.FS-UAE | 19 | 13 May 2012 13:39 |
JIT error | Thom87 | support.WinUAE | 6 | 05 October 2008 20:38 |
Jit Error | CPC464 | support.WinUAE | 0 | 19 August 2002 12:12 |
JIT problem | Unregistered | support.WinUAE | 0 | 19 July 2002 06:00 |
JIT Emulation | Doozy | support.WinUAE | 2 | 17 January 2002 07:14 |
|
|