The ARM interpreter uses a form of computed goto to transition between 
handlers for each Dalvik byte code.   Each handler gets a fixed-size 
128-byte region (which is sufficient for most).  However, if an opcode 
handler needs more than 128 bytes, it must explicitly branch to the 
"sister" region.  For example, take a look at 
dalvik/vm/mterp/armv5te/OP_INVOKE_VIRTUAL.S.  All code following the 
"%break" pseudo-op goes into the syster region (note: this is handled by 
rebuild.sh).  It is customary to place the fast-path code within the fixed 
128-byte region, and branch out to the sister region for uncommon paths.

The error you are seeing means that one of the instruction handlers has 
been modified such that it no longer fits within the fixed 128-byte 
region.  You must either rewrite the handler to fit by either being more 
efficient, or by moving code out of the 128-byte region to the sister 
region.

-- 
unsubscribe: [email protected]
website: http://groups.google.com/group/android-porting

Reply via email to