This project is dedicated to the memory of William Morris (aka Frags), who was the main contributor to the bounty but was unable to see the final result.

Friday, May 30, 2014

Here is your Captain speaking

Ladies and Gentlemen, I would like to have a word with you about bug reporting...

Please do not report E-UAE JIT compiling related bugs to:
  • a forum at your favorite portal (because they are going to give you advices, unless it is a cooking portal, but they won't fix it anyway);
  • your "friends" on Facebook as a status post (because your hot ex-classmate doesn't care, not to mention that she put you to the acquaintances list for a long time and I am prettty sure she won't fix it anyway);
  • Runinuae author (because although Chris is a good guy, almost certainly he won't fix it anyway - hey Chris!);
  • your fellow Amiga-enthusiasts at the Club (because they might listen to your theory on what is the root cause of the bug, but they won't fix it anyway);
  • your neighbor's cat (because the poor thing doesn't want to hear anything about "fixing", I guarantee).
Why? Quite simple: if you try to report bugs anywhere else than my mailbox there is zero guarantee that your bug report ever lands on my computer.

You know, there is some chance that I wake up one day and realize:

Ah, some Amiga-fan while playing Superfrog on level 6 encountered a graphical glitch which is caused by a mis-used flag dependency in the JIT compiler optimization, so I must fix it. I need coffee!

Yes, there is some chance, very-very-very low chance. (As opposed to there is high chance that I wake up one day and realize: Hrrgrhh... I need coffee!)

Golden Rule

If you want to get the bug fixed then report it to me, preferably by e-mail.

Or you can create a ticket at the projects SourceForge page.

(If you really-really must then you can use the contact box on this blog at the right to the post.)

One more tiny thing

Please do your due-diligence before reporting, if I might ask you to.

What would I like to ask from you is summarized in the README file (yea, like anybody would read a README file). Here is a link to the current version on SourceForge code repository.

You can also find my e-mail address at the end of that file.

Thank you for your attention! Now go back sipping your cocktail, the dinner will be served at 6pm. Wearing Boing Ball pin is mandatory.

Wednesday, May 21, 2014

PPCJITBETA03 (Switch to Ludicrous Speed)

Welcome back, long time no see, my friend. Please be seated.

I can tell you I have some good news to you again: here comes Beta #3!

Get it here if you must:

I held this release back for a while just to fix the emulated cache checksum feature, but I have been chasing a bug for two weeks without any success. So, that fix is postponed to the next beta, in the meanwhile you can enjoy some significant speed enhancement and increased stability.

Without going into the details regarding the changes (see the included README for all changes) I would like to mention the most important change:


The major feature of this beta release is the register and flag optimization fix. You can turn it on in the configuration, just set comp_optimize to true.

If you are interested in the details I explained it already how the optimization works in an earlier post, but in case you are too lazy to read through that post: here is my old diagram (just because it is beautiful, you know):

Code translation flow diagram

Let me summarize it for you: the JIT compiler is collecting information about data-flow dependencies between the various macroblocks and tries to remove the ones which won't have any effect on the outcome of a certain block of macroblocks.
This is not a new feature in the JIT implementation, but previously a few (tons of) bugs prevented it from working on more complex codes than my Mandelbrot test.

In this release I have fixed every issue I have found so far with the optimization and it seems working quite nicely. You can boot the AmigaOS and it runs just fine, also games and demos will benefit from this feature too.
I was planing to do a comparison video where the speedup is clearly shown, but I haven't had too much time yet, so this is your job now, dear EUAEPPCJIT fans! Just post the links to the videos into the comments here. :)

PPC970 aka G5

Not everything is sunshine and happiness, though. Supporting G5 processor architecture target turned to be much more complicated than I thought, especially because I don't have any hardware to test on.

In the previous release the MacOSX G5 binary was not working properly on G5 (neither on any other PowerPC as matter of fact). Thanks to Luigi Burdo for the report and Tobias Netzel (again) for the help with the compiler. This is fixed in this release, hopefully. (Fingers crossed, I still don't have hardware to test on.)

While the situation with the MorphOS G5 version is not that hunky-dory: as it seems there is no official compiler with G5 support yet in the MorphOS SDK and it is rather complicated and unreliable to compile any source for that processor. Until this situation is improved the G5 version for MorphOS won't be available from the beta binaries.

However, nothing stop you from compiling your own version from the sources, as these are always available at SourceForge.


As I mentioned: I postponed the fix for the block checksum to the next release and also picked up some things to do. You can find the planned list here:

I also had a look on what is planned for the first stable release and moved some items around the various milestones. If you are curious just click at the milestones on the Sourceforge page.