[maemo-developers] Java acceleration/Jazelle

From: Simon Pickering S.G.Pickering at bath.ac.uk
Date: Sat Jul 14 01:06:47 EEST 2007
Ah, looks like I spoke too soon.

My original branching code seems to have been misguided, hence the segfaults.

New improved code here:

Now, when I call bxj r12, with r12 pointing to the handler code and r14 
pointing to the Java code (or anything for that matter), I get a jump 
to the handler code at r12. Not sure whether this is actually a good 
thing, as I get a jump to the code in r12 no matter whether I have an 
unhandleable Java bytecode or what I understand are valid bytecodes 
(from Sebastian Mancke's presentation) at the address pointed to by 
r14. I'm not sure this should happen. It almost appears that the bxj 
instruction is acting as a simple branch instruction.

Example output:

Nokia-N800-26:/home/user# ./test_jazelle5.bin
R14 is 67192
R12 is 33752
R6 is -1090742540
R4 is 0

If I try running bxj r14 instead, I get a segfault.

Not quite giving up the thread of hope, it may be that the Java 
hardware needs to be enabled by one of the flags in CPSR (though this 
is requires privileges, so hopefully not) or what's called CP14 in fig1 
of the patent. Now I'm not sure if this agrees with what Sebastian 
found, as my impression was that no flag tweaking was required to make 
something happen for his test case?

It's too late in the evening to go looking for info about CP14 now, 
perhaps over the weekend.



More information about the maemo-developers mailing list