[maemo-developers] Java acceleration/Jazelle
From: Simon Pickering S.G.Pickering at bath.ac.ukDate: Sat Dec 8 15:47:44 EET 2007
- Previous message: Java acceleration/Jazelle
- Next message: How to add ogg to the supported codecs/containers list?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
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
- Previous message: Java acceleration/Jazelle
- Next message: How to add ogg to the supported codecs/containers list?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]