i.MX515 Project
ARM Assembler for OpenJDK

in category Applications & Software
proposed by rsavoye on 17th August 2010 (accepted on 1st September 2010)
Project Summary
I'm working on a real ARM assembler for OpenJDK, which enables it to run about 5 times faster then the current software emulation one in OpenJDK. This work also includes many improvements to the thumb2 support, all of which are oriented to making Java run fast as possible on the ARM. If you want large Java applications like OpenOffice to run as good as possible on the ARM, you want me to work on this project. I've been using a BeagleBoard, but it's just too slow...

Project Blog Entries

  completed and released
posted by rsavoye on 26th May 2012

This work got delayed once again when the contract ended, but is now in the OpenJDK sources, and passes all the test cases.Thanks to RedHat for cleaning up what little needed to be done to complete this work. Rough benchmarks show it's about 6 times faster than the existing jvm for ARM.
  ARM assembler progress
posted by rsavoye on 27th August 2010

I've been making slow, but steady progress on fixing the ARM assembler used in OpenJDK. When the calling convention changed to fix another bug, it broke the ARM assembler, forcing Java to drop back to the ARM interpreter, which is much slower. The goal is to get this all fixed up in time for the release of Ubuntu Maverick.

Currently I've fixed all the low level assembler code, and it passes that part of the testsuite. Now I'm focusing on the C++ code that gets called for the thumb2 JIT. This should be easier than hacking the low level code, but it's still a bit of a register allocation nightmare. Most all the registers are being used, so finding temporary ones to support the fixed calling convention has been very interesting...
Genesi Network: Genesi - Main Site Power2People PowerDeveloper