[maemo-developers] Java acceleration/Jazelle

From: Simon Pickering S.G.Pickering at bath.ac.uk
Date: Sat Dec 8 15:47:44 EET 2007
Good to see some interest in this still :)

>> Do we need to set some bit to enable Jazelle?
>
> No, the ARM people like to have special instructions to change   
> processor modes, like "ENTERX" or "BXJ" or the like. (I think. :))

No, we do have to explicitly setup Jazelle mode (IMHO).

I stumbled upon these pages on the ARM site:
http://infocenter.arm.com/help/topic/com.arm.doc.ddi0344d/Chdiciaj.html

There is a coprocessor which controls the Jazelle hardware and this  
might well imply that it needs to be setup/enabled for Jazelle to work  
(rather than just branching). I believe that the curious mix of faults  
we were seeing when trying to BXJ were simply the fact that BXJ does a  
BX branch (when Jazelle is not enabled), and was branching to our  
bytecodes but interpreting them as an ARM instruction. I tested this  
(bit painful working backwards from the binary to find the  
instruction), but need to dig out the test code if you want to see it.  
Otherwise just craft your bytecodes to be the same as an ARM binary  
instruction and check the fault you generate.

I was pointed towards a later version of the ARM Technical reference  
manual than the one we get in this country  
(https://www.jp.arm.com/document/manual/files/051020DDI0100HJ_v6_1.pdf) which  
contains a fair bit of information about Jazelle and these registers,  
etc.

I spent some time on Google translating it, here's my result (still  
needs some tweaking, any Japanese speakers out there fancy that?):  
http://people.bath.ac.uk/enpsgp/Japanese_jazelle_pdf_translation.rtf

I must admit I've been a bit busy hacking on other things so haven't  
done much else with this (it doesn't tell us how to enable Jazelle,  
nor about the structure of the bytecode lookup table, etc.). I suppose  
the next step is to experiment with the coprocessor and see if we can  
work out what to feed it to enable Jazelle.

Cheers,


Simon



More information about the maemo-developers mailing list