diff options
author | Lalit Maganti <lalitmaganti@gmail.com> | 2012-07-12 00:40:26 -0700 |
---|---|---|
committer | Steve Kondik <shade@chemlab.org> | 2013-07-24 12:59:40 -0700 |
commit | 1a081c433c08eadcac738e03c04c75c4a028a29a (patch) | |
tree | d27faa991f43497c461a4149b4444deabe76106e /vm/mterp | |
parent | 2a2b9973cbcc3e186aae16f91cf7637c0ccc0b28 (diff) | |
download | android_dalvik-1a081c433c08eadcac738e03c04c75c4a028a29a.tar.gz android_dalvik-1a081c433c08eadcac738e03c04c75c4a028a29a.tar.bz2 android_dalvik-1a081c433c08eadcac738e03c04c75c4a028a29a.zip |
dalvik: Update ARMv6 code to compile and bring in line with ARMv5
Change-Id: I2764002422ade74db602cc2292108ed67241f0be
Diffstat (limited to 'vm/mterp')
-rw-r--r-- | vm/mterp/config-armv6-vfp | 2 | ||||
-rw-r--r-- | vm/mterp/config-armv6j | 1 | ||||
-rw-r--r-- | vm/mterp/out/InterpAsm-armv6-vfp.S | 10622 | ||||
-rw-r--r-- | vm/mterp/out/InterpAsm-armv6j.S | 10622 | ||||
-rw-r--r-- | vm/mterp/out/InterpC-armv6-vfp.cpp | 139 | ||||
-rw-r--r-- | vm/mterp/out/InterpC-armv6j.cpp | 139 |
6 files changed, 50 insertions, 21475 deletions
diff --git a/vm/mterp/config-armv6-vfp b/vm/mterp/config-armv6-vfp index 2cdcc31e9..d47b9e50d 100644 --- a/vm/mterp/config-armv6-vfp +++ b/vm/mterp/config-armv6-vfp @@ -74,8 +74,6 @@ op-start armv5te op OP_SUB_FLOAT arm-vfp op OP_SUB_FLOAT_2ADDR arm-vfp - alt OP_DISPATCH_FF armv5te - # use trivial integer operation #op OP_NEG_DOUBLE armv5te #op OP_NEG_FLOAT armv5te diff --git a/vm/mterp/config-armv6j b/vm/mterp/config-armv6j index 3718c0aa6..621578022 100644 --- a/vm/mterp/config-armv6j +++ b/vm/mterp/config-armv6j @@ -44,7 +44,6 @@ import armv5te/entry.S # opcode list; argument to op-start is default directory op-start armv5te #op OP_FILL_ARRAY_DATA c - alt OP_DISPATCH_FF armv5te # use trivial integer operation op OP_NEG_DOUBLE armv5te diff --git a/vm/mterp/out/InterpAsm-armv6-vfp.S b/vm/mterp/out/InterpAsm-armv6-vfp.S index 6847f28c4..1cd22409a 100644 --- a/vm/mterp/out/InterpAsm-armv6-vfp.S +++ b/vm/mterp/out/InterpAsm-armv6-vfp.S @@ -7700,3126 +7700,12 @@ dalvik_inst: /* ------------------------------ */ .balign 64 -.L_OP_DISPATCH_FF: /* 0xff */ -/* File: armv5te/OP_DISPATCH_FF.S */ - mov ip, rINST, lsr #8 @ ip<- extended opcode - add ip, ip, #256 @ add offset for extended opcodes - GOTO_OPCODE(ip) @ go to proper extended handler - - -/* ------------------------------ */ - .balign 64 -.L_OP_CONST_CLASS_JUMBO: /* 0x100 */ -/* File: armv5te/OP_CONST_CLASS_JUMBO.S */ - /* const-class/jumbo vBBBB, Class@AAAAAAAA */ - FETCH(r0, 1) @ r0<- aaaa (lo) - ldr r2, [rSELF, #offThread_methodClassDex] @ r2<-self>methodClassDex - FETCH(r1, 2) @ r1<- AAAA (hi) - ldr r2, [r2, #offDvmDex_pResClasses] @ r2<- dvmDex->pResClasses - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - FETCH(r9, 3) @ r9<- BBBB - ldr r0, [r2, r1, lsl #2] @ r0<- pResClasses[AAAAaaaa] - cmp r0, #0 @ not yet resolved? - beq .LOP_CONST_CLASS_JUMBO_resolve - FETCH_ADVANCE_INST(4) @ advance rPC, load rINST - GET_INST_OPCODE(ip) @ extract opcode from rINST - SET_VREG(r0, r9) @ vBBBB<- r0 - GOTO_OPCODE(ip) @ jump to next instruction - -/* ------------------------------ */ - .balign 64 -.L_OP_CHECK_CAST_JUMBO: /* 0x101 */ -/* File: armv5te/OP_CHECK_CAST_JUMBO.S */ - /* - * Check to see if a cast from one class to another is allowed. - */ - /* check-cast/jumbo vBBBB, class@AAAAAAAA */ - FETCH(r0, 1) @ r0<- aaaa (lo) - FETCH(r2, 2) @ r2<- AAAA (hi) - FETCH(r3, 3) @ r3<- BBBB - orr r2, r0, r2, lsl #16 @ r2<- AAAAaaaa - GET_VREG(r9, r3) @ r9<- object - ldr r0, [rSELF, #offThread_methodClassDex] @ r0<- pDvmDex - cmp r9, #0 @ is object null? - ldr r0, [r0, #offDvmDex_pResClasses] @ r0<- pDvmDex->pResClasses - beq .LOP_CHECK_CAST_JUMBO_okay @ null obj, cast always succeeds - ldr r1, [r0, r2, lsl #2] @ r1<- resolved class - ldr r0, [r9, #offObject_clazz] @ r0<- obj->clazz - cmp r1, #0 @ have we resolved this before? - beq .LOP_CHECK_CAST_JUMBO_resolve @ not resolved, do it now -.LOP_CHECK_CAST_JUMBO_resolved: - cmp r0, r1 @ same class (trivial success)? - bne .LOP_CHECK_CAST_JUMBO_fullcheck @ no, do full check - b .LOP_CHECK_CAST_JUMBO_okay @ yes, finish up - -/* ------------------------------ */ - .balign 64 -.L_OP_INSTANCE_OF_JUMBO: /* 0x102 */ -/* File: armv5te/OP_INSTANCE_OF_JUMBO.S */ - /* - * Check to see if an object reference is an instance of a class. - * - * Most common situation is a non-null object, being compared against - * an already-resolved class. - * - * TODO: convert most of this into a common subroutine, shared with - * OP_INSTANCE_OF.S. - */ - /* instance-of/jumbo vBBBB, vCCCC, class@AAAAAAAA */ - FETCH(r3, 4) @ r3<- vCCCC - FETCH(r9, 3) @ r9<- vBBBB - GET_VREG(r0, r3) @ r0<- vCCCC (object) - ldr r2, [rSELF, #offThread_methodClassDex] @ r2<- pDvmDex - cmp r0, #0 @ is object null? - beq .LOP_INSTANCE_OF_JUMBO_store @ null obj, not an instance, store r0 - FETCH(r1, 1) @ r1<- aaaa (lo) - FETCH(r3, 2) @ r3<- AAAA (hi) - ldr r2, [r2, #offDvmDex_pResClasses] @ r2<- pDvmDex->pResClasses - orr r3, r1, r3, lsl #16 @ r3<- AAAAaaaa - ldr r1, [r2, r3, lsl #2] @ r1<- resolved class - ldr r0, [r0, #offObject_clazz] @ r0<- obj->clazz - cmp r1, #0 @ have we resolved this before? - beq .LOP_INSTANCE_OF_JUMBO_resolve @ not resolved, do it now - b .LOP_INSTANCE_OF_JUMBO_resolved @ resolved, continue - -/* ------------------------------ */ - .balign 64 -.L_OP_NEW_INSTANCE_JUMBO: /* 0x103 */ -/* File: armv5te/OP_NEW_INSTANCE_JUMBO.S */ - /* - * Create a new instance of a class. - */ - /* new-instance/jumbo vBBBB, class@AAAAAAAA */ - FETCH(r0, 1) @ r0<- aaaa (lo) - FETCH(r1, 2) @ r1<- AAAA (hi) - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- pDvmDex - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - ldr r3, [r3, #offDvmDex_pResClasses] @ r3<- pDvmDex->pResClasses - ldr r0, [r3, r1, lsl #2] @ r0<- resolved class -#if defined(WITH_JIT) - add r10, r3, r1, lsl #2 @ r10<- &resolved_class -#endif - EXPORT_PC() @ req'd for init, resolve, alloc - cmp r0, #0 @ already resolved? - beq .LOP_NEW_INSTANCE_JUMBO_resolve @ no, resolve it now -.LOP_NEW_INSTANCE_JUMBO_resolved: @ r0=class - ldrb r1, [r0, #offClassObject_status] @ r1<- ClassStatus enum - cmp r1, #CLASS_INITIALIZED @ has class been initialized? - bne .LOP_NEW_INSTANCE_JUMBO_needinit @ no, init class now -.LOP_NEW_INSTANCE_JUMBO_initialized: @ r0=class - mov r1, #ALLOC_DONT_TRACK @ flags for alloc call - bl dvmAllocObject @ r0<- new object - b .LOP_NEW_INSTANCE_JUMBO_finish @ continue - -/* ------------------------------ */ - .balign 64 -.L_OP_NEW_ARRAY_JUMBO: /* 0x104 */ -/* File: armv5te/OP_NEW_ARRAY_JUMBO.S */ - /* - * Allocate an array of objects, specified with the array class - * and a count. - * - * The verifier guarantees that this is an array class, so we don't - * check for it here. - */ - /* new-array/jumbo vBBBB, vCCCC, class@AAAAAAAA */ - FETCH(r2, 1) @ r2<- aaaa (lo) - FETCH(r3, 2) @ r3<- AAAA (hi) - FETCH(r0, 4) @ r0<- vCCCC - orr r2, r2, r3, lsl #16 @ r2<- AAAAaaaa - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- pDvmDex - GET_VREG(r1, r0) @ r1<- vCCCC (array length) - ldr r3, [r3, #offDvmDex_pResClasses] @ r3<- pDvmDex->pResClasses - cmp r1, #0 @ check length - ldr r0, [r3, r2, lsl #2] @ r0<- resolved class - bmi common_errNegativeArraySize @ negative length, bail - len in r1 - cmp r0, #0 @ already resolved? - EXPORT_PC() @ req'd for resolve, alloc - bne .LOP_NEW_ARRAY_JUMBO_finish @ resolved, continue - b .LOP_NEW_ARRAY_JUMBO_resolve @ do resolve now - -/* ------------------------------ */ - .balign 64 -.L_OP_FILLED_NEW_ARRAY_JUMBO: /* 0x105 */ -/* File: armv5te/OP_FILLED_NEW_ARRAY_JUMBO.S */ - /* - * Create a new array with elements filled from registers. - * - * TODO: convert most of this into a common subroutine, shared with - * OP_FILLED_NEW_ARRAY.S. - */ - /* filled-new-array/jumbo {vCCCC..v(CCCC+BBBB-1)}, type@AAAAAAAA */ - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- pDvmDex - FETCH(r0, 1) @ r0<- aaaa (lo) - FETCH(r1, 2) @ r1<- AAAA (hi) - ldr r3, [r3, #offDvmDex_pResClasses] @ r3<- pDvmDex->pResClasses - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - ldr r0, [r3, r1, lsl #2] @ r0<- resolved class - EXPORT_PC() @ need for resolve and alloc - cmp r0, #0 @ already resolved? - bne .LOP_FILLED_NEW_ARRAY_JUMBO_continue @ yes, continue on -8: ldr r3, [rSELF, #offThread_method] @ r3<- self->method - mov r2, #0 @ r2<- false - ldr r0, [r3, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveClass @ r0<- call(clazz, ref) - cmp r0, #0 @ got null? - beq common_exceptionThrown @ yes, handle exception - b .LOP_FILLED_NEW_ARRAY_JUMBO_continue - -/* ------------------------------ */ - .balign 64 -.L_OP_IGET_JUMBO: /* 0x106 */ -/* File: armv5te/OP_IGET_JUMBO.S */ - /* - * Jumbo 32-bit instance field get. - * - * for: iget/jumbo, iget-object/jumbo, iget-boolean/jumbo, iget-byte/jumbo, - * iget-char/jumbo, iget-short/jumbo - */ - /* exop vBBBB, vCCCC, field@AAAAAAAA */ - FETCH(r1, 1) @ r1<- aaaa (lo) - FETCH(r2, 2) @ r2<- AAAA (hi) - FETCH(r0, 4) @ r0<- CCCC - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- DvmDex - orr r1, r1, r2, lsl #16 @ r1<- AAAAaaaa - ldr r2, [r3, #offDvmDex_pResFields] @ r2<- pDvmDex->pResFields - GET_VREG(r9, r0) @ r9<- fp[CCCC], the object pointer - ldr r0, [r2, r1, lsl #2] @ r0<- resolved InstField ptr - cmp r0, #0 @ is resolved entry null? - bne .LOP_IGET_JUMBO_finish @ no, already resolved -8: ldr r2, [rSELF, #offThread_method] @ r2<- current method - EXPORT_PC() @ resolve() could throw - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveInstField @ r0<- resolved InstField ptr - b .LOP_IGET_JUMBO_resolved @ resolved, continue - -/* ------------------------------ */ - .balign 64 -.L_OP_IGET_WIDE_JUMBO: /* 0x107 */ -/* File: armv5te/OP_IGET_WIDE_JUMBO.S */ - /* - * Jumbo 64-bit instance field get. - */ - /* iget-wide/jumbo vBBBB, vCCCC, field@AAAAAAAA */ - FETCH(r1, 1) @ r1<- aaaa (lo) - FETCH(r2, 2) @ r2<- AAAA (hi) - FETCH(r0, 4) @ r0<- CCCC - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- DvmDex - orr r1, r1, r2, lsl #16 @ r1<- AAAAaaaa - ldr r2, [r3, #offDvmDex_pResFields] @ r2<- pResFields - GET_VREG(r9, r0) @ r9<- fp[CCCC], the object pointer - ldr r0, [r2, r1, lsl #2] @ r0<- resolved InstField ptr - cmp r0, #0 @ is resolved entry null? - bne .LOP_IGET_WIDE_JUMBO_finish @ no, already resolved - ldr r2, [rSELF, #offThread_method] @ r2<- current method - EXPORT_PC() @ resolve() could throw - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveInstField @ r0<- resolved InstField ptr - b .LOP_IGET_WIDE_JUMBO_resolved @ resolved, continue - -/* ------------------------------ */ - .balign 64 -.L_OP_IGET_OBJECT_JUMBO: /* 0x108 */ -/* File: armv5te/OP_IGET_OBJECT_JUMBO.S */ -/* File: armv5te/OP_IGET_JUMBO.S */ - /* - * Jumbo 32-bit instance field get. - * - * for: iget/jumbo, iget-object/jumbo, iget-boolean/jumbo, iget-byte/jumbo, - * iget-char/jumbo, iget-short/jumbo - */ - /* exop vBBBB, vCCCC, field@AAAAAAAA */ - FETCH(r1, 1) @ r1<- aaaa (lo) - FETCH(r2, 2) @ r2<- AAAA (hi) - FETCH(r0, 4) @ r0<- CCCC - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- DvmDex - orr r1, r1, r2, lsl #16 @ r1<- AAAAaaaa - ldr r2, [r3, #offDvmDex_pResFields] @ r2<- pDvmDex->pResFields - GET_VREG(r9, r0) @ r9<- fp[CCCC], the object pointer - ldr r0, [r2, r1, lsl #2] @ r0<- resolved InstField ptr - cmp r0, #0 @ is resolved entry null? - bne .LOP_IGET_OBJECT_JUMBO_finish @ no, already resolved -8: ldr r2, [rSELF, #offThread_method] @ r2<- current method - EXPORT_PC() @ resolve() could throw - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveInstField @ r0<- resolved InstField ptr - b .LOP_IGET_OBJECT_JUMBO_resolved @ resolved, continue - - -/* ------------------------------ */ - .balign 64 -.L_OP_IGET_BOOLEAN_JUMBO: /* 0x109 */ -/* File: armv5te/OP_IGET_BOOLEAN_JUMBO.S */ -@include "armv5te/OP_IGET_JUMBO.S" { "load":"ldrb", "sqnum":"1" } -/* File: armv5te/OP_IGET_JUMBO.S */ - /* - * Jumbo 32-bit instance field get. - * - * for: iget/jumbo, iget-object/jumbo, iget-boolean/jumbo, iget-byte/jumbo, - * iget-char/jumbo, iget-short/jumbo - */ - /* exop vBBBB, vCCCC, field@AAAAAAAA */ - FETCH(r1, 1) @ r1<- aaaa (lo) - FETCH(r2, 2) @ r2<- AAAA (hi) - FETCH(r0, 4) @ r0<- CCCC - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- DvmDex - orr r1, r1, r2, lsl #16 @ r1<- AAAAaaaa - ldr r2, [r3, #offDvmDex_pResFields] @ r2<- pDvmDex->pResFields - GET_VREG(r9, r0) @ r9<- fp[CCCC], the object pointer - ldr r0, [r2, r1, lsl #2] @ r0<- resolved InstField ptr - cmp r0, #0 @ is resolved entry null? - bne .LOP_IGET_BOOLEAN_JUMBO_finish @ no, already resolved -8: ldr r2, [rSELF, #offThread_method] @ r2<- current method - EXPORT_PC() @ resolve() could throw - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveInstField @ r0<- resolved InstField ptr - b .LOP_IGET_BOOLEAN_JUMBO_resolved @ resolved, continue - - -/* ------------------------------ */ - .balign 64 -.L_OP_IGET_BYTE_JUMBO: /* 0x10a */ -/* File: armv5te/OP_IGET_BYTE_JUMBO.S */ -@include "armv5te/OP_IGET_JUMBO.S" { "load":"ldrsb", "sqnum":"2" } -/* File: armv5te/OP_IGET_JUMBO.S */ - /* - * Jumbo 32-bit instance field get. - * - * for: iget/jumbo, iget-object/jumbo, iget-boolean/jumbo, iget-byte/jumbo, - * iget-char/jumbo, iget-short/jumbo - */ - /* exop vBBBB, vCCCC, field@AAAAAAAA */ - FETCH(r1, 1) @ r1<- aaaa (lo) - FETCH(r2, 2) @ r2<- AAAA (hi) - FETCH(r0, 4) @ r0<- CCCC - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- DvmDex - orr r1, r1, r2, lsl #16 @ r1<- AAAAaaaa - ldr r2, [r3, #offDvmDex_pResFields] @ r2<- pDvmDex->pResFields - GET_VREG(r9, r0) @ r9<- fp[CCCC], the object pointer - ldr r0, [r2, r1, lsl #2] @ r0<- resolved InstField ptr - cmp r0, #0 @ is resolved entry null? - bne .LOP_IGET_BYTE_JUMBO_finish @ no, already resolved -8: ldr r2, [rSELF, #offThread_method] @ r2<- current method - EXPORT_PC() @ resolve() could throw - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveInstField @ r0<- resolved InstField ptr - b .LOP_IGET_BYTE_JUMBO_resolved @ resolved, continue - - -/* ------------------------------ */ - .balign 64 -.L_OP_IGET_CHAR_JUMBO: /* 0x10b */ -/* File: armv5te/OP_IGET_CHAR_JUMBO.S */ -@include "armv5te/OP_IGET_JUMBO.S" { "load":"ldrh", "sqnum":"3" } -/* File: armv5te/OP_IGET_JUMBO.S */ - /* - * Jumbo 32-bit instance field get. - * - * for: iget/jumbo, iget-object/jumbo, iget-boolean/jumbo, iget-byte/jumbo, - * iget-char/jumbo, iget-short/jumbo - */ - /* exop vBBBB, vCCCC, field@AAAAAAAA */ - FETCH(r1, 1) @ r1<- aaaa (lo) - FETCH(r2, 2) @ r2<- AAAA (hi) - FETCH(r0, 4) @ r0<- CCCC - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- DvmDex - orr r1, r1, r2, lsl #16 @ r1<- AAAAaaaa - ldr r2, [r3, #offDvmDex_pResFields] @ r2<- pDvmDex->pResFields - GET_VREG(r9, r0) @ r9<- fp[CCCC], the object pointer - ldr r0, [r2, r1, lsl #2] @ r0<- resolved InstField ptr - cmp r0, #0 @ is resolved entry null? - bne .LOP_IGET_CHAR_JUMBO_finish @ no, already resolved -8: ldr r2, [rSELF, #offThread_method] @ r2<- current method - EXPORT_PC() @ resolve() could throw - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveInstField @ r0<- resolved InstField ptr - b .LOP_IGET_CHAR_JUMBO_resolved @ resolved, continue - - -/* ------------------------------ */ - .balign 64 -.L_OP_IGET_SHORT_JUMBO: /* 0x10c */ -/* File: armv5te/OP_IGET_SHORT_JUMBO.S */ -@include "armv5te/OP_IGET_JUMBO.S" { "load":"ldrsh", "sqnum":"4" } -/* File: armv5te/OP_IGET_JUMBO.S */ - /* - * Jumbo 32-bit instance field get. - * - * for: iget/jumbo, iget-object/jumbo, iget-boolean/jumbo, iget-byte/jumbo, - * iget-char/jumbo, iget-short/jumbo - */ - /* exop vBBBB, vCCCC, field@AAAAAAAA */ - FETCH(r1, 1) @ r1<- aaaa (lo) - FETCH(r2, 2) @ r2<- AAAA (hi) - FETCH(r0, 4) @ r0<- CCCC - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- DvmDex - orr r1, r1, r2, lsl #16 @ r1<- AAAAaaaa - ldr r2, [r3, #offDvmDex_pResFields] @ r2<- pDvmDex->pResFields - GET_VREG(r9, r0) @ r9<- fp[CCCC], the object pointer - ldr r0, [r2, r1, lsl #2] @ r0<- resolved InstField ptr - cmp r0, #0 @ is resolved entry null? - bne .LOP_IGET_SHORT_JUMBO_finish @ no, already resolved -8: ldr r2, [rSELF, #offThread_method] @ r2<- current method - EXPORT_PC() @ resolve() could throw - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveInstField @ r0<- resolved InstField ptr - b .LOP_IGET_SHORT_JUMBO_resolved @ resolved, continue - - -/* ------------------------------ */ - .balign 64 -.L_OP_IPUT_JUMBO: /* 0x10d */ -/* File: armv5te/OP_IPUT_JUMBO.S */ - /* - * Jumbo 32-bit instance field put. - * - * for: iput/jumbo, iput-boolean/jumbo, iput-byte/jumbo, iput-char/jumbo, - * iput-short/jumbo - */ - /* exop vBBBB, vCCCC, field@AAAAAAAA */ - FETCH(r1, 1) @ r1<- aaaa (lo) - FETCH(r2, 2) @ r2<- AAAA (hi) - FETCH(r0, 4) @ r0<- CCCC - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- DvmDex - orr r1, r1, r2, lsl #16 @ r1<- AAAAaaaa - ldr r2, [r3, #offDvmDex_pResFields] @ r2<- pDvmDex->pResFields - GET_VREG(r9, r0) @ r9<- fp[CCCC], the object pointer - ldr r0, [r2, r1, lsl #2] @ r0<- resolved InstField ptr - cmp r0, #0 @ is resolved entry null? - bne .LOP_IPUT_JUMBO_finish @ no, already resolved -8: ldr r2, [rSELF, #offThread_method] @ r2<- current method - EXPORT_PC() @ resolve() could throw - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveInstField @ r0<- resolved InstField ptr - b .LOP_IPUT_JUMBO_resolved @ resolved, continue - -/* ------------------------------ */ - .balign 64 -.L_OP_IPUT_WIDE_JUMBO: /* 0x10e */ -/* File: armv5te/OP_IPUT_WIDE_JUMBO.S */ - /* iput-wide/jumbo vBBBB, vCCCC, field@AAAAAAAA */ - FETCH(r1, 1) @ r1<- aaaa (lo) - FETCH(r2, 2) @ r2<- AAAA (hi) - FETCH(r0, 4) @ r0<- CCCC - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- DvmDex - orr r1, r1, r2, lsl #16 @ r1<- AAAAaaaa - ldr r2, [r3, #offDvmDex_pResFields] @ r2<- pResFields - GET_VREG(r9, r0) @ r9<- fp[B], the object pointer - ldr r0, [r2, r1, lsl #2] @ r0<- resolved InstField ptr - cmp r0, #0 @ is resolved entry null? - bne .LOP_IPUT_WIDE_JUMBO_finish @ no, already resolved -8: ldr r2, [rSELF, #offThread_method] @ r2<- current method - EXPORT_PC() @ resolve() could throw - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveInstField @ r0<- resolved InstField ptr - b .LOP_IPUT_WIDE_JUMBO_resolved @ resolved, continue - -/* ------------------------------ */ - .balign 64 -.L_OP_IPUT_OBJECT_JUMBO: /* 0x10f */ -/* File: armv5te/OP_IPUT_OBJECT_JUMBO.S */ - /* - * Jumbo 32-bit instance field put. - */ - /* iput-object/jumbo vBBBB, vCCCC, field@AAAAAAAA */ - FETCH(r1, 1) @ r1<- aaaa (lo) - FETCH(r2, 2) @ r2<- AAAA (hi) - FETCH(r0, 4) @ r0<- CCCC - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- DvmDex - orr r1, r1, r2, lsl #16 @ r1<- AAAAaaaa - ldr r2, [r3, #offDvmDex_pResFields] @ r2<- pDvmDex->pResFields - GET_VREG(r9, r0) @ r9<- fp[CCCC], the object pointer - ldr r0, [r2, r1, lsl #2] @ r0<- resolved InstField ptr - cmp r0, #0 @ is resolved entry null? - bne .LOP_IPUT_OBJECT_JUMBO_finish @ no, already resolved -8: ldr r2, [rSELF, #offThread_method] @ r2<- current method - EXPORT_PC() @ resolve() could throw - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveInstField @ r0<- resolved InstField ptr - b .LOP_IPUT_OBJECT_JUMBO_resolved @ resolved, continue - -/* ------------------------------ */ - .balign 64 -.L_OP_IPUT_BOOLEAN_JUMBO: /* 0x110 */ -/* File: armv5te/OP_IPUT_BOOLEAN_JUMBO.S */ -@include "armv5te/OP_IPUT_JUMBO.S" { "store":"strb", "sqnum":"1" } -/* File: armv5te/OP_IPUT_JUMBO.S */ - /* - * Jumbo 32-bit instance field put. - * - * for: iput/jumbo, iput-boolean/jumbo, iput-byte/jumbo, iput-char/jumbo, - * iput-short/jumbo - */ - /* exop vBBBB, vCCCC, field@AAAAAAAA */ - FETCH(r1, 1) @ r1<- aaaa (lo) - FETCH(r2, 2) @ r2<- AAAA (hi) - FETCH(r0, 4) @ r0<- CCCC - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- DvmDex - orr r1, r1, r2, lsl #16 @ r1<- AAAAaaaa - ldr r2, [r3, #offDvmDex_pResFields] @ r2<- pDvmDex->pResFields - GET_VREG(r9, r0) @ r9<- fp[CCCC], the object pointer - ldr r0, [r2, r1, lsl #2] @ r0<- resolved InstField ptr - cmp r0, #0 @ is resolved entry null? - bne .LOP_IPUT_BOOLEAN_JUMBO_finish @ no, already resolved -8: ldr r2, [rSELF, #offThread_method] @ r2<- current method - EXPORT_PC() @ resolve() could throw - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveInstField @ r0<- resolved InstField ptr - b .LOP_IPUT_BOOLEAN_JUMBO_resolved @ resolved, continue - - -/* ------------------------------ */ - .balign 64 -.L_OP_IPUT_BYTE_JUMBO: /* 0x111 */ -/* File: armv5te/OP_IPUT_BYTE_JUMBO.S */ -@include "armv5te/OP_IPUT_JUMBO.S" { "store":"strb", "sqnum":"2" } -/* File: armv5te/OP_IPUT_JUMBO.S */ - /* - * Jumbo 32-bit instance field put. - * - * for: iput/jumbo, iput-boolean/jumbo, iput-byte/jumbo, iput-char/jumbo, - * iput-short/jumbo - */ - /* exop vBBBB, vCCCC, field@AAAAAAAA */ - FETCH(r1, 1) @ r1<- aaaa (lo) - FETCH(r2, 2) @ r2<- AAAA (hi) - FETCH(r0, 4) @ r0<- CCCC - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- DvmDex - orr r1, r1, r2, lsl #16 @ r1<- AAAAaaaa - ldr r2, [r3, #offDvmDex_pResFields] @ r2<- pDvmDex->pResFields - GET_VREG(r9, r0) @ r9<- fp[CCCC], the object pointer - ldr r0, [r2, r1, lsl #2] @ r0<- resolved InstField ptr - cmp r0, #0 @ is resolved entry null? - bne .LOP_IPUT_BYTE_JUMBO_finish @ no, already resolved -8: ldr r2, [rSELF, #offThread_method] @ r2<- current method - EXPORT_PC() @ resolve() could throw - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveInstField @ r0<- resolved InstField ptr - b .LOP_IPUT_BYTE_JUMBO_resolved @ resolved, continue - - -/* ------------------------------ */ - .balign 64 -.L_OP_IPUT_CHAR_JUMBO: /* 0x112 */ -/* File: armv5te/OP_IPUT_CHAR_JUMBO.S */ -@include "armv5te/OP_IPUT_JUMBO.S" { "store":"strh", "sqnum":"3" } -/* File: armv5te/OP_IPUT_JUMBO.S */ - /* - * Jumbo 32-bit instance field put. - * - * for: iput/jumbo, iput-boolean/jumbo, iput-byte/jumbo, iput-char/jumbo, - * iput-short/jumbo - */ - /* exop vBBBB, vCCCC, field@AAAAAAAA */ - FETCH(r1, 1) @ r1<- aaaa (lo) - FETCH(r2, 2) @ r2<- AAAA (hi) - FETCH(r0, 4) @ r0<- CCCC - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- DvmDex - orr r1, r1, r2, lsl #16 @ r1<- AAAAaaaa - ldr r2, [r3, #offDvmDex_pResFields] @ r2<- pDvmDex->pResFields - GET_VREG(r9, r0) @ r9<- fp[CCCC], the object pointer - ldr r0, [r2, r1, lsl #2] @ r0<- resolved InstField ptr - cmp r0, #0 @ is resolved entry null? - bne .LOP_IPUT_CHAR_JUMBO_finish @ no, already resolved -8: ldr r2, [rSELF, #offThread_method] @ r2<- current method - EXPORT_PC() @ resolve() could throw - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveInstField @ r0<- resolved InstField ptr - b .LOP_IPUT_CHAR_JUMBO_resolved @ resolved, continue - - -/* ------------------------------ */ - .balign 64 -.L_OP_IPUT_SHORT_JUMBO: /* 0x113 */ -/* File: armv5te/OP_IPUT_SHORT_JUMBO.S */ -@include "armv5te/OP_IPUT_JUMBO.S" { "store":"strh", "sqnum":"4" } -/* File: armv5te/OP_IPUT_JUMBO.S */ - /* - * Jumbo 32-bit instance field put. - * - * for: iput/jumbo, iput-boolean/jumbo, iput-byte/jumbo, iput-char/jumbo, - * iput-short/jumbo - */ - /* exop vBBBB, vCCCC, field@AAAAAAAA */ - FETCH(r1, 1) @ r1<- aaaa (lo) - FETCH(r2, 2) @ r2<- AAAA (hi) - FETCH(r0, 4) @ r0<- CCCC - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- DvmDex - orr r1, r1, r2, lsl #16 @ r1<- AAAAaaaa - ldr r2, [r3, #offDvmDex_pResFields] @ r2<- pDvmDex->pResFields - GET_VREG(r9, r0) @ r9<- fp[CCCC], the object pointer - ldr r0, [r2, r1, lsl #2] @ r0<- resolved InstField ptr - cmp r0, #0 @ is resolved entry null? - bne .LOP_IPUT_SHORT_JUMBO_finish @ no, already resolved -8: ldr r2, [rSELF, #offThread_method] @ r2<- current method - EXPORT_PC() @ resolve() could throw - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveInstField @ r0<- resolved InstField ptr - b .LOP_IPUT_SHORT_JUMBO_resolved @ resolved, continue - - -/* ------------------------------ */ - .balign 64 -.L_OP_SGET_JUMBO: /* 0x114 */ -/* File: armv5te/OP_SGET_JUMBO.S */ - /* - * Jumbo 32-bit SGET handler. - * - * for: sget/jumbo, sget-object/jumbo, sget-boolean/jumbo, sget-byte/jumbo, - * sget-char/jumbo, sget-short/jumbo - */ - /* exop vBBBB, field@AAAAAAAA */ - ldr r2, [rSELF, #offThread_methodClassDex] @ r2<- DvmDex - FETCH(r0, 1) @ r0<- aaaa (lo) - FETCH(r1, 2) @ r1<- AAAA (hi) - ldr r10, [r2, #offDvmDex_pResFields] @ r10<- dvmDex->pResFields - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - ldr r0, [r10, r1, lsl #2] @ r0<- resolved StaticField ptr - cmp r0, #0 @ is resolved entry null? - beq .LOP_SGET_JUMBO_resolve @ yes, do resolve -.LOP_SGET_JUMBO_finish: @ field ptr in r0 - ldr r1, [r0, #offStaticField_value] @ r1<- field value - @ no-op @ acquiring load - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(4) @ advance rPC, load rINST - SET_VREG(r1, r2) @ fp[BBBB]<- r1 - GET_INST_OPCODE(ip) @ extract opcode from rINST - GOTO_OPCODE(ip) @ jump to next instruction - -/* ------------------------------ */ - .balign 64 -.L_OP_SGET_WIDE_JUMBO: /* 0x115 */ -/* File: armv5te/OP_SGET_WIDE_JUMBO.S */ - /* - * Jumbo 64-bit SGET handler. - */ - /* sget-wide/jumbo vBBBB, field@AAAAAAAA */ - ldr r2, [rSELF, #offThread_methodClassDex] @ r2<- DvmDex - FETCH(r0, 1) @ r0<- aaaa (lo) - FETCH(r1, 2) @ r1<- AAAA (hi) - ldr r2, [r2, #offDvmDex_pResFields] @ r2<- dvmDex->pResFields - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - ldr r0, [r2, r1, lsl #2] @ r0<- resolved StaticField ptr - cmp r0, #0 @ is resolved entry null? - beq .LOP_SGET_WIDE_JUMBO_resolve @ yes, do resolve -.LOP_SGET_WIDE_JUMBO_finish: - FETCH(r9, 3) @ r9<- BBBB - .if 0 - add r0, r0, #offStaticField_value @ r0<- pointer to data - bl dvmQuasiAtomicRead64 @ r0/r1<- contents of field - .else - ldrd r0, [r0, #offStaticField_value] @ r0/r1<- field value (aligned) - .endif - add r9, rFP, r9, lsl #2 @ r9<- &fp[BBBB] - FETCH_ADVANCE_INST(4) @ advance rPC, load rINST - stmia r9, {r0-r1} @ vBBBB/vBBBB+1<- r0/r1 - GET_INST_OPCODE(ip) @ extract opcode from rINST - GOTO_OPCODE(ip) @ jump to next instruction - -/* ------------------------------ */ - .balign 64 -.L_OP_SGET_OBJECT_JUMBO: /* 0x116 */ -/* File: armv5te/OP_SGET_OBJECT_JUMBO.S */ -/* File: armv5te/OP_SGET_JUMBO.S */ - /* - * Jumbo 32-bit SGET handler. - * - * for: sget/jumbo, sget-object/jumbo, sget-boolean/jumbo, sget-byte/jumbo, - * sget-char/jumbo, sget-short/jumbo - */ - /* exop vBBBB, field@AAAAAAAA */ - ldr r2, [rSELF, #offThread_methodClassDex] @ r2<- DvmDex - FETCH(r0, 1) @ r0<- aaaa (lo) - FETCH(r1, 2) @ r1<- AAAA (hi) - ldr r10, [r2, #offDvmDex_pResFields] @ r10<- dvmDex->pResFields - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - ldr r0, [r10, r1, lsl #2] @ r0<- resolved StaticField ptr - cmp r0, #0 @ is resolved entry null? - beq .LOP_SGET_OBJECT_JUMBO_resolve @ yes, do resolve -.LOP_SGET_OBJECT_JUMBO_finish: @ field ptr in r0 - ldr r1, [r0, #offStaticField_value] @ r1<- field value - @ no-op @ acquiring load - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(4) @ advance rPC, load rINST - SET_VREG(r1, r2) @ fp[BBBB]<- r1 - GET_INST_OPCODE(ip) @ extract opcode from rINST - GOTO_OPCODE(ip) @ jump to next instruction - - -/* ------------------------------ */ - .balign 64 -.L_OP_SGET_BOOLEAN_JUMBO: /* 0x117 */ -/* File: armv5te/OP_SGET_BOOLEAN_JUMBO.S */ -/* File: armv5te/OP_SGET_JUMBO.S */ - /* - * Jumbo 32-bit SGET handler. - * - * for: sget/jumbo, sget-object/jumbo, sget-boolean/jumbo, sget-byte/jumbo, - * sget-char/jumbo, sget-short/jumbo - */ - /* exop vBBBB, field@AAAAAAAA */ - ldr r2, [rSELF, #offThread_methodClassDex] @ r2<- DvmDex - FETCH(r0, 1) @ r0<- aaaa (lo) - FETCH(r1, 2) @ r1<- AAAA (hi) - ldr r10, [r2, #offDvmDex_pResFields] @ r10<- dvmDex->pResFields - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - ldr r0, [r10, r1, lsl #2] @ r0<- resolved StaticField ptr - cmp r0, #0 @ is resolved entry null? - beq .LOP_SGET_BOOLEAN_JUMBO_resolve @ yes, do resolve -.LOP_SGET_BOOLEAN_JUMBO_finish: @ field ptr in r0 - ldr r1, [r0, #offStaticField_value] @ r1<- field value - @ no-op @ acquiring load - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(4) @ advance rPC, load rINST - SET_VREG(r1, r2) @ fp[BBBB]<- r1 - GET_INST_OPCODE(ip) @ extract opcode from rINST - GOTO_OPCODE(ip) @ jump to next instruction - - -/* ------------------------------ */ - .balign 64 -.L_OP_SGET_BYTE_JUMBO: /* 0x118 */ -/* File: armv5te/OP_SGET_BYTE_JUMBO.S */ -/* File: armv5te/OP_SGET_JUMBO.S */ - /* - * Jumbo 32-bit SGET handler. - * - * for: sget/jumbo, sget-object/jumbo, sget-boolean/jumbo, sget-byte/jumbo, - * sget-char/jumbo, sget-short/jumbo - */ - /* exop vBBBB, field@AAAAAAAA */ - ldr r2, [rSELF, #offThread_methodClassDex] @ r2<- DvmDex - FETCH(r0, 1) @ r0<- aaaa (lo) - FETCH(r1, 2) @ r1<- AAAA (hi) - ldr r10, [r2, #offDvmDex_pResFields] @ r10<- dvmDex->pResFields - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - ldr r0, [r10, r1, lsl #2] @ r0<- resolved StaticField ptr - cmp r0, #0 @ is resolved entry null? - beq .LOP_SGET_BYTE_JUMBO_resolve @ yes, do resolve -.LOP_SGET_BYTE_JUMBO_finish: @ field ptr in r0 - ldr r1, [r0, #offStaticField_value] @ r1<- field value - @ no-op @ acquiring load - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(4) @ advance rPC, load rINST - SET_VREG(r1, r2) @ fp[BBBB]<- r1 - GET_INST_OPCODE(ip) @ extract opcode from rINST - GOTO_OPCODE(ip) @ jump to next instruction - - -/* ------------------------------ */ - .balign 64 -.L_OP_SGET_CHAR_JUMBO: /* 0x119 */ -/* File: armv5te/OP_SGET_CHAR_JUMBO.S */ -/* File: armv5te/OP_SGET_JUMBO.S */ - /* - * Jumbo 32-bit SGET handler. - * - * for: sget/jumbo, sget-object/jumbo, sget-boolean/jumbo, sget-byte/jumbo, - * sget-char/jumbo, sget-short/jumbo - */ - /* exop vBBBB, field@AAAAAAAA */ - ldr r2, [rSELF, #offThread_methodClassDex] @ r2<- DvmDex - FETCH(r0, 1) @ r0<- aaaa (lo) - FETCH(r1, 2) @ r1<- AAAA (hi) - ldr r10, [r2, #offDvmDex_pResFields] @ r10<- dvmDex->pResFields - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - ldr r0, [r10, r1, lsl #2] @ r0<- resolved StaticField ptr - cmp r0, #0 @ is resolved entry null? - beq .LOP_SGET_CHAR_JUMBO_resolve @ yes, do resolve -.LOP_SGET_CHAR_JUMBO_finish: @ field ptr in r0 - ldr r1, [r0, #offStaticField_value] @ r1<- field value - @ no-op @ acquiring load - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(4) @ advance rPC, load rINST - SET_VREG(r1, r2) @ fp[BBBB]<- r1 - GET_INST_OPCODE(ip) @ extract opcode from rINST - GOTO_OPCODE(ip) @ jump to next instruction - - -/* ------------------------------ */ - .balign 64 -.L_OP_SGET_SHORT_JUMBO: /* 0x11a */ -/* File: armv5te/OP_SGET_SHORT_JUMBO.S */ -/* File: armv5te/OP_SGET_JUMBO.S */ - /* - * Jumbo 32-bit SGET handler. - * - * for: sget/jumbo, sget-object/jumbo, sget-boolean/jumbo, sget-byte/jumbo, - * sget-char/jumbo, sget-short/jumbo - */ - /* exop vBBBB, field@AAAAAAAA */ - ldr r2, [rSELF, #offThread_methodClassDex] @ r2<- DvmDex - FETCH(r0, 1) @ r0<- aaaa (lo) - FETCH(r1, 2) @ r1<- AAAA (hi) - ldr r10, [r2, #offDvmDex_pResFields] @ r10<- dvmDex->pResFields - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - ldr r0, [r10, r1, lsl #2] @ r0<- resolved StaticField ptr - cmp r0, #0 @ is resolved entry null? - beq .LOP_SGET_SHORT_JUMBO_resolve @ yes, do resolve -.LOP_SGET_SHORT_JUMBO_finish: @ field ptr in r0 - ldr r1, [r0, #offStaticField_value] @ r1<- field value - @ no-op @ acquiring load - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(4) @ advance rPC, load rINST - SET_VREG(r1, r2) @ fp[BBBB]<- r1 - GET_INST_OPCODE(ip) @ extract opcode from rINST - GOTO_OPCODE(ip) @ jump to next instruction - - -/* ------------------------------ */ - .balign 64 -.L_OP_SPUT_JUMBO: /* 0x11b */ -/* File: armv5te/OP_SPUT_JUMBO.S */ - /* - * Jumbo 32-bit SPUT handler. - * - * for: sput/jumbo, sput-boolean/jumbo, sput-byte/jumbo, sput-char/jumbo, - * sput-short/jumbo - */ - /* exop vBBBB, field@AAAAAAAA */ - ldr r2, [rSELF, #offThread_methodClassDex] @ r2<- DvmDex - FETCH(r0, 1) @ r0<- aaaa (lo) - FETCH(r1, 2) @ r1<- AAAA (hi) - ldr r10, [r2, #offDvmDex_pResFields] @ r10<- dvmDex->pResFields - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - ldr r0, [r10, r1, lsl #2] @ r0<- resolved StaticField ptr - cmp r0, #0 @ is resolved entry null? - beq .LOP_SPUT_JUMBO_resolve @ yes, do resolve -.LOP_SPUT_JUMBO_finish: @ field ptr in r0 - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(4) @ advance rPC, load rINST - GET_VREG(r1, r2) @ r1<- fp[BBBB] - GET_INST_OPCODE(ip) @ extract opcode from rINST - @ no-op @ releasing store - str r1, [r0, #offStaticField_value] @ field<- vBBBB - @ no-op - GOTO_OPCODE(ip) @ jump to next instruction - -/* ------------------------------ */ - .balign 64 -.L_OP_SPUT_WIDE_JUMBO: /* 0x11c */ -/* File: armv5te/OP_SPUT_WIDE_JUMBO.S */ - /* - * Jumbo 64-bit SPUT handler. - */ - /* sput-wide/jumbo vBBBB, field@AAAAAAAA */ - ldr r0, [rSELF, #offThread_methodClassDex] @ r0<- DvmDex - FETCH(r1, 1) @ r1<- aaaa (lo) - FETCH(r2, 2) @ r2<- AAAA (hi) - ldr r10, [r0, #offDvmDex_pResFields] @ r10<- dvmDex->pResFields - orr r1, r1, r2, lsl #16 @ r1<- AAAAaaaa - FETCH(r9, 3) @ r9<- BBBB - ldr r2, [r10, r1, lsl #2] @ r2<- resolved StaticField ptr - add r9, rFP, r9, lsl #2 @ r9<- &fp[BBBB] - cmp r2, #0 @ is resolved entry null? - beq .LOP_SPUT_WIDE_JUMBO_resolve @ yes, do resolve -.LOP_SPUT_WIDE_JUMBO_finish: @ field ptr in r2, BBBB in r9 - FETCH_ADVANCE_INST(4) @ advance rPC, load rINST - ldmia r9, {r0-r1} @ r0/r1<- vBBBB/vBBBB+1 - GET_INST_OPCODE(r10) @ extract opcode from rINST - .if 0 - add r2, r2, #offStaticField_value @ r2<- pointer to data - bl dvmQuasiAtomicSwap64Sync @ stores r0/r1 into addr r2 - .else - strd r0, [r2, #offStaticField_value] @ field<- vBBBB/vBBBB+1 - .endif - GOTO_OPCODE(r10) @ jump to next instruction - -/* ------------------------------ */ - .balign 64 -.L_OP_SPUT_OBJECT_JUMBO: /* 0x11d */ -/* File: armv5te/OP_SPUT_OBJECT_JUMBO.S */ - /* - * Jumbo 32-bit SPUT handler for objects - */ - /* sput-object/jumbo vBBBB, field@AAAAAAAA */ - ldr r2, [rSELF, #offThread_methodClassDex] @ r2<- DvmDex - FETCH(r0, 1) @ r0<- aaaa (lo) - FETCH(r1, 2) @ r1<- AAAA (hi) - ldr r10, [r2, #offDvmDex_pResFields] @ r10<- dvmDex->pResFields - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - ldr r0, [r10, r1, lsl #2] @ r0<- resolved StaticField ptr - cmp r0, #0 @ is resolved entry null? - beq .LOP_SPUT_OBJECT_JUMBO_resolve @ yes, do resolve -.LOP_SPUT_OBJECT_JUMBO_finish: @ field ptr in r0 - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(4) @ advance rPC, load rINST - GET_VREG(r1, r2) @ r1<- fp[BBBB] - ldr r2, [rSELF, #offThread_cardTable] @ r2<- card table base - ldr r9, [r0, #offField_clazz] @ r9<- field->clazz - GET_INST_OPCODE(ip) @ extract opcode from rINST - @ no-op @ releasing store - b .LOP_SPUT_OBJECT_JUMBO_end - -/* ------------------------------ */ - .balign 64 -.L_OP_SPUT_BOOLEAN_JUMBO: /* 0x11e */ -/* File: armv5te/OP_SPUT_BOOLEAN_JUMBO.S */ -/* File: armv5te/OP_SPUT_JUMBO.S */ - /* - * Jumbo 32-bit SPUT handler. - * - * for: sput/jumbo, sput-boolean/jumbo, sput-byte/jumbo, sput-char/jumbo, - * sput-short/jumbo - */ - /* exop vBBBB, field@AAAAAAAA */ - ldr r2, [rSELF, #offThread_methodClassDex] @ r2<- DvmDex - FETCH(r0, 1) @ r0<- aaaa (lo) - FETCH(r1, 2) @ r1<- AAAA (hi) - ldr r10, [r2, #offDvmDex_pResFields] @ r10<- dvmDex->pResFields - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - ldr r0, [r10, r1, lsl #2] @ r0<- resolved StaticField ptr - cmp r0, #0 @ is resolved entry null? - beq .LOP_SPUT_BOOLEAN_JUMBO_resolve @ yes, do resolve -.LOP_SPUT_BOOLEAN_JUMBO_finish: @ field ptr in r0 - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(4) @ advance rPC, load rINST - GET_VREG(r1, r2) @ r1<- fp[BBBB] - GET_INST_OPCODE(ip) @ extract opcode from rINST - @ no-op @ releasing store - str r1, [r0, #offStaticField_value] @ field<- vBBBB - @ no-op - GOTO_OPCODE(ip) @ jump to next instruction - - -/* ------------------------------ */ - .balign 64 -.L_OP_SPUT_BYTE_JUMBO: /* 0x11f */ -/* File: armv5te/OP_SPUT_BYTE_JUMBO.S */ -/* File: armv5te/OP_SPUT_JUMBO.S */ - /* - * Jumbo 32-bit SPUT handler. - * - * for: sput/jumbo, sput-boolean/jumbo, sput-byte/jumbo, sput-char/jumbo, - * sput-short/jumbo - */ - /* exop vBBBB, field@AAAAAAAA */ - ldr r2, [rSELF, #offThread_methodClassDex] @ r2<- DvmDex - FETCH(r0, 1) @ r0<- aaaa (lo) - FETCH(r1, 2) @ r1<- AAAA (hi) - ldr r10, [r2, #offDvmDex_pResFields] @ r10<- dvmDex->pResFields - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - ldr r0, [r10, r1, lsl #2] @ r0<- resolved StaticField ptr - cmp r0, #0 @ is resolved entry null? - beq .LOP_SPUT_BYTE_JUMBO_resolve @ yes, do resolve -.LOP_SPUT_BYTE_JUMBO_finish: @ field ptr in r0 - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(4) @ advance rPC, load rINST - GET_VREG(r1, r2) @ r1<- fp[BBBB] - GET_INST_OPCODE(ip) @ extract opcode from rINST - @ no-op @ releasing store - str r1, [r0, #offStaticField_value] @ field<- vBBBB - @ no-op - GOTO_OPCODE(ip) @ jump to next instruction - - -/* ------------------------------ */ - .balign 64 -.L_OP_SPUT_CHAR_JUMBO: /* 0x120 */ -/* File: armv5te/OP_SPUT_CHAR_JUMBO.S */ -/* File: armv5te/OP_SPUT_JUMBO.S */ - /* - * Jumbo 32-bit SPUT handler. - * - * for: sput/jumbo, sput-boolean/jumbo, sput-byte/jumbo, sput-char/jumbo, - * sput-short/jumbo - */ - /* exop vBBBB, field@AAAAAAAA */ - ldr r2, [rSELF, #offThread_methodClassDex] @ r2<- DvmDex - FETCH(r0, 1) @ r0<- aaaa (lo) - FETCH(r1, 2) @ r1<- AAAA (hi) - ldr r10, [r2, #offDvmDex_pResFields] @ r10<- dvmDex->pResFields - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - ldr r0, [r10, r1, lsl #2] @ r0<- resolved StaticField ptr - cmp r0, #0 @ is resolved entry null? - beq .LOP_SPUT_CHAR_JUMBO_resolve @ yes, do resolve -.LOP_SPUT_CHAR_JUMBO_finish: @ field ptr in r0 - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(4) @ advance rPC, load rINST - GET_VREG(r1, r2) @ r1<- fp[BBBB] - GET_INST_OPCODE(ip) @ extract opcode from rINST - @ no-op @ releasing store - str r1, [r0, #offStaticField_value] @ field<- vBBBB - @ no-op - GOTO_OPCODE(ip) @ jump to next instruction - - -/* ------------------------------ */ - .balign 64 -.L_OP_SPUT_SHORT_JUMBO: /* 0x121 */ -/* File: armv5te/OP_SPUT_SHORT_JUMBO.S */ -/* File: armv5te/OP_SPUT_JUMBO.S */ - /* - * Jumbo 32-bit SPUT handler. - * - * for: sput/jumbo, sput-boolean/jumbo, sput-byte/jumbo, sput-char/jumbo, - * sput-short/jumbo - */ - /* exop vBBBB, field@AAAAAAAA */ - ldr r2, [rSELF, #offThread_methodClassDex] @ r2<- DvmDex - FETCH(r0, 1) @ r0<- aaaa (lo) - FETCH(r1, 2) @ r1<- AAAA (hi) - ldr r10, [r2, #offDvmDex_pResFields] @ r10<- dvmDex->pResFields - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - ldr r0, [r10, r1, lsl #2] @ r0<- resolved StaticField ptr - cmp r0, #0 @ is resolved entry null? - beq .LOP_SPUT_SHORT_JUMBO_resolve @ yes, do resolve -.LOP_SPUT_SHORT_JUMBO_finish: @ field ptr in r0 - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(4) @ advance rPC, load rINST - GET_VREG(r1, r2) @ r1<- fp[BBBB] - GET_INST_OPCODE(ip) @ extract opcode from rINST - @ no-op @ releasing store - str r1, [r0, #offStaticField_value] @ field<- vBBBB - @ no-op - GOTO_OPCODE(ip) @ jump to next instruction - - -/* ------------------------------ */ - .balign 64 -.L_OP_INVOKE_VIRTUAL_JUMBO: /* 0x122 */ -/* File: armv5te/OP_INVOKE_VIRTUAL_JUMBO.S */ - /* - * Handle a virtual method call. - */ - /* invoke-virtual/jumbo {vCCCC..v(CCCC+BBBB-1)}, meth@AAAAAAAA */ - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- pDvmDex - FETCH(r0, 1) @ r1<- aaaa (lo) - FETCH(r1, 2) @ r1<- AAAA (hi) - ldr r3, [r3, #offDvmDex_pResMethods] @ r3<- pDvmDex->pResMethods - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - ldr r0, [r3, r1, lsl #2] @ r0<- resolved baseMethod - cmp r0, #0 @ already resolved? - EXPORT_PC() @ must export for invoke - bne .LOP_INVOKE_VIRTUAL_JUMBO_continue @ yes, continue on - ldr r3, [rSELF, #offThread_method] @ r3<- self->method - ldr r0, [r3, #offMethod_clazz] @ r0<- method->clazz - mov r2, #METHOD_VIRTUAL @ resolver method type - bl dvmResolveMethod @ r0<- call(clazz, ref, flags) - cmp r0, #0 @ got null? - bne .LOP_INVOKE_VIRTUAL_JUMBO_continue @ no, continue - b common_exceptionThrown @ yes, handle exception - -/* ------------------------------ */ - .balign 64 -.L_OP_INVOKE_SUPER_JUMBO: /* 0x123 */ -/* File: armv5te/OP_INVOKE_SUPER_JUMBO.S */ - /* - * Handle a "super" method call. - */ - /* invoke-super/jumbo {vCCCC..v(CCCC+BBBB-1)}, meth@AAAAAAAA */ - FETCH(r10, 4) @ r10<- CCCC - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- pDvmDex - FETCH(r0, 1) @ r1<- aaaa (lo) - FETCH(r1, 2) @ r1<- AAAA (hi) - ldr r3, [r3, #offDvmDex_pResMethods] @ r3<- pDvmDex->pResMethods - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - GET_VREG(r9, r10) @ r9<- "this" ptr - ldr r0, [r3, r1, lsl #2] @ r0<- resolved baseMethod - cmp r9, #0 @ null "this"? - ldr r10, [rSELF, #offThread_method] @ r10<- current method - beq common_errNullObject @ null "this", throw exception - cmp r0, #0 @ already resolved? - ldr r10, [r10, #offMethod_clazz] @ r10<- method->clazz - EXPORT_PC() @ must export for invoke - bne .LOP_INVOKE_SUPER_JUMBO_continue @ resolved, continue on - b .LOP_INVOKE_SUPER_JUMBO_resolve @ do resolve now - -/* ------------------------------ */ - .balign 64 -.L_OP_INVOKE_DIRECT_JUMBO: /* 0x124 */ -/* File: armv5te/OP_INVOKE_DIRECT_JUMBO.S */ - /* - * Handle a direct method call. - * - * (We could defer the "is 'this' pointer null" test to the common - * method invocation code, and use a flag to indicate that static - * calls don't count. If we do this as part of copying the arguments - * out we could avoiding loading the first arg twice.) - * - */ - /* invoke-direct/jumbo {vCCCC..v(CCCC+BBBB-1)}, meth@AAAAAAAA */ - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- pDvmDex - FETCH(r0, 1) @ r1<- aaaa (lo) - FETCH(r1, 2) @ r1<- AAAA (hi) - ldr r3, [r3, #offDvmDex_pResMethods] @ r3<- pDvmDex->pResMethods - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - FETCH(r10, 4) @ r10<- CCCC - ldr r0, [r3, r1, lsl #2] @ r0<- resolved methodToCall - cmp r0, #0 @ already resolved? - EXPORT_PC() @ must export for invoke - GET_VREG(r9, r10) @ r9<- "this" ptr - beq .LOP_INVOKE_DIRECT_JUMBO_resolve @ not resolved, do it now -.LOP_INVOKE_DIRECT_JUMBO_finish: - cmp r9, #0 @ null "this" ref? - bne common_invokeMethodJumbo @ (r0=method, r9="this") - b common_errNullObject @ yes, throw exception - -/* ------------------------------ */ - .balign 64 -.L_OP_INVOKE_STATIC_JUMBO: /* 0x125 */ -/* File: armv5te/OP_INVOKE_STATIC_JUMBO.S */ - /* - * Handle a static method call. - */ - /* invoke-static/jumbo {vCCCC..v(CCCC+BBBB-1)}, meth@AAAAAAAA */ - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- pDvmDex - FETCH(r0, 1) @ r1<- aaaa (lo) - FETCH(r1, 2) @ r1<- AAAA (hi) - ldr r3, [r3, #offDvmDex_pResMethods] @ r3<- pDvmDex->pResMethods - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - ldr r0, [r3, r1, lsl #2] @ r0<- resolved methodToCall -#if defined(WITH_JIT) - add r10, r3, r1, lsl #2 @ r10<- &resolved_methodToCall -#endif - cmp r0, #0 @ already resolved? - EXPORT_PC() @ must export for invoke - bne common_invokeMethodJumboNoThis @ (r0=method) - b .LOP_INVOKE_STATIC_JUMBO_resolve - -/* ------------------------------ */ - .balign 64 -.L_OP_INVOKE_INTERFACE_JUMBO: /* 0x126 */ -/* File: armv5te/OP_INVOKE_INTERFACE_JUMBO.S */ - /* - * Handle an interface method call. - */ - /* invoke-interface/jumbo {vCCCC..v(CCCC+BBBB-1)}, meth@AAAAAAAA */ - FETCH(r2, 4) @ r2<- CCCC - FETCH(r0, 1) @ r0<- aaaa (lo) - FETCH(r1, 2) @ r1<- AAAA (hi) - EXPORT_PC() @ must export for invoke - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - GET_VREG(r9, r2) @ r9<- first arg ("this") - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- methodClassDex - cmp r9, #0 @ null obj? - ldr r2, [rSELF, #offThread_method] @ r2<- method - beq common_errNullObject @ yes, fail - ldr r0, [r9, #offObject_clazz] @ r0<- thisPtr->clazz - bl dvmFindInterfaceMethodInCache @ r0<- call(class, ref, method, dex) - cmp r0, #0 @ failed? - beq common_exceptionThrown @ yes, handle exception - b common_invokeMethodJumbo @ (r0=method, r9="this") - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_27FF: /* 0x127 */ -/* File: armv5te/OP_UNUSED_27FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_28FF: /* 0x128 */ -/* File: armv5te/OP_UNUSED_28FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_29FF: /* 0x129 */ -/* File: armv5te/OP_UNUSED_29FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_2AFF: /* 0x12a */ -/* File: armv5te/OP_UNUSED_2AFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_2BFF: /* 0x12b */ -/* File: armv5te/OP_UNUSED_2BFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_2CFF: /* 0x12c */ -/* File: armv5te/OP_UNUSED_2CFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_2DFF: /* 0x12d */ -/* File: armv5te/OP_UNUSED_2DFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_2EFF: /* 0x12e */ -/* File: armv5te/OP_UNUSED_2EFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_2FFF: /* 0x12f */ -/* File: armv5te/OP_UNUSED_2FFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_30FF: /* 0x130 */ -/* File: armv5te/OP_UNUSED_30FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_31FF: /* 0x131 */ -/* File: armv5te/OP_UNUSED_31FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_32FF: /* 0x132 */ -/* File: armv5te/OP_UNUSED_32FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_33FF: /* 0x133 */ -/* File: armv5te/OP_UNUSED_33FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_34FF: /* 0x134 */ -/* File: armv5te/OP_UNUSED_34FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_35FF: /* 0x135 */ -/* File: armv5te/OP_UNUSED_35FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_36FF: /* 0x136 */ -/* File: armv5te/OP_UNUSED_36FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_37FF: /* 0x137 */ -/* File: armv5te/OP_UNUSED_37FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_38FF: /* 0x138 */ -/* File: armv5te/OP_UNUSED_38FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_39FF: /* 0x139 */ -/* File: armv5te/OP_UNUSED_39FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_3AFF: /* 0x13a */ -/* File: armv5te/OP_UNUSED_3AFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_3BFF: /* 0x13b */ -/* File: armv5te/OP_UNUSED_3BFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_3CFF: /* 0x13c */ -/* File: armv5te/OP_UNUSED_3CFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_3DFF: /* 0x13d */ -/* File: armv5te/OP_UNUSED_3DFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_3EFF: /* 0x13e */ -/* File: armv5te/OP_UNUSED_3EFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_3FFF: /* 0x13f */ -/* File: armv5te/OP_UNUSED_3FFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_40FF: /* 0x140 */ -/* File: armv5te/OP_UNUSED_40FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_41FF: /* 0x141 */ -/* File: armv5te/OP_UNUSED_41FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_42FF: /* 0x142 */ -/* File: armv5te/OP_UNUSED_42FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_43FF: /* 0x143 */ -/* File: armv5te/OP_UNUSED_43FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_44FF: /* 0x144 */ -/* File: armv5te/OP_UNUSED_44FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_45FF: /* 0x145 */ -/* File: armv5te/OP_UNUSED_45FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_46FF: /* 0x146 */ -/* File: armv5te/OP_UNUSED_46FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_47FF: /* 0x147 */ -/* File: armv5te/OP_UNUSED_47FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_48FF: /* 0x148 */ -/* File: armv5te/OP_UNUSED_48FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_49FF: /* 0x149 */ -/* File: armv5te/OP_UNUSED_49FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_4AFF: /* 0x14a */ -/* File: armv5te/OP_UNUSED_4AFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_4BFF: /* 0x14b */ -/* File: armv5te/OP_UNUSED_4BFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_4CFF: /* 0x14c */ -/* File: armv5te/OP_UNUSED_4CFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_4DFF: /* 0x14d */ -/* File: armv5te/OP_UNUSED_4DFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_4EFF: /* 0x14e */ -/* File: armv5te/OP_UNUSED_4EFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_4FFF: /* 0x14f */ -/* File: armv5te/OP_UNUSED_4FFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_50FF: /* 0x150 */ -/* File: armv5te/OP_UNUSED_50FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_51FF: /* 0x151 */ -/* File: armv5te/OP_UNUSED_51FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_52FF: /* 0x152 */ -/* File: armv5te/OP_UNUSED_52FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_53FF: /* 0x153 */ -/* File: armv5te/OP_UNUSED_53FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_54FF: /* 0x154 */ -/* File: armv5te/OP_UNUSED_54FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_55FF: /* 0x155 */ -/* File: armv5te/OP_UNUSED_55FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_56FF: /* 0x156 */ -/* File: armv5te/OP_UNUSED_56FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_57FF: /* 0x157 */ -/* File: armv5te/OP_UNUSED_57FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_58FF: /* 0x158 */ -/* File: armv5te/OP_UNUSED_58FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_59FF: /* 0x159 */ -/* File: armv5te/OP_UNUSED_59FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_5AFF: /* 0x15a */ -/* File: armv5te/OP_UNUSED_5AFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_5BFF: /* 0x15b */ -/* File: armv5te/OP_UNUSED_5BFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_5CFF: /* 0x15c */ -/* File: armv5te/OP_UNUSED_5CFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_5DFF: /* 0x15d */ -/* File: armv5te/OP_UNUSED_5DFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_5EFF: /* 0x15e */ -/* File: armv5te/OP_UNUSED_5EFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_5FFF: /* 0x15f */ -/* File: armv5te/OP_UNUSED_5FFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_60FF: /* 0x160 */ -/* File: armv5te/OP_UNUSED_60FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_61FF: /* 0x161 */ -/* File: armv5te/OP_UNUSED_61FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_62FF: /* 0x162 */ -/* File: armv5te/OP_UNUSED_62FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_63FF: /* 0x163 */ -/* File: armv5te/OP_UNUSED_63FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_64FF: /* 0x164 */ -/* File: armv5te/OP_UNUSED_64FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_65FF: /* 0x165 */ -/* File: armv5te/OP_UNUSED_65FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_66FF: /* 0x166 */ -/* File: armv5te/OP_UNUSED_66FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_67FF: /* 0x167 */ -/* File: armv5te/OP_UNUSED_67FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_68FF: /* 0x168 */ -/* File: armv5te/OP_UNUSED_68FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_69FF: /* 0x169 */ -/* File: armv5te/OP_UNUSED_69FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_6AFF: /* 0x16a */ -/* File: armv5te/OP_UNUSED_6AFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_6BFF: /* 0x16b */ -/* File: armv5te/OP_UNUSED_6BFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_6CFF: /* 0x16c */ -/* File: armv5te/OP_UNUSED_6CFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_6DFF: /* 0x16d */ -/* File: armv5te/OP_UNUSED_6DFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_6EFF: /* 0x16e */ -/* File: armv5te/OP_UNUSED_6EFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_6FFF: /* 0x16f */ -/* File: armv5te/OP_UNUSED_6FFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_70FF: /* 0x170 */ -/* File: armv5te/OP_UNUSED_70FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_71FF: /* 0x171 */ -/* File: armv5te/OP_UNUSED_71FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_72FF: /* 0x172 */ -/* File: armv5te/OP_UNUSED_72FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_73FF: /* 0x173 */ -/* File: armv5te/OP_UNUSED_73FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_74FF: /* 0x174 */ -/* File: armv5te/OP_UNUSED_74FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_75FF: /* 0x175 */ -/* File: armv5te/OP_UNUSED_75FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_76FF: /* 0x176 */ -/* File: armv5te/OP_UNUSED_76FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_77FF: /* 0x177 */ -/* File: armv5te/OP_UNUSED_77FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_78FF: /* 0x178 */ -/* File: armv5te/OP_UNUSED_78FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_79FF: /* 0x179 */ -/* File: armv5te/OP_UNUSED_79FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_7AFF: /* 0x17a */ -/* File: armv5te/OP_UNUSED_7AFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_7BFF: /* 0x17b */ -/* File: armv5te/OP_UNUSED_7BFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_7CFF: /* 0x17c */ -/* File: armv5te/OP_UNUSED_7CFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_7DFF: /* 0x17d */ -/* File: armv5te/OP_UNUSED_7DFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_7EFF: /* 0x17e */ -/* File: armv5te/OP_UNUSED_7EFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_7FFF: /* 0x17f */ -/* File: armv5te/OP_UNUSED_7FFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_80FF: /* 0x180 */ -/* File: armv5te/OP_UNUSED_80FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_81FF: /* 0x181 */ -/* File: armv5te/OP_UNUSED_81FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_82FF: /* 0x182 */ -/* File: armv5te/OP_UNUSED_82FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_83FF: /* 0x183 */ -/* File: armv5te/OP_UNUSED_83FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_84FF: /* 0x184 */ -/* File: armv5te/OP_UNUSED_84FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_85FF: /* 0x185 */ -/* File: armv5te/OP_UNUSED_85FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_86FF: /* 0x186 */ -/* File: armv5te/OP_UNUSED_86FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_87FF: /* 0x187 */ -/* File: armv5te/OP_UNUSED_87FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_88FF: /* 0x188 */ -/* File: armv5te/OP_UNUSED_88FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_89FF: /* 0x189 */ -/* File: armv5te/OP_UNUSED_89FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_8AFF: /* 0x18a */ -/* File: armv5te/OP_UNUSED_8AFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_8BFF: /* 0x18b */ -/* File: armv5te/OP_UNUSED_8BFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_8CFF: /* 0x18c */ -/* File: armv5te/OP_UNUSED_8CFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_8DFF: /* 0x18d */ -/* File: armv5te/OP_UNUSED_8DFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_8EFF: /* 0x18e */ -/* File: armv5te/OP_UNUSED_8EFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_8FFF: /* 0x18f */ -/* File: armv5te/OP_UNUSED_8FFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_90FF: /* 0x190 */ -/* File: armv5te/OP_UNUSED_90FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_91FF: /* 0x191 */ -/* File: armv5te/OP_UNUSED_91FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_92FF: /* 0x192 */ -/* File: armv5te/OP_UNUSED_92FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_93FF: /* 0x193 */ -/* File: armv5te/OP_UNUSED_93FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_94FF: /* 0x194 */ -/* File: armv5te/OP_UNUSED_94FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_95FF: /* 0x195 */ -/* File: armv5te/OP_UNUSED_95FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_96FF: /* 0x196 */ -/* File: armv5te/OP_UNUSED_96FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_97FF: /* 0x197 */ -/* File: armv5te/OP_UNUSED_97FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_98FF: /* 0x198 */ -/* File: armv5te/OP_UNUSED_98FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_99FF: /* 0x199 */ -/* File: armv5te/OP_UNUSED_99FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_9AFF: /* 0x19a */ -/* File: armv5te/OP_UNUSED_9AFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_9BFF: /* 0x19b */ -/* File: armv5te/OP_UNUSED_9BFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_9CFF: /* 0x19c */ -/* File: armv5te/OP_UNUSED_9CFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_9DFF: /* 0x19d */ -/* File: armv5te/OP_UNUSED_9DFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_9EFF: /* 0x19e */ -/* File: armv5te/OP_UNUSED_9EFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_9FFF: /* 0x19f */ -/* File: armv5te/OP_UNUSED_9FFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_A0FF: /* 0x1a0 */ -/* File: armv5te/OP_UNUSED_A0FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_A1FF: /* 0x1a1 */ -/* File: armv5te/OP_UNUSED_A1FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_A2FF: /* 0x1a2 */ -/* File: armv5te/OP_UNUSED_A2FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_A3FF: /* 0x1a3 */ -/* File: armv5te/OP_UNUSED_A3FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_A4FF: /* 0x1a4 */ -/* File: armv5te/OP_UNUSED_A4FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_A5FF: /* 0x1a5 */ -/* File: armv5te/OP_UNUSED_A5FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_A6FF: /* 0x1a6 */ -/* File: armv5te/OP_UNUSED_A6FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_A7FF: /* 0x1a7 */ -/* File: armv5te/OP_UNUSED_A7FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_A8FF: /* 0x1a8 */ -/* File: armv5te/OP_UNUSED_A8FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_A9FF: /* 0x1a9 */ -/* File: armv5te/OP_UNUSED_A9FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_AAFF: /* 0x1aa */ -/* File: armv5te/OP_UNUSED_AAFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_ABFF: /* 0x1ab */ -/* File: armv5te/OP_UNUSED_ABFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_ACFF: /* 0x1ac */ -/* File: armv5te/OP_UNUSED_ACFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_ADFF: /* 0x1ad */ -/* File: armv5te/OP_UNUSED_ADFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_AEFF: /* 0x1ae */ -/* File: armv5te/OP_UNUSED_AEFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_AFFF: /* 0x1af */ -/* File: armv5te/OP_UNUSED_AFFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_B0FF: /* 0x1b0 */ -/* File: armv5te/OP_UNUSED_B0FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_B1FF: /* 0x1b1 */ -/* File: armv5te/OP_UNUSED_B1FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_B2FF: /* 0x1b2 */ -/* File: armv5te/OP_UNUSED_B2FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_B3FF: /* 0x1b3 */ -/* File: armv5te/OP_UNUSED_B3FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_B4FF: /* 0x1b4 */ -/* File: armv5te/OP_UNUSED_B4FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_B5FF: /* 0x1b5 */ -/* File: armv5te/OP_UNUSED_B5FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_B6FF: /* 0x1b6 */ -/* File: armv5te/OP_UNUSED_B6FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_B7FF: /* 0x1b7 */ -/* File: armv5te/OP_UNUSED_B7FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_B8FF: /* 0x1b8 */ -/* File: armv5te/OP_UNUSED_B8FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_B9FF: /* 0x1b9 */ -/* File: armv5te/OP_UNUSED_B9FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_BAFF: /* 0x1ba */ -/* File: armv5te/OP_UNUSED_BAFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_BBFF: /* 0x1bb */ -/* File: armv5te/OP_UNUSED_BBFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_BCFF: /* 0x1bc */ -/* File: armv5te/OP_UNUSED_BCFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_BDFF: /* 0x1bd */ -/* File: armv5te/OP_UNUSED_BDFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_BEFF: /* 0x1be */ -/* File: armv5te/OP_UNUSED_BEFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_BFFF: /* 0x1bf */ -/* File: armv5te/OP_UNUSED_BFFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_C0FF: /* 0x1c0 */ -/* File: armv5te/OP_UNUSED_C0FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_C1FF: /* 0x1c1 */ -/* File: armv5te/OP_UNUSED_C1FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_C2FF: /* 0x1c2 */ -/* File: armv5te/OP_UNUSED_C2FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_C3FF: /* 0x1c3 */ -/* File: armv5te/OP_UNUSED_C3FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_C4FF: /* 0x1c4 */ -/* File: armv5te/OP_UNUSED_C4FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_C5FF: /* 0x1c5 */ -/* File: armv5te/OP_UNUSED_C5FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_C6FF: /* 0x1c6 */ -/* File: armv5te/OP_UNUSED_C6FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_C7FF: /* 0x1c7 */ -/* File: armv5te/OP_UNUSED_C7FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_C8FF: /* 0x1c8 */ -/* File: armv5te/OP_UNUSED_C8FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_C9FF: /* 0x1c9 */ -/* File: armv5te/OP_UNUSED_C9FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_CAFF: /* 0x1ca */ -/* File: armv5te/OP_UNUSED_CAFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_CBFF: /* 0x1cb */ -/* File: armv5te/OP_UNUSED_CBFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_CCFF: /* 0x1cc */ -/* File: armv5te/OP_UNUSED_CCFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_CDFF: /* 0x1cd */ -/* File: armv5te/OP_UNUSED_CDFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_CEFF: /* 0x1ce */ -/* File: armv5te/OP_UNUSED_CEFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_CFFF: /* 0x1cf */ -/* File: armv5te/OP_UNUSED_CFFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_D0FF: /* 0x1d0 */ -/* File: armv5te/OP_UNUSED_D0FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_D1FF: /* 0x1d1 */ -/* File: armv5te/OP_UNUSED_D1FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_D2FF: /* 0x1d2 */ -/* File: armv5te/OP_UNUSED_D2FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_D3FF: /* 0x1d3 */ -/* File: armv5te/OP_UNUSED_D3FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_D4FF: /* 0x1d4 */ -/* File: armv5te/OP_UNUSED_D4FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_D5FF: /* 0x1d5 */ -/* File: armv5te/OP_UNUSED_D5FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_D6FF: /* 0x1d6 */ -/* File: armv5te/OP_UNUSED_D6FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_D7FF: /* 0x1d7 */ -/* File: armv5te/OP_UNUSED_D7FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_D8FF: /* 0x1d8 */ -/* File: armv5te/OP_UNUSED_D8FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_D9FF: /* 0x1d9 */ -/* File: armv5te/OP_UNUSED_D9FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_DAFF: /* 0x1da */ -/* File: armv5te/OP_UNUSED_DAFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_DBFF: /* 0x1db */ -/* File: armv5te/OP_UNUSED_DBFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_DCFF: /* 0x1dc */ -/* File: armv5te/OP_UNUSED_DCFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_DDFF: /* 0x1dd */ -/* File: armv5te/OP_UNUSED_DDFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_DEFF: /* 0x1de */ -/* File: armv5te/OP_UNUSED_DEFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_DFFF: /* 0x1df */ -/* File: armv5te/OP_UNUSED_DFFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_E0FF: /* 0x1e0 */ -/* File: armv5te/OP_UNUSED_E0FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_E1FF: /* 0x1e1 */ -/* File: armv5te/OP_UNUSED_E1FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_E2FF: /* 0x1e2 */ -/* File: armv5te/OP_UNUSED_E2FF.S */ +.L_OP_UNUSED_FF: /* 0xff */ +/* File: armv5te/OP_UNUSED_FF.S */ /* File: armv5te/unused.S */ bl common_abort -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_E3FF: /* 0x1e3 */ -/* File: armv5te/OP_UNUSED_E3FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_E4FF: /* 0x1e4 */ -/* File: armv5te/OP_UNUSED_E4FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_E5FF: /* 0x1e5 */ -/* File: armv5te/OP_UNUSED_E5FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_E6FF: /* 0x1e6 */ -/* File: armv5te/OP_UNUSED_E6FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_E7FF: /* 0x1e7 */ -/* File: armv5te/OP_UNUSED_E7FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_E8FF: /* 0x1e8 */ -/* File: armv5te/OP_UNUSED_E8FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_E9FF: /* 0x1e9 */ -/* File: armv5te/OP_UNUSED_E9FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_EAFF: /* 0x1ea */ -/* File: armv5te/OP_UNUSED_EAFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_EBFF: /* 0x1eb */ -/* File: armv5te/OP_UNUSED_EBFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_ECFF: /* 0x1ec */ -/* File: armv5te/OP_UNUSED_ECFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_EDFF: /* 0x1ed */ -/* File: armv5te/OP_UNUSED_EDFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_EEFF: /* 0x1ee */ -/* File: armv5te/OP_UNUSED_EEFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_EFFF: /* 0x1ef */ -/* File: armv5te/OP_UNUSED_EFFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_F0FF: /* 0x1f0 */ -/* File: armv5te/OP_UNUSED_F0FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_F1FF: /* 0x1f1 */ -/* File: armv5te/OP_UNUSED_F1FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_INVOKE_OBJECT_INIT_JUMBO: /* 0x1f2 */ -/* File: armv5te/OP_INVOKE_OBJECT_INIT_JUMBO.S */ -/* File: armv5te/OP_INVOKE_OBJECT_INIT_RANGE.S */ - /* - * Invoke Object.<init> on an object. In practice we know that - * Object's nullary constructor doesn't do anything, so we just - * skip it unless a debugger is active. - */ - FETCH(r1, 4) @ r1<- CCCC - GET_VREG(r0, r1) @ r0<- "this" ptr - cmp r0, #0 @ check for NULL - beq common_errNullObject @ export PC and throw NPE - ldr r1, [r0, #offObject_clazz] @ r1<- obj->clazz - ldr r2, [r1, #offClassObject_accessFlags] @ r2<- clazz->accessFlags - tst r2, #CLASS_ISFINALIZABLE @ is this class finalizable? - bne .LOP_INVOKE_OBJECT_INIT_JUMBO_setFinal @ yes, go -.LOP_INVOKE_OBJECT_INIT_JUMBO_finish: - ldrh r1, [rSELF, #offThread_subMode] - ands r1, #kSubModeDebuggerActive @ debugger active? - bne .LOP_INVOKE_OBJECT_INIT_JUMBO_debugger @ Yes - skip optimization - FETCH_ADVANCE_INST(4+1) @ advance to next instr, load rINST - GET_INST_OPCODE(ip) @ ip<- opcode from rINST - GOTO_OPCODE(ip) @ execute it - - -/* ------------------------------ */ - .balign 64 -.L_OP_IGET_VOLATILE_JUMBO: /* 0x1f3 */ -/* File: armv5te/OP_IGET_VOLATILE_JUMBO.S */ -/* File: armv5te/OP_IGET_JUMBO.S */ - /* - * Jumbo 32-bit instance field get. - * - * for: iget/jumbo, iget-object/jumbo, iget-boolean/jumbo, iget-byte/jumbo, - * iget-char/jumbo, iget-short/jumbo - */ - /* exop vBBBB, vCCCC, field@AAAAAAAA */ - FETCH(r1, 1) @ r1<- aaaa (lo) - FETCH(r2, 2) @ r2<- AAAA (hi) - FETCH(r0, 4) @ r0<- CCCC - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- DvmDex - orr r1, r1, r2, lsl #16 @ r1<- AAAAaaaa - ldr r2, [r3, #offDvmDex_pResFields] @ r2<- pDvmDex->pResFields - GET_VREG(r9, r0) @ r9<- fp[CCCC], the object pointer - ldr r0, [r2, r1, lsl #2] @ r0<- resolved InstField ptr - cmp r0, #0 @ is resolved entry null? - bne .LOP_IGET_VOLATILE_JUMBO_finish @ no, already resolved -8: ldr r2, [rSELF, #offThread_method] @ r2<- current method - EXPORT_PC() @ resolve() could throw - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveInstField @ r0<- resolved InstField ptr - b .LOP_IGET_VOLATILE_JUMBO_resolved @ resolved, continue - - -/* ------------------------------ */ - .balign 64 -.L_OP_IGET_WIDE_VOLATILE_JUMBO: /* 0x1f4 */ -/* File: armv5te/OP_IGET_WIDE_VOLATILE_JUMBO.S */ -/* File: armv5te/OP_IGET_WIDE_JUMBO.S */ - /* - * Jumbo 64-bit instance field get. - */ - /* iget-wide/jumbo vBBBB, vCCCC, field@AAAAAAAA */ - FETCH(r1, 1) @ r1<- aaaa (lo) - FETCH(r2, 2) @ r2<- AAAA (hi) - FETCH(r0, 4) @ r0<- CCCC - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- DvmDex - orr r1, r1, r2, lsl #16 @ r1<- AAAAaaaa - ldr r2, [r3, #offDvmDex_pResFields] @ r2<- pResFields - GET_VREG(r9, r0) @ r9<- fp[CCCC], the object pointer - ldr r0, [r2, r1, lsl #2] @ r0<- resolved InstField ptr - cmp r0, #0 @ is resolved entry null? - bne .LOP_IGET_WIDE_VOLATILE_JUMBO_finish @ no, already resolved - ldr r2, [rSELF, #offThread_method] @ r2<- current method - EXPORT_PC() @ resolve() could throw - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveInstField @ r0<- resolved InstField ptr - b .LOP_IGET_WIDE_VOLATILE_JUMBO_resolved @ resolved, continue - - -/* ------------------------------ */ - .balign 64 -.L_OP_IGET_OBJECT_VOLATILE_JUMBO: /* 0x1f5 */ -/* File: armv5te/OP_IGET_OBJECT_VOLATILE_JUMBO.S */ -/* File: armv5te/OP_IGET_OBJECT_JUMBO.S */ -/* File: armv5te/OP_IGET_JUMBO.S */ - /* - * Jumbo 32-bit instance field get. - * - * for: iget/jumbo, iget-object/jumbo, iget-boolean/jumbo, iget-byte/jumbo, - * iget-char/jumbo, iget-short/jumbo - */ - /* exop vBBBB, vCCCC, field@AAAAAAAA */ - FETCH(r1, 1) @ r1<- aaaa (lo) - FETCH(r2, 2) @ r2<- AAAA (hi) - FETCH(r0, 4) @ r0<- CCCC - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- DvmDex - orr r1, r1, r2, lsl #16 @ r1<- AAAAaaaa - ldr r2, [r3, #offDvmDex_pResFields] @ r2<- pDvmDex->pResFields - GET_VREG(r9, r0) @ r9<- fp[CCCC], the object pointer - ldr r0, [r2, r1, lsl #2] @ r0<- resolved InstField ptr - cmp r0, #0 @ is resolved entry null? - bne .LOP_IGET_OBJECT_VOLATILE_JUMBO_finish @ no, already resolved -8: ldr r2, [rSELF, #offThread_method] @ r2<- current method - EXPORT_PC() @ resolve() could throw - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveInstField @ r0<- resolved InstField ptr - b .LOP_IGET_OBJECT_VOLATILE_JUMBO_resolved @ resolved, continue - - - -/* ------------------------------ */ - .balign 64 -.L_OP_IPUT_VOLATILE_JUMBO: /* 0x1f6 */ -/* File: armv5te/OP_IPUT_VOLATILE_JUMBO.S */ -/* File: armv5te/OP_IPUT_JUMBO.S */ - /* - * Jumbo 32-bit instance field put. - * - * for: iput/jumbo, iput-boolean/jumbo, iput-byte/jumbo, iput-char/jumbo, - * iput-short/jumbo - */ - /* exop vBBBB, vCCCC, field@AAAAAAAA */ - FETCH(r1, 1) @ r1<- aaaa (lo) - FETCH(r2, 2) @ r2<- AAAA (hi) - FETCH(r0, 4) @ r0<- CCCC - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- DvmDex - orr r1, r1, r2, lsl #16 @ r1<- AAAAaaaa - ldr r2, [r3, #offDvmDex_pResFields] @ r2<- pDvmDex->pResFields - GET_VREG(r9, r0) @ r9<- fp[CCCC], the object pointer - ldr r0, [r2, r1, lsl #2] @ r0<- resolved InstField ptr - cmp r0, #0 @ is resolved entry null? - bne .LOP_IPUT_VOLATILE_JUMBO_finish @ no, already resolved -8: ldr r2, [rSELF, #offThread_method] @ r2<- current method - EXPORT_PC() @ resolve() could throw - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveInstField @ r0<- resolved InstField ptr - b .LOP_IPUT_VOLATILE_JUMBO_resolved @ resolved, continue - - -/* ------------------------------ */ - .balign 64 -.L_OP_IPUT_WIDE_VOLATILE_JUMBO: /* 0x1f7 */ -/* File: armv5te/OP_IPUT_WIDE_VOLATILE_JUMBO.S */ -/* File: armv5te/OP_IPUT_WIDE_JUMBO.S */ - /* iput-wide/jumbo vBBBB, vCCCC, field@AAAAAAAA */ - FETCH(r1, 1) @ r1<- aaaa (lo) - FETCH(r2, 2) @ r2<- AAAA (hi) - FETCH(r0, 4) @ r0<- CCCC - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- DvmDex - orr r1, r1, r2, lsl #16 @ r1<- AAAAaaaa - ldr r2, [r3, #offDvmDex_pResFields] @ r2<- pResFields - GET_VREG(r9, r0) @ r9<- fp[B], the object pointer - ldr r0, [r2, r1, lsl #2] @ r0<- resolved InstField ptr - cmp r0, #0 @ is resolved entry null? - bne .LOP_IPUT_WIDE_VOLATILE_JUMBO_finish @ no, already resolved -8: ldr r2, [rSELF, #offThread_method] @ r2<- current method - EXPORT_PC() @ resolve() could throw - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveInstField @ r0<- resolved InstField ptr - b .LOP_IPUT_WIDE_VOLATILE_JUMBO_resolved @ resolved, continue - - -/* ------------------------------ */ - .balign 64 -.L_OP_IPUT_OBJECT_VOLATILE_JUMBO: /* 0x1f8 */ -/* File: armv5te/OP_IPUT_OBJECT_VOLATILE_JUMBO.S */ -/* File: armv5te/OP_IPUT_OBJECT_JUMBO.S */ - /* - * Jumbo 32-bit instance field put. - */ - /* iput-object/jumbo vBBBB, vCCCC, field@AAAAAAAA */ - FETCH(r1, 1) @ r1<- aaaa (lo) - FETCH(r2, 2) @ r2<- AAAA (hi) - FETCH(r0, 4) @ r0<- CCCC - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- DvmDex - orr r1, r1, r2, lsl #16 @ r1<- AAAAaaaa - ldr r2, [r3, #offDvmDex_pResFields] @ r2<- pDvmDex->pResFields - GET_VREG(r9, r0) @ r9<- fp[CCCC], the object pointer - ldr r0, [r2, r1, lsl #2] @ r0<- resolved InstField ptr - cmp r0, #0 @ is resolved entry null? - bne .LOP_IPUT_OBJECT_VOLATILE_JUMBO_finish @ no, already resolved -8: ldr r2, [rSELF, #offThread_method] @ r2<- current method - EXPORT_PC() @ resolve() could throw - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveInstField @ r0<- resolved InstField ptr - b .LOP_IPUT_OBJECT_VOLATILE_JUMBO_resolved @ resolved, continue - - -/* ------------------------------ */ - .balign 64 -.L_OP_SGET_VOLATILE_JUMBO: /* 0x1f9 */ -/* File: armv5te/OP_SGET_VOLATILE_JUMBO.S */ -/* File: armv5te/OP_SGET_JUMBO.S */ - /* - * Jumbo 32-bit SGET handler. - * - * for: sget/jumbo, sget-object/jumbo, sget-boolean/jumbo, sget-byte/jumbo, - * sget-char/jumbo, sget-short/jumbo - */ - /* exop vBBBB, field@AAAAAAAA */ - ldr r2, [rSELF, #offThread_methodClassDex] @ r2<- DvmDex - FETCH(r0, 1) @ r0<- aaaa (lo) - FETCH(r1, 2) @ r1<- AAAA (hi) - ldr r10, [r2, #offDvmDex_pResFields] @ r10<- dvmDex->pResFields - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - ldr r0, [r10, r1, lsl #2] @ r0<- resolved StaticField ptr - cmp r0, #0 @ is resolved entry null? - beq .LOP_SGET_VOLATILE_JUMBO_resolve @ yes, do resolve -.LOP_SGET_VOLATILE_JUMBO_finish: @ field ptr in r0 - ldr r1, [r0, #offStaticField_value] @ r1<- field value - SMP_DMB @ acquiring load - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(4) @ advance rPC, load rINST - SET_VREG(r1, r2) @ fp[BBBB]<- r1 - GET_INST_OPCODE(ip) @ extract opcode from rINST - GOTO_OPCODE(ip) @ jump to next instruction - - -/* ------------------------------ */ - .balign 64 -.L_OP_SGET_WIDE_VOLATILE_JUMBO: /* 0x1fa */ -/* File: armv5te/OP_SGET_WIDE_VOLATILE_JUMBO.S */ -/* File: armv5te/OP_SGET_WIDE_JUMBO.S */ - /* - * Jumbo 64-bit SGET handler. - */ - /* sget-wide/jumbo vBBBB, field@AAAAAAAA */ - ldr r2, [rSELF, #offThread_methodClassDex] @ r2<- DvmDex - FETCH(r0, 1) @ r0<- aaaa (lo) - FETCH(r1, 2) @ r1<- AAAA (hi) - ldr r2, [r2, #offDvmDex_pResFields] @ r2<- dvmDex->pResFields - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - ldr r0, [r2, r1, lsl #2] @ r0<- resolved StaticField ptr - cmp r0, #0 @ is resolved entry null? - beq .LOP_SGET_WIDE_VOLATILE_JUMBO_resolve @ yes, do resolve -.LOP_SGET_WIDE_VOLATILE_JUMBO_finish: - FETCH(r9, 3) @ r9<- BBBB - .if 1 - add r0, r0, #offStaticField_value @ r0<- pointer to data - bl dvmQuasiAtomicRead64 @ r0/r1<- contents of field - .else - ldrd r0, [r0, #offStaticField_value] @ r0/r1<- field value (aligned) - .endif - add r9, rFP, r9, lsl #2 @ r9<- &fp[BBBB] - FETCH_ADVANCE_INST(4) @ advance rPC, load rINST - stmia r9, {r0-r1} @ vBBBB/vBBBB+1<- r0/r1 - GET_INST_OPCODE(ip) @ extract opcode from rINST - GOTO_OPCODE(ip) @ jump to next instruction - - -/* ------------------------------ */ - .balign 64 -.L_OP_SGET_OBJECT_VOLATILE_JUMBO: /* 0x1fb */ -/* File: armv5te/OP_SGET_OBJECT_VOLATILE_JUMBO.S */ -/* File: armv5te/OP_SGET_OBJECT_JUMBO.S */ -/* File: armv5te/OP_SGET_JUMBO.S */ - /* - * Jumbo 32-bit SGET handler. - * - * for: sget/jumbo, sget-object/jumbo, sget-boolean/jumbo, sget-byte/jumbo, - * sget-char/jumbo, sget-short/jumbo - */ - /* exop vBBBB, field@AAAAAAAA */ - ldr r2, [rSELF, #offThread_methodClassDex] @ r2<- DvmDex - FETCH(r0, 1) @ r0<- aaaa (lo) - FETCH(r1, 2) @ r1<- AAAA (hi) - ldr r10, [r2, #offDvmDex_pResFields] @ r10<- dvmDex->pResFields - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - ldr r0, [r10, r1, lsl #2] @ r0<- resolved StaticField ptr - cmp r0, #0 @ is resolved entry null? - beq .LOP_SGET_OBJECT_VOLATILE_JUMBO_resolve @ yes, do resolve -.LOP_SGET_OBJECT_VOLATILE_JUMBO_finish: @ field ptr in r0 - ldr r1, [r0, #offStaticField_value] @ r1<- field value - SMP_DMB @ acquiring load - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(4) @ advance rPC, load rINST - SET_VREG(r1, r2) @ fp[BBBB]<- r1 - GET_INST_OPCODE(ip) @ extract opcode from rINST - GOTO_OPCODE(ip) @ jump to next instruction - - - -/* ------------------------------ */ - .balign 64 -.L_OP_SPUT_VOLATILE_JUMBO: /* 0x1fc */ -/* File: armv5te/OP_SPUT_VOLATILE_JUMBO.S */ -/* File: armv5te/OP_SPUT_JUMBO.S */ - /* - * Jumbo 32-bit SPUT handler. - * - * for: sput/jumbo, sput-boolean/jumbo, sput-byte/jumbo, sput-char/jumbo, - * sput-short/jumbo - */ - /* exop vBBBB, field@AAAAAAAA */ - ldr r2, [rSELF, #offThread_methodClassDex] @ r2<- DvmDex - FETCH(r0, 1) @ r0<- aaaa (lo) - FETCH(r1, 2) @ r1<- AAAA (hi) - ldr r10, [r2, #offDvmDex_pResFields] @ r10<- dvmDex->pResFields - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - ldr r0, [r10, r1, lsl #2] @ r0<- resolved StaticField ptr - cmp r0, #0 @ is resolved entry null? - beq .LOP_SPUT_VOLATILE_JUMBO_resolve @ yes, do resolve -.LOP_SPUT_VOLATILE_JUMBO_finish: @ field ptr in r0 - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(4) @ advance rPC, load rINST - GET_VREG(r1, r2) @ r1<- fp[BBBB] - GET_INST_OPCODE(ip) @ extract opcode from rINST - SMP_DMB_ST @ releasing store - str r1, [r0, #offStaticField_value] @ field<- vBBBB - SMP_DMB - GOTO_OPCODE(ip) @ jump to next instruction - - -/* ------------------------------ */ - .balign 64 -.L_OP_SPUT_WIDE_VOLATILE_JUMBO: /* 0x1fd */ -/* File: armv5te/OP_SPUT_WIDE_VOLATILE_JUMBO.S */ -/* File: armv5te/OP_SPUT_WIDE_JUMBO.S */ - /* - * Jumbo 64-bit SPUT handler. - */ - /* sput-wide/jumbo vBBBB, field@AAAAAAAA */ - ldr r0, [rSELF, #offThread_methodClassDex] @ r0<- DvmDex - FETCH(r1, 1) @ r1<- aaaa (lo) - FETCH(r2, 2) @ r2<- AAAA (hi) - ldr r10, [r0, #offDvmDex_pResFields] @ r10<- dvmDex->pResFields - orr r1, r1, r2, lsl #16 @ r1<- AAAAaaaa - FETCH(r9, 3) @ r9<- BBBB - ldr r2, [r10, r1, lsl #2] @ r2<- resolved StaticField ptr - add r9, rFP, r9, lsl #2 @ r9<- &fp[BBBB] - cmp r2, #0 @ is resolved entry null? - beq .LOP_SPUT_WIDE_VOLATILE_JUMBO_resolve @ yes, do resolve -.LOP_SPUT_WIDE_VOLATILE_JUMBO_finish: @ field ptr in r2, BBBB in r9 - FETCH_ADVANCE_INST(4) @ advance rPC, load rINST - ldmia r9, {r0-r1} @ r0/r1<- vBBBB/vBBBB+1 - GET_INST_OPCODE(r10) @ extract opcode from rINST - .if 1 - add r2, r2, #offStaticField_value @ r2<- pointer to data - bl dvmQuasiAtomicSwap64Sync @ stores r0/r1 into addr r2 - .else - strd r0, [r2, #offStaticField_value] @ field<- vBBBB/vBBBB+1 - .endif - GOTO_OPCODE(r10) @ jump to next instruction - - -/* ------------------------------ */ - .balign 64 -.L_OP_SPUT_OBJECT_VOLATILE_JUMBO: /* 0x1fe */ -/* File: armv5te/OP_SPUT_OBJECT_VOLATILE_JUMBO.S */ -/* File: armv5te/OP_SPUT_OBJECT_JUMBO.S */ - /* - * Jumbo 32-bit SPUT handler for objects - */ - /* sput-object/jumbo vBBBB, field@AAAAAAAA */ - ldr r2, [rSELF, #offThread_methodClassDex] @ r2<- DvmDex - FETCH(r0, 1) @ r0<- aaaa (lo) - FETCH(r1, 2) @ r1<- AAAA (hi) - ldr r10, [r2, #offDvmDex_pResFields] @ r10<- dvmDex->pResFields - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - ldr r0, [r10, r1, lsl #2] @ r0<- resolved StaticField ptr - cmp r0, #0 @ is resolved entry null? - beq .LOP_SPUT_OBJECT_VOLATILE_JUMBO_resolve @ yes, do resolve -.LOP_SPUT_OBJECT_VOLATILE_JUMBO_finish: @ field ptr in r0 - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(4) @ advance rPC, load rINST - GET_VREG(r1, r2) @ r1<- fp[BBBB] - ldr r2, [rSELF, #offThread_cardTable] @ r2<- card table base - ldr r9, [r0, #offField_clazz] @ r9<- field->clazz - GET_INST_OPCODE(ip) @ extract opcode from rINST - SMP_DMB_ST @ releasing store - b .LOP_SPUT_OBJECT_VOLATILE_JUMBO_end - - -/* ------------------------------ */ - .balign 64 -.L_OP_THROW_VERIFICATION_ERROR_JUMBO: /* 0x1ff */ -/* File: armv5te/OP_THROW_VERIFICATION_ERROR_JUMBO.S */ - /* - * Handle a jumbo throw-verification-error instruction. This throws an - * exception for an error discovered during verification. The - * exception is indicated by BBBB, with some detail provided by AAAAAAAA. - */ - /* exop BBBB, Class@AAAAAAAA */ - FETCH(r1, 1) @ r1<- aaaa (lo) - FETCH(r2, 2) @ r2<- AAAA (hi) - ldr r0, [rSELF, #offThread_method] @ r0<- self->method - orr r2, r1, r2, lsl #16 @ r2<- AAAAaaaa - EXPORT_PC() @ export the PC - FETCH(r1, 3) @ r1<- BBBB - bl dvmThrowVerificationError @ always throws - b common_exceptionThrown @ handle exception - .balign 64 .size dvmAsmInstructionStart, .-dvmAsmInstructionStart .global dvmAsmInstructionEnd @@ -12764,11 +9650,7 @@ d2l_doconv: */ .LOP_INVOKE_OBJECT_INIT_RANGE_debugger: ldr r1, [rSELF, #offThread_mainHandlerTable] - .if 0 - mov ip, #OP_INVOKE_DIRECT_JUMBO - .else mov ip, #OP_INVOKE_DIRECT_RANGE - .endif GOTO_OPCODE_BASE(r1,ip) @ execute it /* continuation for OP_IPUT_OBJECT_VOLATILE */ @@ -12856,1594 +9738,6 @@ d2l_doconv: b .LOP_SPUT_OBJECT_VOLATILE_finish @ resume -/* continuation for OP_CONST_CLASS_JUMBO */ - - /* - * Continuation if the Class has not yet been resolved. - * r1: AAAAAAAA (Class ref) - * r9: target register - */ -.LOP_CONST_CLASS_JUMBO_resolve: - EXPORT_PC() - ldr r0, [rSELF, #offThread_method] @ r0<- self->method - mov r2, #1 @ r2<- true - ldr r0, [r0, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveClass @ r0<- Class reference - cmp r0, #0 @ failed? - beq common_exceptionThrown @ yup, handle the exception - FETCH_ADVANCE_INST(4) @ advance rPC, load rINST - GET_INST_OPCODE(ip) @ extract opcode from rINST - SET_VREG(r0, r9) @ vBBBB<- r0 - GOTO_OPCODE(ip) @ jump to next instruction - -/* continuation for OP_CHECK_CAST_JUMBO */ - - /* - * Trivial test failed, need to perform full check. This is common. - * r0 holds obj->clazz - * r1 holds desired class resolved from AAAAAAAA - * r9 holds object - */ -.LOP_CHECK_CAST_JUMBO_fullcheck: - mov r10, r1 @ avoid ClassObject getting clobbered - bl dvmInstanceofNonTrivial @ r0<- boolean result - cmp r0, #0 @ failed? - bne .LOP_CHECK_CAST_JUMBO_okay @ no, success - - @ A cast has failed. We need to throw a ClassCastException. - EXPORT_PC() @ about to throw - ldr r0, [r9, #offObject_clazz] @ r0<- obj->clazz (actual class) - mov r1, r10 @ r1<- desired class - bl dvmThrowClassCastException - b common_exceptionThrown - - /* - * Advance PC and get the next opcode. - */ -.LOP_CHECK_CAST_JUMBO_okay: - FETCH_ADVANCE_INST(4) @ advance rPC, load rINST - GET_INST_OPCODE(ip) @ extract opcode from rINST - GOTO_OPCODE(ip) @ jump to next instruction - - /* - * Resolution required. This is the least-likely path. - * - * r2 holds AAAAAAAA - * r9 holds object - */ -.LOP_CHECK_CAST_JUMBO_resolve: - EXPORT_PC() @ resolve() could throw - ldr r3, [rSELF, #offThread_method] @ r3<- self->method - mov r1, r2 @ r1<- AAAAAAAA - mov r2, #0 @ r2<- false - ldr r0, [r3, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveClass @ r0<- resolved ClassObject ptr - cmp r0, #0 @ got null? - beq common_exceptionThrown @ yes, handle exception - mov r1, r0 @ r1<- class resolved from AAAAAAAA - ldr r0, [r9, #offObject_clazz] @ r0<- obj->clazz - b .LOP_CHECK_CAST_JUMBO_resolved @ pick up where we left off - -/* continuation for OP_INSTANCE_OF_JUMBO */ - - /* - * Class resolved, determine type of check necessary. This is common. - * r0 holds obj->clazz - * r1 holds class resolved from AAAAAAAA - * r9 holds BBBB - */ -.LOP_INSTANCE_OF_JUMBO_resolved: - cmp r0, r1 @ same class (trivial success)? - beq .LOP_INSTANCE_OF_JUMBO_trivial @ yes, trivial finish - @ fall through to OP_INSTANCE_OF_JUMBO_fullcheck - - /* - * Trivial test failed, need to perform full check. This is common. - * r0 holds obj->clazz - * r1 holds class resolved from AAAAAAAA - * r9 holds BBBB - */ -.LOP_INSTANCE_OF_JUMBO_fullcheck: - bl dvmInstanceofNonTrivial @ r0<- boolean result - @ fall through to OP_INSTANCE_OF_JUMBO_store - - /* - * r0 holds boolean result - * r9 holds BBBB - */ -.LOP_INSTANCE_OF_JUMBO_store: - FETCH_ADVANCE_INST(5) @ advance rPC, load rINST - SET_VREG(r0, r9) @ vBBBB<- r0 - GET_INST_OPCODE(ip) @ extract opcode from rINST - GOTO_OPCODE(ip) @ jump to next instruction - - /* - * Trivial test succeeded, save and bail. - * r9 holds BBBB - */ -.LOP_INSTANCE_OF_JUMBO_trivial: - mov r0, #1 @ indicate success - @ could b OP_INSTANCE_OF_JUMBO_store, but copying is faster and cheaper - FETCH_ADVANCE_INST(5) @ advance rPC, load rINST - SET_VREG(r0, r9) @ vBBBB<- r0 - GET_INST_OPCODE(ip) @ extract opcode from rINST - GOTO_OPCODE(ip) @ jump to next instruction - - /* - * Resolution required. This is the least-likely path. - * - * r3 holds AAAAAAAA - * r9 holds BBBB - */ - -.LOP_INSTANCE_OF_JUMBO_resolve: - EXPORT_PC() @ resolve() could throw - ldr r0, [rSELF, #offThread_method] @ r0<- self->method - mov r1, r3 @ r1<- AAAAAAAA - mov r2, #1 @ r2<- true - ldr r0, [r0, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveClass @ r0<- resolved ClassObject ptr - cmp r0, #0 @ got null? - beq common_exceptionThrown @ yes, handle exception - FETCH(r3, 4) @ r3<- vCCCC - mov r1, r0 @ r1<- class resolved from AAAAAAAA - GET_VREG(r0, r3) @ r0<- vCCCC (object) - ldr r0, [r0, #offObject_clazz] @ r0<- obj->clazz - b .LOP_INSTANCE_OF_JUMBO_resolved @ pick up where we left off - -/* continuation for OP_NEW_INSTANCE_JUMBO */ - - .balign 32 @ minimize cache lines -.LOP_NEW_INSTANCE_JUMBO_finish: @ r0=new object - FETCH(r3, 3) @ r3<- BBBB - cmp r0, #0 @ failed? -#if defined(WITH_JIT) - /* - * The JIT needs the class to be fully resolved before it can - * include this instruction in a trace. - */ - ldrh r1, [rSELF, #offThread_subMode] - beq common_exceptionThrown @ yes, handle the exception - ands r1, #kSubModeJitTraceBuild @ under construction? - bne .LOP_NEW_INSTANCE_JUMBO_jitCheck -#else - beq common_exceptionThrown @ yes, handle the exception -#endif -.LOP_NEW_INSTANCE_JUMBO_end: - FETCH_ADVANCE_INST(4) @ advance rPC, load rINST - GET_INST_OPCODE(ip) @ extract opcode from rINST - SET_VREG(r0, r3) @ vBBBB<- r0 - GOTO_OPCODE(ip) @ jump to next instruction - -#if defined(WITH_JIT) - /* - * Check to see if we need to stop the trace building early. - * r0: new object - * r3: vAA - */ -.LOP_NEW_INSTANCE_JUMBO_jitCheck: - ldr r1, [r10] @ reload resolved class - cmp r1, #0 @ okay? - bne .LOP_NEW_INSTANCE_JUMBO_end @ yes, finish - mov r9, r0 @ preserve new object - mov r10, r3 @ preserve vAA - mov r0, rSELF - mov r1, rPC - bl dvmJitEndTraceSelect @ (self, pc) - FETCH_ADVANCE_INST(2) @ advance rPC, load rINST - GET_INST_OPCODE(ip) @ extract opcode from rINST - SET_VREG(r9, r10) @ vAA<- new object - GOTO_OPCODE(ip) @ jump to next instruction -#endif - - /* - * Class initialization required. - * - * r0 holds class object - */ -.LOP_NEW_INSTANCE_JUMBO_needinit: - mov r9, r0 @ save r0 - bl dvmInitClass @ initialize class - cmp r0, #0 @ check boolean result - mov r0, r9 @ restore r0 - bne .LOP_NEW_INSTANCE_JUMBO_initialized @ success, continue - b common_exceptionThrown @ failed, deal with init exception - - /* - * Resolution required. This is the least-likely path. - * - * r1 holds AAAAAAAA - */ -.LOP_NEW_INSTANCE_JUMBO_resolve: - ldr r3, [rSELF, #offThread_method] @ r3<- self->method - mov r2, #0 @ r2<- false - ldr r0, [r3, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveClass @ r0<- resolved ClassObject ptr - cmp r0, #0 @ got null? - bne .LOP_NEW_INSTANCE_JUMBO_resolved @ no, continue - b common_exceptionThrown @ yes, handle exception - -/* continuation for OP_NEW_ARRAY_JUMBO */ - - - /* - * Resolve class. (This is an uncommon case.) - * - * r1 holds array length - * r2 holds class ref AAAAAAAA - */ -.LOP_NEW_ARRAY_JUMBO_resolve: - ldr r3, [rSELF, #offThread_method] @ r3<- self->method - mov r9, r1 @ r9<- length (save) - mov r1, r2 @ r1<- AAAAAAAA - mov r2, #0 @ r2<- false - ldr r0, [r3, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveClass @ r0<- call(clazz, ref) - cmp r0, #0 @ got null? - mov r1, r9 @ r1<- length (restore) - beq common_exceptionThrown @ yes, handle exception - @ fall through to OP_NEW_ARRAY_JUMBO_finish - - /* - * Finish allocation. - * - * r0 holds class - * r1 holds array length - */ -.LOP_NEW_ARRAY_JUMBO_finish: - mov r2, #ALLOC_DONT_TRACK @ don't track in local refs table - bl dvmAllocArrayByClass @ r0<- call(clazz, length, flags) - cmp r0, #0 @ failed? - FETCH(r2, 3) @ r2<- vBBBB - beq common_exceptionThrown @ yes, handle the exception - FETCH_ADVANCE_INST(5) @ advance rPC, load rINST - GET_INST_OPCODE(ip) @ extract opcode from rINST - SET_VREG(r0, r2) @ vBBBB<- r0 - GOTO_OPCODE(ip) @ jump to next instruction - -/* continuation for OP_FILLED_NEW_ARRAY_JUMBO */ - - /* - * On entry: - * r0 holds array class - */ -.LOP_FILLED_NEW_ARRAY_JUMBO_continue: - ldr r3, [r0, #offClassObject_descriptor] @ r3<- arrayClass->descriptor - mov r2, #ALLOC_DONT_TRACK @ r2<- alloc flags - ldrb rINST, [r3, #1] @ rINST<- descriptor[1] - FETCH(r1, 3) @ r1<- BBBB (length) - cmp rINST, #'I' @ array of ints? - cmpne rINST, #'L' @ array of objects? - cmpne rINST, #'[' @ array of arrays? - mov r9, r1 @ save length in r9 - bne .LOP_FILLED_NEW_ARRAY_JUMBO_notimpl @ no, not handled yet - bl dvmAllocArrayByClass @ r0<- call(arClass, length, flags) - cmp r0, #0 @ null return? - beq common_exceptionThrown @ alloc failed, handle exception - - FETCH(r1, 4) @ r1<- CCCC - str r0, [rSELF, #offThread_retval] @ retval.l <- new array - str rINST, [rSELF, #offThread_retval+4] @ retval.h <- type - add r0, r0, #offArrayObject_contents @ r0<- newArray->contents - subs r9, r9, #1 @ length--, check for neg - FETCH_ADVANCE_INST(5) @ advance to next instr, load rINST - bmi 2f @ was zero, bail - - @ copy values from registers into the array - @ r0=array, r1=CCCC, r9=BBBB (length) - add r2, rFP, r1, lsl #2 @ r2<- &fp[CCCC] -1: ldr r3, [r2], #4 @ r3<- *r2++ - subs r9, r9, #1 @ count-- - str r3, [r0], #4 @ *contents++ = vX - bpl 1b - -2: ldr r0, [rSELF, #offThread_retval] @ r0<- object - ldr r1, [rSELF, #offThread_retval+4] @ r1<- type - ldr r2, [rSELF, #offThread_cardTable] @ r2<- card table base - GET_INST_OPCODE(ip) @ ip<- opcode from rINST - cmp r1, #'I' @ Is int array? - strneb r2, [r2, r0, lsr #GC_CARD_SHIFT] @ Mark card based on object head - GOTO_OPCODE(ip) @ execute it - - /* - * Throw an exception indicating that we have not implemented this - * mode of filled-new-array. - */ -.LOP_FILLED_NEW_ARRAY_JUMBO_notimpl: - ldr r0, .L_strFilledNewArrayNotImpl_OP_FILLED_NEW_ARRAY_JUMBO - bl dvmThrowInternalError - b common_exceptionThrown - - /* - * Ideally we'd only define this once, but depending on layout we can - * exceed the range of the load above. - */ - -.L_strFilledNewArrayNotImpl_OP_FILLED_NEW_ARRAY_JUMBO: - .word .LstrFilledNewArrayNotImpl - -/* continuation for OP_IGET_JUMBO */ - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IGET_JUMBO_resolved: - cmp r0, #0 @ resolution unsuccessful? - beq common_exceptionThrown @ yes, throw exception - @ fall through to OP_IGET_JUMBO_finish - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IGET_JUMBO_finish: - @bl common_squeak0 - cmp r9, #0 @ check object for null - ldr r3, [r0, #offInstField_byteOffset] @ r3<- byte offset of field - beq common_errNullObject @ object was null - ldr r0, [r9, r3] @ r0<- obj.field (8/16/32 bits) - @ no-op @ acquiring load - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(5) @ advance rPC, load rINST - SET_VREG(r0, r2) @ fp[BBBB]<- r0 - GET_INST_OPCODE(ip) @ extract opcode from rINST - GOTO_OPCODE(ip) @ jump to next instruction - -/* continuation for OP_IGET_WIDE_JUMBO */ - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IGET_WIDE_JUMBO_resolved: - cmp r0, #0 @ resolution unsuccessful? - beq common_exceptionThrown @ yes, throw exception - @ fall through to OP_IGET_WIDE_JUMBO_finish - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IGET_WIDE_JUMBO_finish: - cmp r9, #0 @ check object for null - ldr r3, [r0, #offInstField_byteOffset] @ r3<- byte offset of field - beq common_errNullObject @ object was null - .if 0 - add r0, r9, r3 @ r0<- address of field - bl dvmQuasiAtomicRead64 @ r0/r1<- contents of field - .else - ldrd r0, [r9, r3] @ r0/r1<- obj.field (64-bit align ok) - .endif - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(5) @ advance rPC, load rINST - add r3, rFP, r2, lsl #2 @ r3<- &fp[BBBB] - GET_INST_OPCODE(ip) @ extract opcode from rINST - stmia r3, {r0-r1} @ fp[BBBB]<- r0/r1 - GOTO_OPCODE(ip) @ jump to next instruction - -/* continuation for OP_IGET_OBJECT_JUMBO */ - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IGET_OBJECT_JUMBO_resolved: - cmp r0, #0 @ resolution unsuccessful? - beq common_exceptionThrown @ yes, throw exception - @ fall through to OP_IGET_OBJECT_JUMBO_finish - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IGET_OBJECT_JUMBO_finish: - @bl common_squeak0 - cmp r9, #0 @ check object for null - ldr r3, [r0, #offInstField_byteOffset] @ r3<- byte offset of field - beq common_errNullObject @ object was null - ldr r0, [r9, r3] @ r0<- obj.field (8/16/32 bits) - @ no-op @ acquiring load - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(5) @ advance rPC, load rINST - SET_VREG(r0, r2) @ fp[BBBB]<- r0 - GET_INST_OPCODE(ip) @ extract opcode from rINST - GOTO_OPCODE(ip) @ jump to next instruction - -/* continuation for OP_IGET_BOOLEAN_JUMBO */ - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IGET_BOOLEAN_JUMBO_resolved: - cmp r0, #0 @ resolution unsuccessful? - beq common_exceptionThrown @ yes, throw exception - @ fall through to OP_IGET_BOOLEAN_JUMBO_finish - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IGET_BOOLEAN_JUMBO_finish: - @bl common_squeak1 - cmp r9, #0 @ check object for null - ldr r3, [r0, #offInstField_byteOffset] @ r3<- byte offset of field - beq common_errNullObject @ object was null - ldr r0, [r9, r3] @ r0<- obj.field (8/16/32 bits) - @ no-op @ acquiring load - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(5) @ advance rPC, load rINST - SET_VREG(r0, r2) @ fp[BBBB]<- r0 - GET_INST_OPCODE(ip) @ extract opcode from rINST - GOTO_OPCODE(ip) @ jump to next instruction - -/* continuation for OP_IGET_BYTE_JUMBO */ - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IGET_BYTE_JUMBO_resolved: - cmp r0, #0 @ resolution unsuccessful? - beq common_exceptionThrown @ yes, throw exception - @ fall through to OP_IGET_BYTE_JUMBO_finish - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IGET_BYTE_JUMBO_finish: - @bl common_squeak2 - cmp r9, #0 @ check object for null - ldr r3, [r0, #offInstField_byteOffset] @ r3<- byte offset of field - beq common_errNullObject @ object was null - ldr r0, [r9, r3] @ r0<- obj.field (8/16/32 bits) - @ no-op @ acquiring load - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(5) @ advance rPC, load rINST - SET_VREG(r0, r2) @ fp[BBBB]<- r0 - GET_INST_OPCODE(ip) @ extract opcode from rINST - GOTO_OPCODE(ip) @ jump to next instruction - -/* continuation for OP_IGET_CHAR_JUMBO */ - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IGET_CHAR_JUMBO_resolved: - cmp r0, #0 @ resolution unsuccessful? - beq common_exceptionThrown @ yes, throw exception - @ fall through to OP_IGET_CHAR_JUMBO_finish - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IGET_CHAR_JUMBO_finish: - @bl common_squeak3 - cmp r9, #0 @ check object for null - ldr r3, [r0, #offInstField_byteOffset] @ r3<- byte offset of field - beq common_errNullObject @ object was null - ldr r0, [r9, r3] @ r0<- obj.field (8/16/32 bits) - @ no-op @ acquiring load - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(5) @ advance rPC, load rINST - SET_VREG(r0, r2) @ fp[BBBB]<- r0 - GET_INST_OPCODE(ip) @ extract opcode from rINST - GOTO_OPCODE(ip) @ jump to next instruction - -/* continuation for OP_IGET_SHORT_JUMBO */ - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IGET_SHORT_JUMBO_resolved: - cmp r0, #0 @ resolution unsuccessful? - beq common_exceptionThrown @ yes, throw exception - @ fall through to OP_IGET_SHORT_JUMBO_finish - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IGET_SHORT_JUMBO_finish: - @bl common_squeak4 - cmp r9, #0 @ check object for null - ldr r3, [r0, #offInstField_byteOffset] @ r3<- byte offset of field - beq common_errNullObject @ object was null - ldr r0, [r9, r3] @ r0<- obj.field (8/16/32 bits) - @ no-op @ acquiring load - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(5) @ advance rPC, load rINST - SET_VREG(r0, r2) @ fp[BBBB]<- r0 - GET_INST_OPCODE(ip) @ extract opcode from rINST - GOTO_OPCODE(ip) @ jump to next instruction - -/* continuation for OP_IPUT_JUMBO */ - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IPUT_JUMBO_resolved: - cmp r0, #0 @ resolution unsuccessful? - beq common_exceptionThrown @ yes, throw exception - @ fall through to OP_IPUT_JUMBO_finish - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IPUT_JUMBO_finish: - @bl common_squeak0 - ldr r3, [r0, #offInstField_byteOffset] @ r3<- byte offset of field - FETCH(r1, 3) @ r1<- BBBB - cmp r9, #0 @ check object for null - GET_VREG(r0, r1) @ r0<- fp[BBBB] - beq common_errNullObject @ object was null - FETCH_ADVANCE_INST(5) @ advance rPC, load rINST - GET_INST_OPCODE(ip) @ extract opcode from rINST - @ no-op @ releasing store - str r0, [r9, r3] @ obj.field (8/16/32 bits)<- r0 - @ no-op - GOTO_OPCODE(ip) @ jump to next instruction - -/* continuation for OP_IPUT_WIDE_JUMBO */ - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IPUT_WIDE_JUMBO_resolved: - cmp r0, #0 @ resolution unsuccessful? - beq common_exceptionThrown @ yes, throw exception - @ fall through to OP_IPUT_WIDE_JUMBO_finish - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IPUT_WIDE_JUMBO_finish: - cmp r9, #0 @ check object for null - FETCH(r2, 3) @ r1<- BBBB - ldr r3, [r0, #offInstField_byteOffset] @ r3<- byte offset of field - add r2, rFP, r2, lsl #2 @ r3<- &fp[BBBB] - beq common_errNullObject @ object was null - FETCH_ADVANCE_INST(5) @ advance rPC, load rINST - ldmia r2, {r0-r1} @ r0/r1<- fp[BBBB] - GET_INST_OPCODE(r10) @ extract opcode from rINST - .if 0 - add r2, r9, r3 @ r2<- target address - bl dvmQuasiAtomicSwap64Sync @ stores r0/r1 into addr r2 - .else - strd r0, [r9, r3] @ obj.field (64 bits, aligned)<- r0/r1 - .endif - GOTO_OPCODE(r10) @ jump to next instruction - -/* continuation for OP_IPUT_OBJECT_JUMBO */ - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IPUT_OBJECT_JUMBO_resolved: - cmp r0, #0 @ resolution unsuccessful? - beq common_exceptionThrown @ yes, throw exception - @ fall through to OP_IPUT_OBJECT_JUMBO_finish - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IPUT_OBJECT_JUMBO_finish: - @bl common_squeak0 - ldr r3, [r0, #offInstField_byteOffset] @ r3<- byte offset of field - FETCH(r1, 3) @ r1<- BBBB - cmp r9, #0 @ check object for null - GET_VREG(r0, r1) @ r0<- fp[BBBB] - ldr r2, [rSELF, #offThread_cardTable] @ r2<- card table base - beq common_errNullObject @ object was null - FETCH_ADVANCE_INST(5) @ advance rPC, load rINST - GET_INST_OPCODE(ip) @ extract opcode from rINST - @ no-op @ releasing store - str r0, [r9, r3] @ obj.field (32 bits)<- r0 - @ no-op - cmp r0, #0 @ stored a null reference? - strneb r2, [r2, r9, lsr #GC_CARD_SHIFT] @ mark card if not - GOTO_OPCODE(ip) @ jump to next instruction - -/* continuation for OP_IPUT_BOOLEAN_JUMBO */ - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IPUT_BOOLEAN_JUMBO_resolved: - cmp r0, #0 @ resolution unsuccessful? - beq common_exceptionThrown @ yes, throw exception - @ fall through to OP_IPUT_BOOLEAN_JUMBO_finish - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IPUT_BOOLEAN_JUMBO_finish: - @bl common_squeak1 - ldr r3, [r0, #offInstField_byteOffset] @ r3<- byte offset of field - FETCH(r1, 3) @ r1<- BBBB - cmp r9, #0 @ check object for null - GET_VREG(r0, r1) @ r0<- fp[BBBB] - beq common_errNullObject @ object was null - FETCH_ADVANCE_INST(5) @ advance rPC, load rINST - GET_INST_OPCODE(ip) @ extract opcode from rINST - @ no-op @ releasing store - str r0, [r9, r3] @ obj.field (8/16/32 bits)<- r0 - @ no-op - GOTO_OPCODE(ip) @ jump to next instruction - -/* continuation for OP_IPUT_BYTE_JUMBO */ - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IPUT_BYTE_JUMBO_resolved: - cmp r0, #0 @ resolution unsuccessful? - beq common_exceptionThrown @ yes, throw exception - @ fall through to OP_IPUT_BYTE_JUMBO_finish - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IPUT_BYTE_JUMBO_finish: - @bl common_squeak2 - ldr r3, [r0, #offInstField_byteOffset] @ r3<- byte offset of field - FETCH(r1, 3) @ r1<- BBBB - cmp r9, #0 @ check object for null - GET_VREG(r0, r1) @ r0<- fp[BBBB] - beq common_errNullObject @ object was null - FETCH_ADVANCE_INST(5) @ advance rPC, load rINST - GET_INST_OPCODE(ip) @ extract opcode from rINST - @ no-op @ releasing store - str r0, [r9, r3] @ obj.field (8/16/32 bits)<- r0 - @ no-op - GOTO_OPCODE(ip) @ jump to next instruction - -/* continuation for OP_IPUT_CHAR_JUMBO */ - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IPUT_CHAR_JUMBO_resolved: - cmp r0, #0 @ resolution unsuccessful? - beq common_exceptionThrown @ yes, throw exception - @ fall through to OP_IPUT_CHAR_JUMBO_finish - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IPUT_CHAR_JUMBO_finish: - @bl common_squeak3 - ldr r3, [r0, #offInstField_byteOffset] @ r3<- byte offset of field - FETCH(r1, 3) @ r1<- BBBB - cmp r9, #0 @ check object for null - GET_VREG(r0, r1) @ r0<- fp[BBBB] - beq common_errNullObject @ object was null - FETCH_ADVANCE_INST(5) @ advance rPC, load rINST - GET_INST_OPCODE(ip) @ extract opcode from rINST - @ no-op @ releasing store - str r0, [r9, r3] @ obj.field (8/16/32 bits)<- r0 - @ no-op - GOTO_OPCODE(ip) @ jump to next instruction - -/* continuation for OP_IPUT_SHORT_JUMBO */ - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IPUT_SHORT_JUMBO_resolved: - cmp r0, #0 @ resolution unsuccessful? - beq common_exceptionThrown @ yes, throw exception - @ fall through to OP_IPUT_SHORT_JUMBO_finish - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IPUT_SHORT_JUMBO_finish: - @bl common_squeak4 - ldr r3, [r0, #offInstField_byteOffset] @ r3<- byte offset of field - FETCH(r1, 3) @ r1<- BBBB - cmp r9, #0 @ check object for null - GET_VREG(r0, r1) @ r0<- fp[BBBB] - beq common_errNullObject @ object was null - FETCH_ADVANCE_INST(5) @ advance rPC, load rINST - GET_INST_OPCODE(ip) @ extract opcode from rINST - @ no-op @ releasing store - str r0, [r9, r3] @ obj.field (8/16/32 bits)<- r0 - @ no-op - GOTO_OPCODE(ip) @ jump to next instruction - -/* continuation for OP_SGET_JUMBO */ - - /* - * Continuation if the field has not yet been resolved. - * r1: AAAAAAAA field ref - * r10: dvmDex->pResFields - */ -.LOP_SGET_JUMBO_resolve: - ldr r2, [rSELF, #offThread_method] @ r2<- current method -#if defined(WITH_JIT) - add r10, r10, r1, lsl #2 @ r10<- &dvmDex->pResFields[field] -#endif - EXPORT_PC() @ resolve() could throw, so export now - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveStaticField @ r0<- resolved StaticField ptr - cmp r0, #0 @ success? - beq common_exceptionThrown @ no, handle exception -#if defined(WITH_JIT) - /* - * If the JIT is actively building a trace we need to make sure - * that the field is fully resolved before including this instruction. - */ - bl common_verifyField -#endif - b .LOP_SGET_JUMBO_finish @ resume - -/* continuation for OP_SGET_WIDE_JUMBO */ - - /* - * Continuation if the field has not yet been resolved. - * r1: AAAAAAAA field ref - * - * Returns StaticField pointer in r0. - */ -.LOP_SGET_WIDE_JUMBO_resolve: - ldr r2, [rSELF, #offThread_method] @ r2<- current method - EXPORT_PC() @ resolve() could throw, so export now - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveStaticField @ r0<- resolved StaticField ptr - cmp r0, #0 @ success? - bne .LOP_SGET_WIDE_JUMBO_finish @ yes, finish - b common_exceptionThrown @ no, handle exception - -/* continuation for OP_SGET_OBJECT_JUMBO */ - - /* - * Continuation if the field has not yet been resolved. - * r1: AAAAAAAA field ref - * r10: dvmDex->pResFields - */ -.LOP_SGET_OBJECT_JUMBO_resolve: - ldr r2, [rSELF, #offThread_method] @ r2<- current method -#if defined(WITH_JIT) - add r10, r10, r1, lsl #2 @ r10<- &dvmDex->pResFields[field] -#endif - EXPORT_PC() @ resolve() could throw, so export now - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveStaticField @ r0<- resolved StaticField ptr - cmp r0, #0 @ success? - beq common_exceptionThrown @ no, handle exception -#if defined(WITH_JIT) - /* - * If the JIT is actively building a trace we need to make sure - * that the field is fully resolved before including this instruction. - */ - bl common_verifyField -#endif - b .LOP_SGET_OBJECT_JUMBO_finish @ resume - -/* continuation for OP_SGET_BOOLEAN_JUMBO */ - - /* - * Continuation if the field has not yet been resolved. - * r1: AAAAAAAA field ref - * r10: dvmDex->pResFields - */ -.LOP_SGET_BOOLEAN_JUMBO_resolve: - ldr r2, [rSELF, #offThread_method] @ r2<- current method -#if defined(WITH_JIT) - add r10, r10, r1, lsl #2 @ r10<- &dvmDex->pResFields[field] -#endif - EXPORT_PC() @ resolve() could throw, so export now - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveStaticField @ r0<- resolved StaticField ptr - cmp r0, #0 @ success? - beq common_exceptionThrown @ no, handle exception -#if defined(WITH_JIT) - /* - * If the JIT is actively building a trace we need to make sure - * that the field is fully resolved before including this instruction. - */ - bl common_verifyField -#endif - b .LOP_SGET_BOOLEAN_JUMBO_finish @ resume - -/* continuation for OP_SGET_BYTE_JUMBO */ - - /* - * Continuation if the field has not yet been resolved. - * r1: AAAAAAAA field ref - * r10: dvmDex->pResFields - */ -.LOP_SGET_BYTE_JUMBO_resolve: - ldr r2, [rSELF, #offThread_method] @ r2<- current method -#if defined(WITH_JIT) - add r10, r10, r1, lsl #2 @ r10<- &dvmDex->pResFields[field] -#endif - EXPORT_PC() @ resolve() could throw, so export now - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveStaticField @ r0<- resolved StaticField ptr - cmp r0, #0 @ success? - beq common_exceptionThrown @ no, handle exception -#if defined(WITH_JIT) - /* - * If the JIT is actively building a trace we need to make sure - * that the field is fully resolved before including this instruction. - */ - bl common_verifyField -#endif - b .LOP_SGET_BYTE_JUMBO_finish @ resume - -/* continuation for OP_SGET_CHAR_JUMBO */ - - /* - * Continuation if the field has not yet been resolved. - * r1: AAAAAAAA field ref - * r10: dvmDex->pResFields - */ -.LOP_SGET_CHAR_JUMBO_resolve: - ldr r2, [rSELF, #offThread_method] @ r2<- current method -#if defined(WITH_JIT) - add r10, r10, r1, lsl #2 @ r10<- &dvmDex->pResFields[field] -#endif - EXPORT_PC() @ resolve() could throw, so export now - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveStaticField @ r0<- resolved StaticField ptr - cmp r0, #0 @ success? - beq common_exceptionThrown @ no, handle exception -#if defined(WITH_JIT) - /* - * If the JIT is actively building a trace we need to make sure - * that the field is fully resolved before including this instruction. - */ - bl common_verifyField -#endif - b .LOP_SGET_CHAR_JUMBO_finish @ resume - -/* continuation for OP_SGET_SHORT_JUMBO */ - - /* - * Continuation if the field has not yet been resolved. - * r1: AAAAAAAA field ref - * r10: dvmDex->pResFields - */ -.LOP_SGET_SHORT_JUMBO_resolve: - ldr r2, [rSELF, #offThread_method] @ r2<- current method -#if defined(WITH_JIT) - add r10, r10, r1, lsl #2 @ r10<- &dvmDex->pResFields[field] -#endif - EXPORT_PC() @ resolve() could throw, so export now - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveStaticField @ r0<- resolved StaticField ptr - cmp r0, #0 @ success? - beq common_exceptionThrown @ no, handle exception -#if defined(WITH_JIT) - /* - * If the JIT is actively building a trace we need to make sure - * that the field is fully resolved before including this instruction. - */ - bl common_verifyField -#endif - b .LOP_SGET_SHORT_JUMBO_finish @ resume - -/* continuation for OP_SPUT_JUMBO */ - - /* - * Continuation if the field has not yet been resolved. - * r1: AAAAAAAA field ref - * r10: dvmDex->pResFields - */ -.LOP_SPUT_JUMBO_resolve: - ldr r2, [rSELF, #offThread_method] @ r2<- current method -#if defined(WITH_JIT) - add r10, r10, r1, lsl #2 @ r10<- &dvmDex->pResFields[field] -#endif - EXPORT_PC() @ resolve() could throw, so export now - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveStaticField @ r0<- resolved StaticField ptr - cmp r0, #0 @ success? - beq common_exceptionThrown @ no, handle exception -#if defined(WITH_JIT) - /* - * If the JIT is actively building a trace we need to make sure - * that the field is fully resolved before including this instruction. - */ - bl common_verifyField -#endif - b .LOP_SPUT_JUMBO_finish @ resume - -/* continuation for OP_SPUT_WIDE_JUMBO */ - - /* - * Continuation if the field has not yet been resolved. - * r1: AAAAAAAA field ref - * r9: &fp[BBBB] - * r10: dvmDex->pResFields - * - * Returns StaticField pointer in r2. - */ -.LOP_SPUT_WIDE_JUMBO_resolve: - ldr r2, [rSELF, #offThread_method] @ r2<- current method -#if defined(WITH_JIT) - add r10, r10, r1, lsl #2 @ r10<- &dvmDex->pResFields[field] -#endif - EXPORT_PC() @ resolve() could throw, so export now - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveStaticField @ r0<- resolved StaticField ptr - cmp r0, #0 @ success? - mov r2, r0 @ copy to r2 - beq common_exceptionThrown @ no, handle exception -#if defined(WITH_JIT) - /* - * If the JIT is actively building a trace we need to make sure - * that the field is fully resolved before including this instruction. - */ - bl common_verifyField -#endif - b .LOP_SPUT_WIDE_JUMBO_finish @ resume - -/* continuation for OP_SPUT_OBJECT_JUMBO */ - - -.LOP_SPUT_OBJECT_JUMBO_end: - str r1, [r0, #offStaticField_value] @ field<- vBBBB - @ no-op - cmp r1, #0 @ stored a null object? - strneb r2, [r2, r9, lsr #GC_CARD_SHIFT] @ mark card based on obj head - GOTO_OPCODE(ip) @ jump to next instruction - - /* Continuation if the field has not yet been resolved. - * r1: AAAAaaaa field ref - * r10: dvmDex->pResFields - */ -.LOP_SPUT_OBJECT_JUMBO_resolve: - ldr r2, [rSELF, #offThread_method] @ r9<- current method -#if defined(WITH_JIT) - add r10, r10, r1, lsl #2 @ r10<- &dvmDex->pResFields[field] -#endif - EXPORT_PC() @ resolve() could throw, so export now - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveStaticField @ r0<- resolved StaticField ptr - cmp r0, #0 @ success? - beq common_exceptionThrown @ no, handle exception -#if defined(WITH_JIT) - /* - * If the JIT is actively building a trace we need to make sure - * that the field is fully resolved before including this instruction. - */ - bl common_verifyField -#endif - b .LOP_SPUT_OBJECT_JUMBO_finish @ resume - - -/* continuation for OP_SPUT_BOOLEAN_JUMBO */ - - /* - * Continuation if the field has not yet been resolved. - * r1: AAAAAAAA field ref - * r10: dvmDex->pResFields - */ -.LOP_SPUT_BOOLEAN_JUMBO_resolve: - ldr r2, [rSELF, #offThread_method] @ r2<- current method -#if defined(WITH_JIT) - add r10, r10, r1, lsl #2 @ r10<- &dvmDex->pResFields[field] -#endif - EXPORT_PC() @ resolve() could throw, so export now - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveStaticField @ r0<- resolved StaticField ptr - cmp r0, #0 @ success? - beq common_exceptionThrown @ no, handle exception -#if defined(WITH_JIT) - /* - * If the JIT is actively building a trace we need to make sure - * that the field is fully resolved before including this instruction. - */ - bl common_verifyField -#endif - b .LOP_SPUT_BOOLEAN_JUMBO_finish @ resume - -/* continuation for OP_SPUT_BYTE_JUMBO */ - - /* - * Continuation if the field has not yet been resolved. - * r1: AAAAAAAA field ref - * r10: dvmDex->pResFields - */ -.LOP_SPUT_BYTE_JUMBO_resolve: - ldr r2, [rSELF, #offThread_method] @ r2<- current method -#if defined(WITH_JIT) - add r10, r10, r1, lsl #2 @ r10<- &dvmDex->pResFields[field] -#endif - EXPORT_PC() @ resolve() could throw, so export now - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveStaticField @ r0<- resolved StaticField ptr - cmp r0, #0 @ success? - beq common_exceptionThrown @ no, handle exception -#if defined(WITH_JIT) - /* - * If the JIT is actively building a trace we need to make sure - * that the field is fully resolved before including this instruction. - */ - bl common_verifyField -#endif - b .LOP_SPUT_BYTE_JUMBO_finish @ resume - -/* continuation for OP_SPUT_CHAR_JUMBO */ - - /* - * Continuation if the field has not yet been resolved. - * r1: AAAAAAAA field ref - * r10: dvmDex->pResFields - */ -.LOP_SPUT_CHAR_JUMBO_resolve: - ldr r2, [rSELF, #offThread_method] @ r2<- current method -#if defined(WITH_JIT) - add r10, r10, r1, lsl #2 @ r10<- &dvmDex->pResFields[field] -#endif - EXPORT_PC() @ resolve() could throw, so export now - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveStaticField @ r0<- resolved StaticField ptr - cmp r0, #0 @ success? - beq common_exceptionThrown @ no, handle exception -#if defined(WITH_JIT) - /* - * If the JIT is actively building a trace we need to make sure - * that the field is fully resolved before including this instruction. - */ - bl common_verifyField -#endif - b .LOP_SPUT_CHAR_JUMBO_finish @ resume - -/* continuation for OP_SPUT_SHORT_JUMBO */ - - /* - * Continuation if the field has not yet been resolved. - * r1: AAAAAAAA field ref - * r10: dvmDex->pResFields - */ -.LOP_SPUT_SHORT_JUMBO_resolve: - ldr r2, [rSELF, #offThread_method] @ r2<- current method -#if defined(WITH_JIT) - add r10, r10, r1, lsl #2 @ r10<- &dvmDex->pResFields[field] -#endif - EXPORT_PC() @ resolve() could throw, so export now - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveStaticField @ r0<- resolved StaticField ptr - cmp r0, #0 @ success? - beq common_exceptionThrown @ no, handle exception -#if defined(WITH_JIT) - /* - * If the JIT is actively building a trace we need to make sure - * that the field is fully resolved before including this instruction. - */ - bl common_verifyField -#endif - b .LOP_SPUT_SHORT_JUMBO_finish @ resume - -/* continuation for OP_INVOKE_VIRTUAL_JUMBO */ - - /* - * At this point: - * r0 = resolved base method - */ -.LOP_INVOKE_VIRTUAL_JUMBO_continue: - FETCH(r10, 4) @ r10<- CCCC - GET_VREG(r9, r10) @ r9<- "this" ptr - ldrh r2, [r0, #offMethod_methodIndex] @ r2<- baseMethod->methodIndex - cmp r9, #0 @ is "this" null? - beq common_errNullObject @ null "this", throw exception - ldr r3, [r9, #offObject_clazz] @ r3<- thisPtr->clazz - ldr r3, [r3, #offClassObject_vtable] @ r3<- thisPtr->clazz->vtable - ldr r0, [r3, r2, lsl #2] @ r3<- vtable[methodIndex] - bl common_invokeMethodJumbo @ (r0=method, r9="this") - -/* continuation for OP_INVOKE_SUPER_JUMBO */ - - /* - * At this point: - * r0 = resolved base method - * r10 = method->clazz - */ -.LOP_INVOKE_SUPER_JUMBO_continue: - ldr r1, [r10, #offClassObject_super] @ r1<- method->clazz->super - ldrh r2, [r0, #offMethod_methodIndex] @ r2<- baseMethod->methodIndex - ldr r3, [r1, #offClassObject_vtableCount] @ r3<- super->vtableCount - EXPORT_PC() @ must export for invoke - cmp r2, r3 @ compare (methodIndex, vtableCount) - bcs .LOP_INVOKE_SUPER_JUMBO_nsm @ method not present in superclass - ldr r1, [r1, #offClassObject_vtable] @ r1<- ...clazz->super->vtable - ldr r0, [r1, r2, lsl #2] @ r3<- vtable[methodIndex] - bl common_invokeMethodJumbo @ (r0=method, r9="this") - -.LOP_INVOKE_SUPER_JUMBO_resolve: - mov r0, r10 @ r0<- method->clazz - mov r2, #METHOD_VIRTUAL @ resolver method type - bl dvmResolveMethod @ r0<- call(clazz, ref, flags) - cmp r0, #0 @ got null? - bne .LOP_INVOKE_SUPER_JUMBO_continue @ no, continue - b common_exceptionThrown @ yes, handle exception - - /* - * Throw a NoSuchMethodError with the method name as the message. - * r0 = resolved base method - */ -.LOP_INVOKE_SUPER_JUMBO_nsm: - ldr r1, [r0, #offMethod_name] @ r1<- method name - b common_errNoSuchMethod - -/* continuation for OP_INVOKE_DIRECT_JUMBO */ - - /* - * On entry: - * r1 = reference (CCCC) - * r10 = "this" register - */ -.LOP_INVOKE_DIRECT_JUMBO_resolve: - ldr r3, [rSELF, #offThread_method] @ r3<- self->method - ldr r0, [r3, #offMethod_clazz] @ r0<- method->clazz - mov r2, #METHOD_DIRECT @ resolver method type - bl dvmResolveMethod @ r0<- call(clazz, ref, flags) - cmp r0, #0 @ got null? - bne .LOP_INVOKE_DIRECT_JUMBO_finish @ no, continue - b common_exceptionThrown @ yes, handle exception - -/* continuation for OP_INVOKE_STATIC_JUMBO */ - - -.LOP_INVOKE_STATIC_JUMBO_resolve: - ldr r3, [rSELF, #offThread_method] @ r3<- self->method - ldr r0, [r3, #offMethod_clazz] @ r0<- method->clazz - mov r2, #METHOD_STATIC @ resolver method type - bl dvmResolveMethod @ r0<- call(clazz, ref, flags) - cmp r0, #0 @ got null? -#if defined(WITH_JIT) - /* - * Check to see if we're actively building a trace. If so, - * we need to keep this instruction out of it. - * r10: &resolved_methodToCall - */ - ldrh r2, [rSELF, #offThread_subMode] - beq common_exceptionThrown @ null, handle exception - ands r2, #kSubModeJitTraceBuild @ trace under construction? - beq common_invokeMethodJumboNoThis @ no (r0=method, r9="this") - ldr r1, [r10] @ reload resolved method - cmp r1, #0 @ finished resolving? - bne common_invokeMethodJumboNoThis @ yes (r0=method, r9="this") - mov r10, r0 @ preserve method - mov r0, rSELF - mov r1, rPC - bl dvmJitEndTraceSelect @ (self, pc) - mov r0, r10 - b common_invokeMethodJumboNoThis @ whew, finally! -#else - bne common_invokeMethodJumboNoThis @ (r0=method, r9="this") - b common_exceptionThrown @ yes, handle exception -#endif - -/* continuation for OP_INVOKE_OBJECT_INIT_JUMBO */ - -.LOP_INVOKE_OBJECT_INIT_JUMBO_setFinal: - EXPORT_PC() @ can throw - bl dvmSetFinalizable @ call dvmSetFinalizable(obj) - ldr r0, [rSELF, #offThread_exception] @ r0<- self->exception - cmp r0, #0 @ exception pending? - bne common_exceptionThrown @ yes, handle it - b .LOP_INVOKE_OBJECT_INIT_JUMBO_finish - - /* - * A debugger is attached, so we need to go ahead and do - * this. For simplicity, we'll just jump directly to the - * corresponding handler. Note that we can't use - * rIBASE here because it may be in single-step mode. - * Load the primary table base directly. - */ -.LOP_INVOKE_OBJECT_INIT_JUMBO_debugger: - ldr r1, [rSELF, #offThread_mainHandlerTable] - .if 1 - mov ip, #OP_INVOKE_DIRECT_JUMBO - .else - mov ip, #OP_INVOKE_DIRECT_RANGE - .endif - GOTO_OPCODE_BASE(r1,ip) @ execute it - -/* continuation for OP_IGET_VOLATILE_JUMBO */ - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IGET_VOLATILE_JUMBO_resolved: - cmp r0, #0 @ resolution unsuccessful? - beq common_exceptionThrown @ yes, throw exception - @ fall through to OP_IGET_VOLATILE_JUMBO_finish - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IGET_VOLATILE_JUMBO_finish: - @bl common_squeak0 - cmp r9, #0 @ check object for null - ldr r3, [r0, #offInstField_byteOffset] @ r3<- byte offset of field - beq common_errNullObject @ object was null - ldr r0, [r9, r3] @ r0<- obj.field (8/16/32 bits) - SMP_DMB @ acquiring load - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(5) @ advance rPC, load rINST - SET_VREG(r0, r2) @ fp[BBBB]<- r0 - GET_INST_OPCODE(ip) @ extract opcode from rINST - GOTO_OPCODE(ip) @ jump to next instruction - -/* continuation for OP_IGET_WIDE_VOLATILE_JUMBO */ - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IGET_WIDE_VOLATILE_JUMBO_resolved: - cmp r0, #0 @ resolution unsuccessful? - beq common_exceptionThrown @ yes, throw exception - @ fall through to OP_IGET_WIDE_VOLATILE_JUMBO_finish - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IGET_WIDE_VOLATILE_JUMBO_finish: - cmp r9, #0 @ check object for null - ldr r3, [r0, #offInstField_byteOffset] @ r3<- byte offset of field - beq common_errNullObject @ object was null - .if 1 - add r0, r9, r3 @ r0<- address of field - bl dvmQuasiAtomicRead64 @ r0/r1<- contents of field - .else - ldrd r0, [r9, r3] @ r0/r1<- obj.field (64-bit align ok) - .endif - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(5) @ advance rPC, load rINST - add r3, rFP, r2, lsl #2 @ r3<- &fp[BBBB] - GET_INST_OPCODE(ip) @ extract opcode from rINST - stmia r3, {r0-r1} @ fp[BBBB]<- r0/r1 - GOTO_OPCODE(ip) @ jump to next instruction - -/* continuation for OP_IGET_OBJECT_VOLATILE_JUMBO */ - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IGET_OBJECT_VOLATILE_JUMBO_resolved: - cmp r0, #0 @ resolution unsuccessful? - beq common_exceptionThrown @ yes, throw exception - @ fall through to OP_IGET_OBJECT_VOLATILE_JUMBO_finish - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IGET_OBJECT_VOLATILE_JUMBO_finish: - @bl common_squeak0 - cmp r9, #0 @ check object for null - ldr r3, [r0, #offInstField_byteOffset] @ r3<- byte offset of field - beq common_errNullObject @ object was null - ldr r0, [r9, r3] @ r0<- obj.field (8/16/32 bits) - SMP_DMB @ acquiring load - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(5) @ advance rPC, load rINST - SET_VREG(r0, r2) @ fp[BBBB]<- r0 - GET_INST_OPCODE(ip) @ extract opcode from rINST - GOTO_OPCODE(ip) @ jump to next instruction - -/* continuation for OP_IPUT_VOLATILE_JUMBO */ - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IPUT_VOLATILE_JUMBO_resolved: - cmp r0, #0 @ resolution unsuccessful? - beq common_exceptionThrown @ yes, throw exception - @ fall through to OP_IPUT_VOLATILE_JUMBO_finish - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IPUT_VOLATILE_JUMBO_finish: - @bl common_squeak0 - ldr r3, [r0, #offInstField_byteOffset] @ r3<- byte offset of field - FETCH(r1, 3) @ r1<- BBBB - cmp r9, #0 @ check object for null - GET_VREG(r0, r1) @ r0<- fp[BBBB] - beq common_errNullObject @ object was null - FETCH_ADVANCE_INST(5) @ advance rPC, load rINST - GET_INST_OPCODE(ip) @ extract opcode from rINST - SMP_DMB_ST @ releasing store - str r0, [r9, r3] @ obj.field (8/16/32 bits)<- r0 - SMP_DMB - GOTO_OPCODE(ip) @ jump to next instruction - -/* continuation for OP_IPUT_WIDE_VOLATILE_JUMBO */ - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IPUT_WIDE_VOLATILE_JUMBO_resolved: - cmp r0, #0 @ resolution unsuccessful? - beq common_exceptionThrown @ yes, throw exception - @ fall through to OP_IPUT_WIDE_VOLATILE_JUMBO_finish - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IPUT_WIDE_VOLATILE_JUMBO_finish: - cmp r9, #0 @ check object for null - FETCH(r2, 3) @ r1<- BBBB - ldr r3, [r0, #offInstField_byteOffset] @ r3<- byte offset of field - add r2, rFP, r2, lsl #2 @ r3<- &fp[BBBB] - beq common_errNullObject @ object was null - FETCH_ADVANCE_INST(5) @ advance rPC, load rINST - ldmia r2, {r0-r1} @ r0/r1<- fp[BBBB] - GET_INST_OPCODE(r10) @ extract opcode from rINST - .if 1 - add r2, r9, r3 @ r2<- target address - bl dvmQuasiAtomicSwap64Sync @ stores r0/r1 into addr r2 - .else - strd r0, [r9, r3] @ obj.field (64 bits, aligned)<- r0/r1 - .endif - GOTO_OPCODE(r10) @ jump to next instruction - -/* continuation for OP_IPUT_OBJECT_VOLATILE_JUMBO */ - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IPUT_OBJECT_VOLATILE_JUMBO_resolved: - cmp r0, #0 @ resolution unsuccessful? - beq common_exceptionThrown @ yes, throw exception - @ fall through to OP_IPUT_OBJECT_VOLATILE_JUMBO_finish - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IPUT_OBJECT_VOLATILE_JUMBO_finish: - @bl common_squeak0 - ldr r3, [r0, #offInstField_byteOffset] @ r3<- byte offset of field - FETCH(r1, 3) @ r1<- BBBB - cmp r9, #0 @ check object for null - GET_VREG(r0, r1) @ r0<- fp[BBBB] - ldr r2, [rSELF, #offThread_cardTable] @ r2<- card table base - beq common_errNullObject @ object was null - FETCH_ADVANCE_INST(5) @ advance rPC, load rINST - GET_INST_OPCODE(ip) @ extract opcode from rINST - SMP_DMB_ST @ releasing store - str r0, [r9, r3] @ obj.field (32 bits)<- r0 - SMP_DMB - cmp r0, #0 @ stored a null reference? - strneb r2, [r2, r9, lsr #GC_CARD_SHIFT] @ mark card if not - GOTO_OPCODE(ip) @ jump to next instruction - -/* continuation for OP_SGET_VOLATILE_JUMBO */ - - /* - * Continuation if the field has not yet been resolved. - * r1: AAAAAAAA field ref - * r10: dvmDex->pResFields - */ -.LOP_SGET_VOLATILE_JUMBO_resolve: - ldr r2, [rSELF, #offThread_method] @ r2<- current method -#if defined(WITH_JIT) - add r10, r10, r1, lsl #2 @ r10<- &dvmDex->pResFields[field] -#endif - EXPORT_PC() @ resolve() could throw, so export now - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveStaticField @ r0<- resolved StaticField ptr - cmp r0, #0 @ success? - beq common_exceptionThrown @ no, handle exception -#if defined(WITH_JIT) - /* - * If the JIT is actively building a trace we need to make sure - * that the field is fully resolved before including this instruction. - */ - bl common_verifyField -#endif - b .LOP_SGET_VOLATILE_JUMBO_finish @ resume - -/* continuation for OP_SGET_WIDE_VOLATILE_JUMBO */ - - /* - * Continuation if the field has not yet been resolved. - * r1: AAAAAAAA field ref - * - * Returns StaticField pointer in r0. - */ -.LOP_SGET_WIDE_VOLATILE_JUMBO_resolve: - ldr r2, [rSELF, #offThread_method] @ r2<- current method - EXPORT_PC() @ resolve() could throw, so export now - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveStaticField @ r0<- resolved StaticField ptr - cmp r0, #0 @ success? - bne .LOP_SGET_WIDE_VOLATILE_JUMBO_finish @ yes, finish - b common_exceptionThrown @ no, handle exception - -/* continuation for OP_SGET_OBJECT_VOLATILE_JUMBO */ - - /* - * Continuation if the field has not yet been resolved. - * r1: AAAAAAAA field ref - * r10: dvmDex->pResFields - */ -.LOP_SGET_OBJECT_VOLATILE_JUMBO_resolve: - ldr r2, [rSELF, #offThread_method] @ r2<- current method -#if defined(WITH_JIT) - add r10, r10, r1, lsl #2 @ r10<- &dvmDex->pResFields[field] -#endif - EXPORT_PC() @ resolve() could throw, so export now - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveStaticField @ r0<- resolved StaticField ptr - cmp r0, #0 @ success? - beq common_exceptionThrown @ no, handle exception -#if defined(WITH_JIT) - /* - * If the JIT is actively building a trace we need to make sure - * that the field is fully resolved before including this instruction. - */ - bl common_verifyField -#endif - b .LOP_SGET_OBJECT_VOLATILE_JUMBO_finish @ resume - -/* continuation for OP_SPUT_VOLATILE_JUMBO */ - - /* - * Continuation if the field has not yet been resolved. - * r1: AAAAAAAA field ref - * r10: dvmDex->pResFields - */ -.LOP_SPUT_VOLATILE_JUMBO_resolve: - ldr r2, [rSELF, #offThread_method] @ r2<- current method -#if defined(WITH_JIT) - add r10, r10, r1, lsl #2 @ r10<- &dvmDex->pResFields[field] -#endif - EXPORT_PC() @ resolve() could throw, so export now - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveStaticField @ r0<- resolved StaticField ptr - cmp r0, #0 @ success? - beq common_exceptionThrown @ no, handle exception -#if defined(WITH_JIT) - /* - * If the JIT is actively building a trace we need to make sure - * that the field is fully resolved before including this instruction. - */ - bl common_verifyField -#endif - b .LOP_SPUT_VOLATILE_JUMBO_finish @ resume - -/* continuation for OP_SPUT_WIDE_VOLATILE_JUMBO */ - - /* - * Continuation if the field has not yet been resolved. - * r1: AAAAAAAA field ref - * r9: &fp[BBBB] - * r10: dvmDex->pResFields - * - * Returns StaticField pointer in r2. - */ -.LOP_SPUT_WIDE_VOLATILE_JUMBO_resolve: - ldr r2, [rSELF, #offThread_method] @ r2<- current method -#if defined(WITH_JIT) - add r10, r10, r1, lsl #2 @ r10<- &dvmDex->pResFields[field] -#endif - EXPORT_PC() @ resolve() could throw, so export now - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveStaticField @ r0<- resolved StaticField ptr - cmp r0, #0 @ success? - mov r2, r0 @ copy to r2 - beq common_exceptionThrown @ no, handle exception -#if defined(WITH_JIT) - /* - * If the JIT is actively building a trace we need to make sure - * that the field is fully resolved before including this instruction. - */ - bl common_verifyField -#endif - b .LOP_SPUT_WIDE_VOLATILE_JUMBO_finish @ resume - -/* continuation for OP_SPUT_OBJECT_VOLATILE_JUMBO */ - - -.LOP_SPUT_OBJECT_VOLATILE_JUMBO_end: - str r1, [r0, #offStaticField_value] @ field<- vBBBB - SMP_DMB - cmp r1, #0 @ stored a null object? - strneb r2, [r2, r9, lsr #GC_CARD_SHIFT] @ mark card based on obj head - GOTO_OPCODE(ip) @ jump to next instruction - - /* Continuation if the field has not yet been resolved. - * r1: AAAAaaaa field ref - * r10: dvmDex->pResFields - */ -.LOP_SPUT_OBJECT_VOLATILE_JUMBO_resolve: - ldr r2, [rSELF, #offThread_method] @ r9<- current method -#if defined(WITH_JIT) - add r10, r10, r1, lsl #2 @ r10<- &dvmDex->pResFields[field] -#endif - EXPORT_PC() @ resolve() could throw, so export now - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveStaticField @ r0<- resolved StaticField ptr - cmp r0, #0 @ success? - beq common_exceptionThrown @ no, handle exception -#if defined(WITH_JIT) - /* - * If the JIT is actively building a trace we need to make sure - * that the field is fully resolved before including this instruction. - */ - bl common_verifyField -#endif - b .LOP_SPUT_OBJECT_VOLATILE_JUMBO_finish @ resume - - .size dvmAsmSisterStart, .-dvmAsmSisterStart .global dvmAsmSisterEnd dvmAsmSisterEnd: @@ -20321,5449 +15615,7 @@ dvmAsmAltInstructionStart = .L_ALT_OP_NOP /* ------------------------------ */ .balign 64 -.L_ALT_OP_DISPATCH_FF: /* 0xff */ -/* File: armv5te/ALT_OP_DISPATCH_FF.S */ -/* - * Unlike other alt stubs, we don't want to call dvmCheckBefore() here. - * Instead, just treat this as a trampoline to reach the real alt - * handler (which will do the dvmCheckBefore() call. - */ - mov ip, rINST, lsr #8 @ ip<- extended opcode - add ip, ip, #256 @ add offset for extended opcodes - GOTO_OPCODE(ip) @ go to proper extended handler - - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_CONST_CLASS_JUMBO: /* 0x100 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (256 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_CHECK_CAST_JUMBO: /* 0x101 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (257 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_INSTANCE_OF_JUMBO: /* 0x102 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (258 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_NEW_INSTANCE_JUMBO: /* 0x103 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (259 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_NEW_ARRAY_JUMBO: /* 0x104 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (260 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_FILLED_NEW_ARRAY_JUMBO: /* 0x105 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (261 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_IGET_JUMBO: /* 0x106 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (262 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_IGET_WIDE_JUMBO: /* 0x107 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (263 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_IGET_OBJECT_JUMBO: /* 0x108 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (264 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_IGET_BOOLEAN_JUMBO: /* 0x109 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (265 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_IGET_BYTE_JUMBO: /* 0x10a */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (266 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_IGET_CHAR_JUMBO: /* 0x10b */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (267 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_IGET_SHORT_JUMBO: /* 0x10c */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (268 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_IPUT_JUMBO: /* 0x10d */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (269 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_IPUT_WIDE_JUMBO: /* 0x10e */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (270 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_IPUT_OBJECT_JUMBO: /* 0x10f */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (271 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_IPUT_BOOLEAN_JUMBO: /* 0x110 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (272 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_IPUT_BYTE_JUMBO: /* 0x111 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (273 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_IPUT_CHAR_JUMBO: /* 0x112 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (274 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_IPUT_SHORT_JUMBO: /* 0x113 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (275 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_SGET_JUMBO: /* 0x114 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (276 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_SGET_WIDE_JUMBO: /* 0x115 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (277 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_SGET_OBJECT_JUMBO: /* 0x116 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (278 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_SGET_BOOLEAN_JUMBO: /* 0x117 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (279 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_SGET_BYTE_JUMBO: /* 0x118 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (280 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_SGET_CHAR_JUMBO: /* 0x119 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (281 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_SGET_SHORT_JUMBO: /* 0x11a */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (282 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_SPUT_JUMBO: /* 0x11b */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (283 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_SPUT_WIDE_JUMBO: /* 0x11c */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (284 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_SPUT_OBJECT_JUMBO: /* 0x11d */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (285 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_SPUT_BOOLEAN_JUMBO: /* 0x11e */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (286 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_SPUT_BYTE_JUMBO: /* 0x11f */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (287 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_SPUT_CHAR_JUMBO: /* 0x120 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (288 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_SPUT_SHORT_JUMBO: /* 0x121 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (289 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_INVOKE_VIRTUAL_JUMBO: /* 0x122 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (290 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_INVOKE_SUPER_JUMBO: /* 0x123 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (291 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_INVOKE_DIRECT_JUMBO: /* 0x124 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (292 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_INVOKE_STATIC_JUMBO: /* 0x125 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (293 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_INVOKE_INTERFACE_JUMBO: /* 0x126 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (294 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_27FF: /* 0x127 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (295 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_28FF: /* 0x128 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (296 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_29FF: /* 0x129 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (297 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_2AFF: /* 0x12a */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (298 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_2BFF: /* 0x12b */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (299 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_2CFF: /* 0x12c */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (300 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_2DFF: /* 0x12d */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (301 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_2EFF: /* 0x12e */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (302 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_2FFF: /* 0x12f */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (303 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_30FF: /* 0x130 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (304 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_31FF: /* 0x131 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (305 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_32FF: /* 0x132 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (306 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_33FF: /* 0x133 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (307 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_34FF: /* 0x134 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (308 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_35FF: /* 0x135 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (309 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_36FF: /* 0x136 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (310 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_37FF: /* 0x137 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (311 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_38FF: /* 0x138 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (312 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_39FF: /* 0x139 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (313 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_3AFF: /* 0x13a */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (314 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_3BFF: /* 0x13b */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (315 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_3CFF: /* 0x13c */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (316 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_3DFF: /* 0x13d */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (317 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_3EFF: /* 0x13e */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (318 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_3FFF: /* 0x13f */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (319 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_40FF: /* 0x140 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (320 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_41FF: /* 0x141 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (321 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_42FF: /* 0x142 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (322 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_43FF: /* 0x143 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (323 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_44FF: /* 0x144 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (324 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_45FF: /* 0x145 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (325 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_46FF: /* 0x146 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (326 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_47FF: /* 0x147 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (327 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_48FF: /* 0x148 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (328 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_49FF: /* 0x149 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (329 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_4AFF: /* 0x14a */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (330 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_4BFF: /* 0x14b */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (331 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_4CFF: /* 0x14c */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (332 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_4DFF: /* 0x14d */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (333 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_4EFF: /* 0x14e */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (334 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_4FFF: /* 0x14f */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (335 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_50FF: /* 0x150 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (336 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_51FF: /* 0x151 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (337 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_52FF: /* 0x152 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (338 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_53FF: /* 0x153 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (339 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_54FF: /* 0x154 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (340 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_55FF: /* 0x155 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (341 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_56FF: /* 0x156 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (342 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_57FF: /* 0x157 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (343 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_58FF: /* 0x158 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (344 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_59FF: /* 0x159 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (345 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_5AFF: /* 0x15a */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (346 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_5BFF: /* 0x15b */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (347 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_5CFF: /* 0x15c */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (348 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_5DFF: /* 0x15d */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (349 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_5EFF: /* 0x15e */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (350 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_5FFF: /* 0x15f */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (351 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_60FF: /* 0x160 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (352 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_61FF: /* 0x161 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (353 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_62FF: /* 0x162 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (354 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_63FF: /* 0x163 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (355 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_64FF: /* 0x164 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (356 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_65FF: /* 0x165 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (357 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_66FF: /* 0x166 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (358 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_67FF: /* 0x167 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (359 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_68FF: /* 0x168 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (360 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_69FF: /* 0x169 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (361 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_6AFF: /* 0x16a */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (362 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_6BFF: /* 0x16b */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (363 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_6CFF: /* 0x16c */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (364 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_6DFF: /* 0x16d */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (365 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_6EFF: /* 0x16e */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (366 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_6FFF: /* 0x16f */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (367 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_70FF: /* 0x170 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (368 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_71FF: /* 0x171 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (369 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_72FF: /* 0x172 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (370 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_73FF: /* 0x173 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (371 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_74FF: /* 0x174 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (372 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_75FF: /* 0x175 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (373 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_76FF: /* 0x176 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (374 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_77FF: /* 0x177 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (375 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_78FF: /* 0x178 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (376 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_79FF: /* 0x179 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (377 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_7AFF: /* 0x17a */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (378 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_7BFF: /* 0x17b */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (379 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_7CFF: /* 0x17c */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (380 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_7DFF: /* 0x17d */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (381 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_7EFF: /* 0x17e */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (382 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_7FFF: /* 0x17f */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (383 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_80FF: /* 0x180 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (384 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_81FF: /* 0x181 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (385 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_82FF: /* 0x182 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (386 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_83FF: /* 0x183 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (387 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_84FF: /* 0x184 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (388 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_85FF: /* 0x185 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (389 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_86FF: /* 0x186 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (390 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_87FF: /* 0x187 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (391 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_88FF: /* 0x188 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (392 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_89FF: /* 0x189 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (393 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_8AFF: /* 0x18a */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (394 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_8BFF: /* 0x18b */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (395 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_8CFF: /* 0x18c */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (396 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_8DFF: /* 0x18d */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (397 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_8EFF: /* 0x18e */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (398 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_8FFF: /* 0x18f */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (399 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_90FF: /* 0x190 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (400 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_91FF: /* 0x191 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (401 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_92FF: /* 0x192 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (402 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_93FF: /* 0x193 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (403 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_94FF: /* 0x194 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (404 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_95FF: /* 0x195 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (405 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_96FF: /* 0x196 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (406 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_97FF: /* 0x197 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (407 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_98FF: /* 0x198 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (408 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_99FF: /* 0x199 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (409 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_9AFF: /* 0x19a */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (410 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_9BFF: /* 0x19b */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (411 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_9CFF: /* 0x19c */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (412 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_9DFF: /* 0x19d */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (413 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_9EFF: /* 0x19e */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (414 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_9FFF: /* 0x19f */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (415 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_A0FF: /* 0x1a0 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (416 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_A1FF: /* 0x1a1 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (417 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_A2FF: /* 0x1a2 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (418 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_A3FF: /* 0x1a3 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (419 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_A4FF: /* 0x1a4 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (420 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_A5FF: /* 0x1a5 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (421 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_A6FF: /* 0x1a6 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (422 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_A7FF: /* 0x1a7 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (423 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_A8FF: /* 0x1a8 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (424 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_A9FF: /* 0x1a9 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (425 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_AAFF: /* 0x1aa */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (426 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_ABFF: /* 0x1ab */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (427 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_ACFF: /* 0x1ac */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (428 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_ADFF: /* 0x1ad */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (429 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_AEFF: /* 0x1ae */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (430 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_AFFF: /* 0x1af */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (431 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_B0FF: /* 0x1b0 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (432 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_B1FF: /* 0x1b1 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (433 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_B2FF: /* 0x1b2 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (434 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_B3FF: /* 0x1b3 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (435 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_B4FF: /* 0x1b4 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (436 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_B5FF: /* 0x1b5 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (437 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_B6FF: /* 0x1b6 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (438 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_B7FF: /* 0x1b7 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (439 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_B8FF: /* 0x1b8 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (440 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_B9FF: /* 0x1b9 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (441 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_BAFF: /* 0x1ba */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (442 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_BBFF: /* 0x1bb */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (443 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_BCFF: /* 0x1bc */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (444 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_BDFF: /* 0x1bd */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (445 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_BEFF: /* 0x1be */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (446 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_BFFF: /* 0x1bf */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (447 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_C0FF: /* 0x1c0 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (448 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_C1FF: /* 0x1c1 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (449 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_C2FF: /* 0x1c2 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (450 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_C3FF: /* 0x1c3 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (451 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_C4FF: /* 0x1c4 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (452 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_C5FF: /* 0x1c5 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (453 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_C6FF: /* 0x1c6 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (454 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_C7FF: /* 0x1c7 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (455 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_C8FF: /* 0x1c8 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (456 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_C9FF: /* 0x1c9 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (457 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_CAFF: /* 0x1ca */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (458 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_CBFF: /* 0x1cb */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (459 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_CCFF: /* 0x1cc */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (460 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_CDFF: /* 0x1cd */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (461 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_CEFF: /* 0x1ce */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (462 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_CFFF: /* 0x1cf */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (463 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_D0FF: /* 0x1d0 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (464 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_D1FF: /* 0x1d1 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (465 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_D2FF: /* 0x1d2 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (466 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_D3FF: /* 0x1d3 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (467 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_D4FF: /* 0x1d4 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (468 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_D5FF: /* 0x1d5 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (469 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_D6FF: /* 0x1d6 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (470 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_D7FF: /* 0x1d7 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (471 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_D8FF: /* 0x1d8 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (472 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_D9FF: /* 0x1d9 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (473 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_DAFF: /* 0x1da */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (474 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_DBFF: /* 0x1db */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (475 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_DCFF: /* 0x1dc */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (476 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_DDFF: /* 0x1dd */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (477 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_DEFF: /* 0x1de */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (478 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_DFFF: /* 0x1df */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (479 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_E0FF: /* 0x1e0 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (480 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_E1FF: /* 0x1e1 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (481 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_E2FF: /* 0x1e2 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (482 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_E3FF: /* 0x1e3 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (483 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_E4FF: /* 0x1e4 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (484 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_E5FF: /* 0x1e5 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (485 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_E6FF: /* 0x1e6 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (486 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_E7FF: /* 0x1e7 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (487 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_E8FF: /* 0x1e8 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (488 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_E9FF: /* 0x1e9 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (489 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_EAFF: /* 0x1ea */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (490 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_EBFF: /* 0x1eb */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (491 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_ECFF: /* 0x1ec */ +.L_ALT_OP_UNUSED_FF: /* 0xff */ /* File: armv5te/alt_stub.S */ /* * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle @@ -25774,444 +15626,7 @@ dvmAsmAltInstructionStart = .L_ALT_OP_NOP * bail to the real handler if breakFlags==0. */ ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (492 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_EDFF: /* 0x1ed */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (493 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_EEFF: /* 0x1ee */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (494 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_EFFF: /* 0x1ef */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (495 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_F0FF: /* 0x1f0 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (496 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_F1FF: /* 0x1f1 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (497 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_INVOKE_OBJECT_INIT_JUMBO: /* 0x1f2 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (498 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_IGET_VOLATILE_JUMBO: /* 0x1f3 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (499 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_IGET_WIDE_VOLATILE_JUMBO: /* 0x1f4 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (500 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_IGET_OBJECT_VOLATILE_JUMBO: /* 0x1f5 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (501 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_IPUT_VOLATILE_JUMBO: /* 0x1f6 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (502 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_IPUT_WIDE_VOLATILE_JUMBO: /* 0x1f7 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (503 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_IPUT_OBJECT_VOLATILE_JUMBO: /* 0x1f8 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (504 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_SGET_VOLATILE_JUMBO: /* 0x1f9 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (505 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_SGET_WIDE_VOLATILE_JUMBO: /* 0x1fa */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (506 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_SGET_OBJECT_VOLATILE_JUMBO: /* 0x1fb */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (507 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_SPUT_VOLATILE_JUMBO: /* 0x1fc */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (508 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_SPUT_WIDE_VOLATILE_JUMBO: /* 0x1fd */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (509 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_SPUT_OBJECT_VOLATILE_JUMBO: /* 0x1fe */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (510 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_THROW_VERIFICATION_ERROR_JUMBO: /* 0x1ff */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (511 * 64) + adrl lr, dvmAsmInstructionStart + (255 * 64) ldr rIBASE, [rSELF, #offThread_curHandlerTable] cmp r3, #0 bxeq lr @ nothing to do - jump to real handler @@ -26694,35 +16109,6 @@ save_callsiteinfo: #endif /* - * Common code for jumbo method invocation. - * NOTE: this adjusts rPC to account for the difference in instruction width. - * As a result, the savedPc in the stack frame will not be wholly accurate. So - * long as that is only used for source file line number calculations, we're - * okay. - */ -common_invokeMethodJumboNoThis: -#if defined(WITH_JIT) - /* On entry: r0 is "Method* methodToCall */ - mov r9, #0 @ clear "this" -#endif -common_invokeMethodJumbo: - /* On entry: r0 is "Method* methodToCall, r9 is "this" */ -.LinvokeNewJumbo: -#if defined(WITH_JIT) - ldrh r1, [rSELF, #offThread_subMode] - ands r1, #kSubModeJitTraceBuild - blne save_callsiteinfo -#endif - @ prepare to copy args to "outs" area of current frame - add rPC, rPC, #4 @ adjust pc to make return consistent - FETCH(r2, 1) @ r2<- BBBB (arg count) - SAVEAREA_FROM_FP(r10, rFP) @ r10<- stack save area - cmp r2, #0 @ no args? - beq .LinvokeArgsDone @ if no args, skip the rest - FETCH(r1, 2) @ r1<- CCCC - b .LinvokeRangeArgs @ handle args like invoke range - -/* * Common code for method invocation with range. * * On entry: diff --git a/vm/mterp/out/InterpAsm-armv6j.S b/vm/mterp/out/InterpAsm-armv6j.S index 0f765cfbf..4a9a52f47 100644 --- a/vm/mterp/out/InterpAsm-armv6j.S +++ b/vm/mterp/out/InterpAsm-armv6j.S @@ -8022,3126 +8022,12 @@ d2i_doconv: /* ------------------------------ */ .balign 64 -.L_OP_DISPATCH_FF: /* 0xff */ -/* File: armv5te/OP_DISPATCH_FF.S */ - mov ip, rINST, lsr #8 @ ip<- extended opcode - add ip, ip, #256 @ add offset for extended opcodes - GOTO_OPCODE(ip) @ go to proper extended handler - - -/* ------------------------------ */ - .balign 64 -.L_OP_CONST_CLASS_JUMBO: /* 0x100 */ -/* File: armv5te/OP_CONST_CLASS_JUMBO.S */ - /* const-class/jumbo vBBBB, Class@AAAAAAAA */ - FETCH(r0, 1) @ r0<- aaaa (lo) - ldr r2, [rSELF, #offThread_methodClassDex] @ r2<-self>methodClassDex - FETCH(r1, 2) @ r1<- AAAA (hi) - ldr r2, [r2, #offDvmDex_pResClasses] @ r2<- dvmDex->pResClasses - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - FETCH(r9, 3) @ r9<- BBBB - ldr r0, [r2, r1, lsl #2] @ r0<- pResClasses[AAAAaaaa] - cmp r0, #0 @ not yet resolved? - beq .LOP_CONST_CLASS_JUMBO_resolve - FETCH_ADVANCE_INST(4) @ advance rPC, load rINST - GET_INST_OPCODE(ip) @ extract opcode from rINST - SET_VREG(r0, r9) @ vBBBB<- r0 - GOTO_OPCODE(ip) @ jump to next instruction - -/* ------------------------------ */ - .balign 64 -.L_OP_CHECK_CAST_JUMBO: /* 0x101 */ -/* File: armv5te/OP_CHECK_CAST_JUMBO.S */ - /* - * Check to see if a cast from one class to another is allowed. - */ - /* check-cast/jumbo vBBBB, class@AAAAAAAA */ - FETCH(r0, 1) @ r0<- aaaa (lo) - FETCH(r2, 2) @ r2<- AAAA (hi) - FETCH(r3, 3) @ r3<- BBBB - orr r2, r0, r2, lsl #16 @ r2<- AAAAaaaa - GET_VREG(r9, r3) @ r9<- object - ldr r0, [rSELF, #offThread_methodClassDex] @ r0<- pDvmDex - cmp r9, #0 @ is object null? - ldr r0, [r0, #offDvmDex_pResClasses] @ r0<- pDvmDex->pResClasses - beq .LOP_CHECK_CAST_JUMBO_okay @ null obj, cast always succeeds - ldr r1, [r0, r2, lsl #2] @ r1<- resolved class - ldr r0, [r9, #offObject_clazz] @ r0<- obj->clazz - cmp r1, #0 @ have we resolved this before? - beq .LOP_CHECK_CAST_JUMBO_resolve @ not resolved, do it now -.LOP_CHECK_CAST_JUMBO_resolved: - cmp r0, r1 @ same class (trivial success)? - bne .LOP_CHECK_CAST_JUMBO_fullcheck @ no, do full check - b .LOP_CHECK_CAST_JUMBO_okay @ yes, finish up - -/* ------------------------------ */ - .balign 64 -.L_OP_INSTANCE_OF_JUMBO: /* 0x102 */ -/* File: armv5te/OP_INSTANCE_OF_JUMBO.S */ - /* - * Check to see if an object reference is an instance of a class. - * - * Most common situation is a non-null object, being compared against - * an already-resolved class. - * - * TODO: convert most of this into a common subroutine, shared with - * OP_INSTANCE_OF.S. - */ - /* instance-of/jumbo vBBBB, vCCCC, class@AAAAAAAA */ - FETCH(r3, 4) @ r3<- vCCCC - FETCH(r9, 3) @ r9<- vBBBB - GET_VREG(r0, r3) @ r0<- vCCCC (object) - ldr r2, [rSELF, #offThread_methodClassDex] @ r2<- pDvmDex - cmp r0, #0 @ is object null? - beq .LOP_INSTANCE_OF_JUMBO_store @ null obj, not an instance, store r0 - FETCH(r1, 1) @ r1<- aaaa (lo) - FETCH(r3, 2) @ r3<- AAAA (hi) - ldr r2, [r2, #offDvmDex_pResClasses] @ r2<- pDvmDex->pResClasses - orr r3, r1, r3, lsl #16 @ r3<- AAAAaaaa - ldr r1, [r2, r3, lsl #2] @ r1<- resolved class - ldr r0, [r0, #offObject_clazz] @ r0<- obj->clazz - cmp r1, #0 @ have we resolved this before? - beq .LOP_INSTANCE_OF_JUMBO_resolve @ not resolved, do it now - b .LOP_INSTANCE_OF_JUMBO_resolved @ resolved, continue - -/* ------------------------------ */ - .balign 64 -.L_OP_NEW_INSTANCE_JUMBO: /* 0x103 */ -/* File: armv5te/OP_NEW_INSTANCE_JUMBO.S */ - /* - * Create a new instance of a class. - */ - /* new-instance/jumbo vBBBB, class@AAAAAAAA */ - FETCH(r0, 1) @ r0<- aaaa (lo) - FETCH(r1, 2) @ r1<- AAAA (hi) - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- pDvmDex - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - ldr r3, [r3, #offDvmDex_pResClasses] @ r3<- pDvmDex->pResClasses - ldr r0, [r3, r1, lsl #2] @ r0<- resolved class -#if defined(WITH_JIT) - add r10, r3, r1, lsl #2 @ r10<- &resolved_class -#endif - EXPORT_PC() @ req'd for init, resolve, alloc - cmp r0, #0 @ already resolved? - beq .LOP_NEW_INSTANCE_JUMBO_resolve @ no, resolve it now -.LOP_NEW_INSTANCE_JUMBO_resolved: @ r0=class - ldrb r1, [r0, #offClassObject_status] @ r1<- ClassStatus enum - cmp r1, #CLASS_INITIALIZED @ has class been initialized? - bne .LOP_NEW_INSTANCE_JUMBO_needinit @ no, init class now -.LOP_NEW_INSTANCE_JUMBO_initialized: @ r0=class - mov r1, #ALLOC_DONT_TRACK @ flags for alloc call - bl dvmAllocObject @ r0<- new object - b .LOP_NEW_INSTANCE_JUMBO_finish @ continue - -/* ------------------------------ */ - .balign 64 -.L_OP_NEW_ARRAY_JUMBO: /* 0x104 */ -/* File: armv5te/OP_NEW_ARRAY_JUMBO.S */ - /* - * Allocate an array of objects, specified with the array class - * and a count. - * - * The verifier guarantees that this is an array class, so we don't - * check for it here. - */ - /* new-array/jumbo vBBBB, vCCCC, class@AAAAAAAA */ - FETCH(r2, 1) @ r2<- aaaa (lo) - FETCH(r3, 2) @ r3<- AAAA (hi) - FETCH(r0, 4) @ r0<- vCCCC - orr r2, r2, r3, lsl #16 @ r2<- AAAAaaaa - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- pDvmDex - GET_VREG(r1, r0) @ r1<- vCCCC (array length) - ldr r3, [r3, #offDvmDex_pResClasses] @ r3<- pDvmDex->pResClasses - cmp r1, #0 @ check length - ldr r0, [r3, r2, lsl #2] @ r0<- resolved class - bmi common_errNegativeArraySize @ negative length, bail - len in r1 - cmp r0, #0 @ already resolved? - EXPORT_PC() @ req'd for resolve, alloc - bne .LOP_NEW_ARRAY_JUMBO_finish @ resolved, continue - b .LOP_NEW_ARRAY_JUMBO_resolve @ do resolve now - -/* ------------------------------ */ - .balign 64 -.L_OP_FILLED_NEW_ARRAY_JUMBO: /* 0x105 */ -/* File: armv5te/OP_FILLED_NEW_ARRAY_JUMBO.S */ - /* - * Create a new array with elements filled from registers. - * - * TODO: convert most of this into a common subroutine, shared with - * OP_FILLED_NEW_ARRAY.S. - */ - /* filled-new-array/jumbo {vCCCC..v(CCCC+BBBB-1)}, type@AAAAAAAA */ - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- pDvmDex - FETCH(r0, 1) @ r0<- aaaa (lo) - FETCH(r1, 2) @ r1<- AAAA (hi) - ldr r3, [r3, #offDvmDex_pResClasses] @ r3<- pDvmDex->pResClasses - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - ldr r0, [r3, r1, lsl #2] @ r0<- resolved class - EXPORT_PC() @ need for resolve and alloc - cmp r0, #0 @ already resolved? - bne .LOP_FILLED_NEW_ARRAY_JUMBO_continue @ yes, continue on -8: ldr r3, [rSELF, #offThread_method] @ r3<- self->method - mov r2, #0 @ r2<- false - ldr r0, [r3, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveClass @ r0<- call(clazz, ref) - cmp r0, #0 @ got null? - beq common_exceptionThrown @ yes, handle exception - b .LOP_FILLED_NEW_ARRAY_JUMBO_continue - -/* ------------------------------ */ - .balign 64 -.L_OP_IGET_JUMBO: /* 0x106 */ -/* File: armv5te/OP_IGET_JUMBO.S */ - /* - * Jumbo 32-bit instance field get. - * - * for: iget/jumbo, iget-object/jumbo, iget-boolean/jumbo, iget-byte/jumbo, - * iget-char/jumbo, iget-short/jumbo - */ - /* exop vBBBB, vCCCC, field@AAAAAAAA */ - FETCH(r1, 1) @ r1<- aaaa (lo) - FETCH(r2, 2) @ r2<- AAAA (hi) - FETCH(r0, 4) @ r0<- CCCC - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- DvmDex - orr r1, r1, r2, lsl #16 @ r1<- AAAAaaaa - ldr r2, [r3, #offDvmDex_pResFields] @ r2<- pDvmDex->pResFields - GET_VREG(r9, r0) @ r9<- fp[CCCC], the object pointer - ldr r0, [r2, r1, lsl #2] @ r0<- resolved InstField ptr - cmp r0, #0 @ is resolved entry null? - bne .LOP_IGET_JUMBO_finish @ no, already resolved -8: ldr r2, [rSELF, #offThread_method] @ r2<- current method - EXPORT_PC() @ resolve() could throw - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveInstField @ r0<- resolved InstField ptr - b .LOP_IGET_JUMBO_resolved @ resolved, continue - -/* ------------------------------ */ - .balign 64 -.L_OP_IGET_WIDE_JUMBO: /* 0x107 */ -/* File: armv5te/OP_IGET_WIDE_JUMBO.S */ - /* - * Jumbo 64-bit instance field get. - */ - /* iget-wide/jumbo vBBBB, vCCCC, field@AAAAAAAA */ - FETCH(r1, 1) @ r1<- aaaa (lo) - FETCH(r2, 2) @ r2<- AAAA (hi) - FETCH(r0, 4) @ r0<- CCCC - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- DvmDex - orr r1, r1, r2, lsl #16 @ r1<- AAAAaaaa - ldr r2, [r3, #offDvmDex_pResFields] @ r2<- pResFields - GET_VREG(r9, r0) @ r9<- fp[CCCC], the object pointer - ldr r0, [r2, r1, lsl #2] @ r0<- resolved InstField ptr - cmp r0, #0 @ is resolved entry null? - bne .LOP_IGET_WIDE_JUMBO_finish @ no, already resolved - ldr r2, [rSELF, #offThread_method] @ r2<- current method - EXPORT_PC() @ resolve() could throw - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveInstField @ r0<- resolved InstField ptr - b .LOP_IGET_WIDE_JUMBO_resolved @ resolved, continue - -/* ------------------------------ */ - .balign 64 -.L_OP_IGET_OBJECT_JUMBO: /* 0x108 */ -/* File: armv5te/OP_IGET_OBJECT_JUMBO.S */ -/* File: armv5te/OP_IGET_JUMBO.S */ - /* - * Jumbo 32-bit instance field get. - * - * for: iget/jumbo, iget-object/jumbo, iget-boolean/jumbo, iget-byte/jumbo, - * iget-char/jumbo, iget-short/jumbo - */ - /* exop vBBBB, vCCCC, field@AAAAAAAA */ - FETCH(r1, 1) @ r1<- aaaa (lo) - FETCH(r2, 2) @ r2<- AAAA (hi) - FETCH(r0, 4) @ r0<- CCCC - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- DvmDex - orr r1, r1, r2, lsl #16 @ r1<- AAAAaaaa - ldr r2, [r3, #offDvmDex_pResFields] @ r2<- pDvmDex->pResFields - GET_VREG(r9, r0) @ r9<- fp[CCCC], the object pointer - ldr r0, [r2, r1, lsl #2] @ r0<- resolved InstField ptr - cmp r0, #0 @ is resolved entry null? - bne .LOP_IGET_OBJECT_JUMBO_finish @ no, already resolved -8: ldr r2, [rSELF, #offThread_method] @ r2<- current method - EXPORT_PC() @ resolve() could throw - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveInstField @ r0<- resolved InstField ptr - b .LOP_IGET_OBJECT_JUMBO_resolved @ resolved, continue - - -/* ------------------------------ */ - .balign 64 -.L_OP_IGET_BOOLEAN_JUMBO: /* 0x109 */ -/* File: armv5te/OP_IGET_BOOLEAN_JUMBO.S */ -@include "armv5te/OP_IGET_JUMBO.S" { "load":"ldrb", "sqnum":"1" } -/* File: armv5te/OP_IGET_JUMBO.S */ - /* - * Jumbo 32-bit instance field get. - * - * for: iget/jumbo, iget-object/jumbo, iget-boolean/jumbo, iget-byte/jumbo, - * iget-char/jumbo, iget-short/jumbo - */ - /* exop vBBBB, vCCCC, field@AAAAAAAA */ - FETCH(r1, 1) @ r1<- aaaa (lo) - FETCH(r2, 2) @ r2<- AAAA (hi) - FETCH(r0, 4) @ r0<- CCCC - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- DvmDex - orr r1, r1, r2, lsl #16 @ r1<- AAAAaaaa - ldr r2, [r3, #offDvmDex_pResFields] @ r2<- pDvmDex->pResFields - GET_VREG(r9, r0) @ r9<- fp[CCCC], the object pointer - ldr r0, [r2, r1, lsl #2] @ r0<- resolved InstField ptr - cmp r0, #0 @ is resolved entry null? - bne .LOP_IGET_BOOLEAN_JUMBO_finish @ no, already resolved -8: ldr r2, [rSELF, #offThread_method] @ r2<- current method - EXPORT_PC() @ resolve() could throw - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveInstField @ r0<- resolved InstField ptr - b .LOP_IGET_BOOLEAN_JUMBO_resolved @ resolved, continue - - -/* ------------------------------ */ - .balign 64 -.L_OP_IGET_BYTE_JUMBO: /* 0x10a */ -/* File: armv5te/OP_IGET_BYTE_JUMBO.S */ -@include "armv5te/OP_IGET_JUMBO.S" { "load":"ldrsb", "sqnum":"2" } -/* File: armv5te/OP_IGET_JUMBO.S */ - /* - * Jumbo 32-bit instance field get. - * - * for: iget/jumbo, iget-object/jumbo, iget-boolean/jumbo, iget-byte/jumbo, - * iget-char/jumbo, iget-short/jumbo - */ - /* exop vBBBB, vCCCC, field@AAAAAAAA */ - FETCH(r1, 1) @ r1<- aaaa (lo) - FETCH(r2, 2) @ r2<- AAAA (hi) - FETCH(r0, 4) @ r0<- CCCC - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- DvmDex - orr r1, r1, r2, lsl #16 @ r1<- AAAAaaaa - ldr r2, [r3, #offDvmDex_pResFields] @ r2<- pDvmDex->pResFields - GET_VREG(r9, r0) @ r9<- fp[CCCC], the object pointer - ldr r0, [r2, r1, lsl #2] @ r0<- resolved InstField ptr - cmp r0, #0 @ is resolved entry null? - bne .LOP_IGET_BYTE_JUMBO_finish @ no, already resolved -8: ldr r2, [rSELF, #offThread_method] @ r2<- current method - EXPORT_PC() @ resolve() could throw - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveInstField @ r0<- resolved InstField ptr - b .LOP_IGET_BYTE_JUMBO_resolved @ resolved, continue - - -/* ------------------------------ */ - .balign 64 -.L_OP_IGET_CHAR_JUMBO: /* 0x10b */ -/* File: armv5te/OP_IGET_CHAR_JUMBO.S */ -@include "armv5te/OP_IGET_JUMBO.S" { "load":"ldrh", "sqnum":"3" } -/* File: armv5te/OP_IGET_JUMBO.S */ - /* - * Jumbo 32-bit instance field get. - * - * for: iget/jumbo, iget-object/jumbo, iget-boolean/jumbo, iget-byte/jumbo, - * iget-char/jumbo, iget-short/jumbo - */ - /* exop vBBBB, vCCCC, field@AAAAAAAA */ - FETCH(r1, 1) @ r1<- aaaa (lo) - FETCH(r2, 2) @ r2<- AAAA (hi) - FETCH(r0, 4) @ r0<- CCCC - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- DvmDex - orr r1, r1, r2, lsl #16 @ r1<- AAAAaaaa - ldr r2, [r3, #offDvmDex_pResFields] @ r2<- pDvmDex->pResFields - GET_VREG(r9, r0) @ r9<- fp[CCCC], the object pointer - ldr r0, [r2, r1, lsl #2] @ r0<- resolved InstField ptr - cmp r0, #0 @ is resolved entry null? - bne .LOP_IGET_CHAR_JUMBO_finish @ no, already resolved -8: ldr r2, [rSELF, #offThread_method] @ r2<- current method - EXPORT_PC() @ resolve() could throw - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveInstField @ r0<- resolved InstField ptr - b .LOP_IGET_CHAR_JUMBO_resolved @ resolved, continue - - -/* ------------------------------ */ - .balign 64 -.L_OP_IGET_SHORT_JUMBO: /* 0x10c */ -/* File: armv5te/OP_IGET_SHORT_JUMBO.S */ -@include "armv5te/OP_IGET_JUMBO.S" { "load":"ldrsh", "sqnum":"4" } -/* File: armv5te/OP_IGET_JUMBO.S */ - /* - * Jumbo 32-bit instance field get. - * - * for: iget/jumbo, iget-object/jumbo, iget-boolean/jumbo, iget-byte/jumbo, - * iget-char/jumbo, iget-short/jumbo - */ - /* exop vBBBB, vCCCC, field@AAAAAAAA */ - FETCH(r1, 1) @ r1<- aaaa (lo) - FETCH(r2, 2) @ r2<- AAAA (hi) - FETCH(r0, 4) @ r0<- CCCC - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- DvmDex - orr r1, r1, r2, lsl #16 @ r1<- AAAAaaaa - ldr r2, [r3, #offDvmDex_pResFields] @ r2<- pDvmDex->pResFields - GET_VREG(r9, r0) @ r9<- fp[CCCC], the object pointer - ldr r0, [r2, r1, lsl #2] @ r0<- resolved InstField ptr - cmp r0, #0 @ is resolved entry null? - bne .LOP_IGET_SHORT_JUMBO_finish @ no, already resolved -8: ldr r2, [rSELF, #offThread_method] @ r2<- current method - EXPORT_PC() @ resolve() could throw - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveInstField @ r0<- resolved InstField ptr - b .LOP_IGET_SHORT_JUMBO_resolved @ resolved, continue - - -/* ------------------------------ */ - .balign 64 -.L_OP_IPUT_JUMBO: /* 0x10d */ -/* File: armv5te/OP_IPUT_JUMBO.S */ - /* - * Jumbo 32-bit instance field put. - * - * for: iput/jumbo, iput-boolean/jumbo, iput-byte/jumbo, iput-char/jumbo, - * iput-short/jumbo - */ - /* exop vBBBB, vCCCC, field@AAAAAAAA */ - FETCH(r1, 1) @ r1<- aaaa (lo) - FETCH(r2, 2) @ r2<- AAAA (hi) - FETCH(r0, 4) @ r0<- CCCC - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- DvmDex - orr r1, r1, r2, lsl #16 @ r1<- AAAAaaaa - ldr r2, [r3, #offDvmDex_pResFields] @ r2<- pDvmDex->pResFields - GET_VREG(r9, r0) @ r9<- fp[CCCC], the object pointer - ldr r0, [r2, r1, lsl #2] @ r0<- resolved InstField ptr - cmp r0, #0 @ is resolved entry null? - bne .LOP_IPUT_JUMBO_finish @ no, already resolved -8: ldr r2, [rSELF, #offThread_method] @ r2<- current method - EXPORT_PC() @ resolve() could throw - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveInstField @ r0<- resolved InstField ptr - b .LOP_IPUT_JUMBO_resolved @ resolved, continue - -/* ------------------------------ */ - .balign 64 -.L_OP_IPUT_WIDE_JUMBO: /* 0x10e */ -/* File: armv5te/OP_IPUT_WIDE_JUMBO.S */ - /* iput-wide/jumbo vBBBB, vCCCC, field@AAAAAAAA */ - FETCH(r1, 1) @ r1<- aaaa (lo) - FETCH(r2, 2) @ r2<- AAAA (hi) - FETCH(r0, 4) @ r0<- CCCC - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- DvmDex - orr r1, r1, r2, lsl #16 @ r1<- AAAAaaaa - ldr r2, [r3, #offDvmDex_pResFields] @ r2<- pResFields - GET_VREG(r9, r0) @ r9<- fp[B], the object pointer - ldr r0, [r2, r1, lsl #2] @ r0<- resolved InstField ptr - cmp r0, #0 @ is resolved entry null? - bne .LOP_IPUT_WIDE_JUMBO_finish @ no, already resolved -8: ldr r2, [rSELF, #offThread_method] @ r2<- current method - EXPORT_PC() @ resolve() could throw - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveInstField @ r0<- resolved InstField ptr - b .LOP_IPUT_WIDE_JUMBO_resolved @ resolved, continue - -/* ------------------------------ */ - .balign 64 -.L_OP_IPUT_OBJECT_JUMBO: /* 0x10f */ -/* File: armv5te/OP_IPUT_OBJECT_JUMBO.S */ - /* - * Jumbo 32-bit instance field put. - */ - /* iput-object/jumbo vBBBB, vCCCC, field@AAAAAAAA */ - FETCH(r1, 1) @ r1<- aaaa (lo) - FETCH(r2, 2) @ r2<- AAAA (hi) - FETCH(r0, 4) @ r0<- CCCC - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- DvmDex - orr r1, r1, r2, lsl #16 @ r1<- AAAAaaaa - ldr r2, [r3, #offDvmDex_pResFields] @ r2<- pDvmDex->pResFields - GET_VREG(r9, r0) @ r9<- fp[CCCC], the object pointer - ldr r0, [r2, r1, lsl #2] @ r0<- resolved InstField ptr - cmp r0, #0 @ is resolved entry null? - bne .LOP_IPUT_OBJECT_JUMBO_finish @ no, already resolved -8: ldr r2, [rSELF, #offThread_method] @ r2<- current method - EXPORT_PC() @ resolve() could throw - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveInstField @ r0<- resolved InstField ptr - b .LOP_IPUT_OBJECT_JUMBO_resolved @ resolved, continue - -/* ------------------------------ */ - .balign 64 -.L_OP_IPUT_BOOLEAN_JUMBO: /* 0x110 */ -/* File: armv5te/OP_IPUT_BOOLEAN_JUMBO.S */ -@include "armv5te/OP_IPUT_JUMBO.S" { "store":"strb", "sqnum":"1" } -/* File: armv5te/OP_IPUT_JUMBO.S */ - /* - * Jumbo 32-bit instance field put. - * - * for: iput/jumbo, iput-boolean/jumbo, iput-byte/jumbo, iput-char/jumbo, - * iput-short/jumbo - */ - /* exop vBBBB, vCCCC, field@AAAAAAAA */ - FETCH(r1, 1) @ r1<- aaaa (lo) - FETCH(r2, 2) @ r2<- AAAA (hi) - FETCH(r0, 4) @ r0<- CCCC - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- DvmDex - orr r1, r1, r2, lsl #16 @ r1<- AAAAaaaa - ldr r2, [r3, #offDvmDex_pResFields] @ r2<- pDvmDex->pResFields - GET_VREG(r9, r0) @ r9<- fp[CCCC], the object pointer - ldr r0, [r2, r1, lsl #2] @ r0<- resolved InstField ptr - cmp r0, #0 @ is resolved entry null? - bne .LOP_IPUT_BOOLEAN_JUMBO_finish @ no, already resolved -8: ldr r2, [rSELF, #offThread_method] @ r2<- current method - EXPORT_PC() @ resolve() could throw - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveInstField @ r0<- resolved InstField ptr - b .LOP_IPUT_BOOLEAN_JUMBO_resolved @ resolved, continue - - -/* ------------------------------ */ - .balign 64 -.L_OP_IPUT_BYTE_JUMBO: /* 0x111 */ -/* File: armv5te/OP_IPUT_BYTE_JUMBO.S */ -@include "armv5te/OP_IPUT_JUMBO.S" { "store":"strb", "sqnum":"2" } -/* File: armv5te/OP_IPUT_JUMBO.S */ - /* - * Jumbo 32-bit instance field put. - * - * for: iput/jumbo, iput-boolean/jumbo, iput-byte/jumbo, iput-char/jumbo, - * iput-short/jumbo - */ - /* exop vBBBB, vCCCC, field@AAAAAAAA */ - FETCH(r1, 1) @ r1<- aaaa (lo) - FETCH(r2, 2) @ r2<- AAAA (hi) - FETCH(r0, 4) @ r0<- CCCC - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- DvmDex - orr r1, r1, r2, lsl #16 @ r1<- AAAAaaaa - ldr r2, [r3, #offDvmDex_pResFields] @ r2<- pDvmDex->pResFields - GET_VREG(r9, r0) @ r9<- fp[CCCC], the object pointer - ldr r0, [r2, r1, lsl #2] @ r0<- resolved InstField ptr - cmp r0, #0 @ is resolved entry null? - bne .LOP_IPUT_BYTE_JUMBO_finish @ no, already resolved -8: ldr r2, [rSELF, #offThread_method] @ r2<- current method - EXPORT_PC() @ resolve() could throw - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveInstField @ r0<- resolved InstField ptr - b .LOP_IPUT_BYTE_JUMBO_resolved @ resolved, continue - - -/* ------------------------------ */ - .balign 64 -.L_OP_IPUT_CHAR_JUMBO: /* 0x112 */ -/* File: armv5te/OP_IPUT_CHAR_JUMBO.S */ -@include "armv5te/OP_IPUT_JUMBO.S" { "store":"strh", "sqnum":"3" } -/* File: armv5te/OP_IPUT_JUMBO.S */ - /* - * Jumbo 32-bit instance field put. - * - * for: iput/jumbo, iput-boolean/jumbo, iput-byte/jumbo, iput-char/jumbo, - * iput-short/jumbo - */ - /* exop vBBBB, vCCCC, field@AAAAAAAA */ - FETCH(r1, 1) @ r1<- aaaa (lo) - FETCH(r2, 2) @ r2<- AAAA (hi) - FETCH(r0, 4) @ r0<- CCCC - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- DvmDex - orr r1, r1, r2, lsl #16 @ r1<- AAAAaaaa - ldr r2, [r3, #offDvmDex_pResFields] @ r2<- pDvmDex->pResFields - GET_VREG(r9, r0) @ r9<- fp[CCCC], the object pointer - ldr r0, [r2, r1, lsl #2] @ r0<- resolved InstField ptr - cmp r0, #0 @ is resolved entry null? - bne .LOP_IPUT_CHAR_JUMBO_finish @ no, already resolved -8: ldr r2, [rSELF, #offThread_method] @ r2<- current method - EXPORT_PC() @ resolve() could throw - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveInstField @ r0<- resolved InstField ptr - b .LOP_IPUT_CHAR_JUMBO_resolved @ resolved, continue - - -/* ------------------------------ */ - .balign 64 -.L_OP_IPUT_SHORT_JUMBO: /* 0x113 */ -/* File: armv5te/OP_IPUT_SHORT_JUMBO.S */ -@include "armv5te/OP_IPUT_JUMBO.S" { "store":"strh", "sqnum":"4" } -/* File: armv5te/OP_IPUT_JUMBO.S */ - /* - * Jumbo 32-bit instance field put. - * - * for: iput/jumbo, iput-boolean/jumbo, iput-byte/jumbo, iput-char/jumbo, - * iput-short/jumbo - */ - /* exop vBBBB, vCCCC, field@AAAAAAAA */ - FETCH(r1, 1) @ r1<- aaaa (lo) - FETCH(r2, 2) @ r2<- AAAA (hi) - FETCH(r0, 4) @ r0<- CCCC - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- DvmDex - orr r1, r1, r2, lsl #16 @ r1<- AAAAaaaa - ldr r2, [r3, #offDvmDex_pResFields] @ r2<- pDvmDex->pResFields - GET_VREG(r9, r0) @ r9<- fp[CCCC], the object pointer - ldr r0, [r2, r1, lsl #2] @ r0<- resolved InstField ptr - cmp r0, #0 @ is resolved entry null? - bne .LOP_IPUT_SHORT_JUMBO_finish @ no, already resolved -8: ldr r2, [rSELF, #offThread_method] @ r2<- current method - EXPORT_PC() @ resolve() could throw - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveInstField @ r0<- resolved InstField ptr - b .LOP_IPUT_SHORT_JUMBO_resolved @ resolved, continue - - -/* ------------------------------ */ - .balign 64 -.L_OP_SGET_JUMBO: /* 0x114 */ -/* File: armv5te/OP_SGET_JUMBO.S */ - /* - * Jumbo 32-bit SGET handler. - * - * for: sget/jumbo, sget-object/jumbo, sget-boolean/jumbo, sget-byte/jumbo, - * sget-char/jumbo, sget-short/jumbo - */ - /* exop vBBBB, field@AAAAAAAA */ - ldr r2, [rSELF, #offThread_methodClassDex] @ r2<- DvmDex - FETCH(r0, 1) @ r0<- aaaa (lo) - FETCH(r1, 2) @ r1<- AAAA (hi) - ldr r10, [r2, #offDvmDex_pResFields] @ r10<- dvmDex->pResFields - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - ldr r0, [r10, r1, lsl #2] @ r0<- resolved StaticField ptr - cmp r0, #0 @ is resolved entry null? - beq .LOP_SGET_JUMBO_resolve @ yes, do resolve -.LOP_SGET_JUMBO_finish: @ field ptr in r0 - ldr r1, [r0, #offStaticField_value] @ r1<- field value - @ no-op @ acquiring load - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(4) @ advance rPC, load rINST - SET_VREG(r1, r2) @ fp[BBBB]<- r1 - GET_INST_OPCODE(ip) @ extract opcode from rINST - GOTO_OPCODE(ip) @ jump to next instruction - -/* ------------------------------ */ - .balign 64 -.L_OP_SGET_WIDE_JUMBO: /* 0x115 */ -/* File: armv5te/OP_SGET_WIDE_JUMBO.S */ - /* - * Jumbo 64-bit SGET handler. - */ - /* sget-wide/jumbo vBBBB, field@AAAAAAAA */ - ldr r2, [rSELF, #offThread_methodClassDex] @ r2<- DvmDex - FETCH(r0, 1) @ r0<- aaaa (lo) - FETCH(r1, 2) @ r1<- AAAA (hi) - ldr r2, [r2, #offDvmDex_pResFields] @ r2<- dvmDex->pResFields - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - ldr r0, [r2, r1, lsl #2] @ r0<- resolved StaticField ptr - cmp r0, #0 @ is resolved entry null? - beq .LOP_SGET_WIDE_JUMBO_resolve @ yes, do resolve -.LOP_SGET_WIDE_JUMBO_finish: - FETCH(r9, 3) @ r9<- BBBB - .if 0 - add r0, r0, #offStaticField_value @ r0<- pointer to data - bl dvmQuasiAtomicRead64 @ r0/r1<- contents of field - .else - ldrd r0, [r0, #offStaticField_value] @ r0/r1<- field value (aligned) - .endif - add r9, rFP, r9, lsl #2 @ r9<- &fp[BBBB] - FETCH_ADVANCE_INST(4) @ advance rPC, load rINST - stmia r9, {r0-r1} @ vBBBB/vBBBB+1<- r0/r1 - GET_INST_OPCODE(ip) @ extract opcode from rINST - GOTO_OPCODE(ip) @ jump to next instruction - -/* ------------------------------ */ - .balign 64 -.L_OP_SGET_OBJECT_JUMBO: /* 0x116 */ -/* File: armv5te/OP_SGET_OBJECT_JUMBO.S */ -/* File: armv5te/OP_SGET_JUMBO.S */ - /* - * Jumbo 32-bit SGET handler. - * - * for: sget/jumbo, sget-object/jumbo, sget-boolean/jumbo, sget-byte/jumbo, - * sget-char/jumbo, sget-short/jumbo - */ - /* exop vBBBB, field@AAAAAAAA */ - ldr r2, [rSELF, #offThread_methodClassDex] @ r2<- DvmDex - FETCH(r0, 1) @ r0<- aaaa (lo) - FETCH(r1, 2) @ r1<- AAAA (hi) - ldr r10, [r2, #offDvmDex_pResFields] @ r10<- dvmDex->pResFields - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - ldr r0, [r10, r1, lsl #2] @ r0<- resolved StaticField ptr - cmp r0, #0 @ is resolved entry null? - beq .LOP_SGET_OBJECT_JUMBO_resolve @ yes, do resolve -.LOP_SGET_OBJECT_JUMBO_finish: @ field ptr in r0 - ldr r1, [r0, #offStaticField_value] @ r1<- field value - @ no-op @ acquiring load - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(4) @ advance rPC, load rINST - SET_VREG(r1, r2) @ fp[BBBB]<- r1 - GET_INST_OPCODE(ip) @ extract opcode from rINST - GOTO_OPCODE(ip) @ jump to next instruction - - -/* ------------------------------ */ - .balign 64 -.L_OP_SGET_BOOLEAN_JUMBO: /* 0x117 */ -/* File: armv5te/OP_SGET_BOOLEAN_JUMBO.S */ -/* File: armv5te/OP_SGET_JUMBO.S */ - /* - * Jumbo 32-bit SGET handler. - * - * for: sget/jumbo, sget-object/jumbo, sget-boolean/jumbo, sget-byte/jumbo, - * sget-char/jumbo, sget-short/jumbo - */ - /* exop vBBBB, field@AAAAAAAA */ - ldr r2, [rSELF, #offThread_methodClassDex] @ r2<- DvmDex - FETCH(r0, 1) @ r0<- aaaa (lo) - FETCH(r1, 2) @ r1<- AAAA (hi) - ldr r10, [r2, #offDvmDex_pResFields] @ r10<- dvmDex->pResFields - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - ldr r0, [r10, r1, lsl #2] @ r0<- resolved StaticField ptr - cmp r0, #0 @ is resolved entry null? - beq .LOP_SGET_BOOLEAN_JUMBO_resolve @ yes, do resolve -.LOP_SGET_BOOLEAN_JUMBO_finish: @ field ptr in r0 - ldr r1, [r0, #offStaticField_value] @ r1<- field value - @ no-op @ acquiring load - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(4) @ advance rPC, load rINST - SET_VREG(r1, r2) @ fp[BBBB]<- r1 - GET_INST_OPCODE(ip) @ extract opcode from rINST - GOTO_OPCODE(ip) @ jump to next instruction - - -/* ------------------------------ */ - .balign 64 -.L_OP_SGET_BYTE_JUMBO: /* 0x118 */ -/* File: armv5te/OP_SGET_BYTE_JUMBO.S */ -/* File: armv5te/OP_SGET_JUMBO.S */ - /* - * Jumbo 32-bit SGET handler. - * - * for: sget/jumbo, sget-object/jumbo, sget-boolean/jumbo, sget-byte/jumbo, - * sget-char/jumbo, sget-short/jumbo - */ - /* exop vBBBB, field@AAAAAAAA */ - ldr r2, [rSELF, #offThread_methodClassDex] @ r2<- DvmDex - FETCH(r0, 1) @ r0<- aaaa (lo) - FETCH(r1, 2) @ r1<- AAAA (hi) - ldr r10, [r2, #offDvmDex_pResFields] @ r10<- dvmDex->pResFields - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - ldr r0, [r10, r1, lsl #2] @ r0<- resolved StaticField ptr - cmp r0, #0 @ is resolved entry null? - beq .LOP_SGET_BYTE_JUMBO_resolve @ yes, do resolve -.LOP_SGET_BYTE_JUMBO_finish: @ field ptr in r0 - ldr r1, [r0, #offStaticField_value] @ r1<- field value - @ no-op @ acquiring load - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(4) @ advance rPC, load rINST - SET_VREG(r1, r2) @ fp[BBBB]<- r1 - GET_INST_OPCODE(ip) @ extract opcode from rINST - GOTO_OPCODE(ip) @ jump to next instruction - - -/* ------------------------------ */ - .balign 64 -.L_OP_SGET_CHAR_JUMBO: /* 0x119 */ -/* File: armv5te/OP_SGET_CHAR_JUMBO.S */ -/* File: armv5te/OP_SGET_JUMBO.S */ - /* - * Jumbo 32-bit SGET handler. - * - * for: sget/jumbo, sget-object/jumbo, sget-boolean/jumbo, sget-byte/jumbo, - * sget-char/jumbo, sget-short/jumbo - */ - /* exop vBBBB, field@AAAAAAAA */ - ldr r2, [rSELF, #offThread_methodClassDex] @ r2<- DvmDex - FETCH(r0, 1) @ r0<- aaaa (lo) - FETCH(r1, 2) @ r1<- AAAA (hi) - ldr r10, [r2, #offDvmDex_pResFields] @ r10<- dvmDex->pResFields - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - ldr r0, [r10, r1, lsl #2] @ r0<- resolved StaticField ptr - cmp r0, #0 @ is resolved entry null? - beq .LOP_SGET_CHAR_JUMBO_resolve @ yes, do resolve -.LOP_SGET_CHAR_JUMBO_finish: @ field ptr in r0 - ldr r1, [r0, #offStaticField_value] @ r1<- field value - @ no-op @ acquiring load - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(4) @ advance rPC, load rINST - SET_VREG(r1, r2) @ fp[BBBB]<- r1 - GET_INST_OPCODE(ip) @ extract opcode from rINST - GOTO_OPCODE(ip) @ jump to next instruction - - -/* ------------------------------ */ - .balign 64 -.L_OP_SGET_SHORT_JUMBO: /* 0x11a */ -/* File: armv5te/OP_SGET_SHORT_JUMBO.S */ -/* File: armv5te/OP_SGET_JUMBO.S */ - /* - * Jumbo 32-bit SGET handler. - * - * for: sget/jumbo, sget-object/jumbo, sget-boolean/jumbo, sget-byte/jumbo, - * sget-char/jumbo, sget-short/jumbo - */ - /* exop vBBBB, field@AAAAAAAA */ - ldr r2, [rSELF, #offThread_methodClassDex] @ r2<- DvmDex - FETCH(r0, 1) @ r0<- aaaa (lo) - FETCH(r1, 2) @ r1<- AAAA (hi) - ldr r10, [r2, #offDvmDex_pResFields] @ r10<- dvmDex->pResFields - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - ldr r0, [r10, r1, lsl #2] @ r0<- resolved StaticField ptr - cmp r0, #0 @ is resolved entry null? - beq .LOP_SGET_SHORT_JUMBO_resolve @ yes, do resolve -.LOP_SGET_SHORT_JUMBO_finish: @ field ptr in r0 - ldr r1, [r0, #offStaticField_value] @ r1<- field value - @ no-op @ acquiring load - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(4) @ advance rPC, load rINST - SET_VREG(r1, r2) @ fp[BBBB]<- r1 - GET_INST_OPCODE(ip) @ extract opcode from rINST - GOTO_OPCODE(ip) @ jump to next instruction - - -/* ------------------------------ */ - .balign 64 -.L_OP_SPUT_JUMBO: /* 0x11b */ -/* File: armv5te/OP_SPUT_JUMBO.S */ - /* - * Jumbo 32-bit SPUT handler. - * - * for: sput/jumbo, sput-boolean/jumbo, sput-byte/jumbo, sput-char/jumbo, - * sput-short/jumbo - */ - /* exop vBBBB, field@AAAAAAAA */ - ldr r2, [rSELF, #offThread_methodClassDex] @ r2<- DvmDex - FETCH(r0, 1) @ r0<- aaaa (lo) - FETCH(r1, 2) @ r1<- AAAA (hi) - ldr r10, [r2, #offDvmDex_pResFields] @ r10<- dvmDex->pResFields - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - ldr r0, [r10, r1, lsl #2] @ r0<- resolved StaticField ptr - cmp r0, #0 @ is resolved entry null? - beq .LOP_SPUT_JUMBO_resolve @ yes, do resolve -.LOP_SPUT_JUMBO_finish: @ field ptr in r0 - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(4) @ advance rPC, load rINST - GET_VREG(r1, r2) @ r1<- fp[BBBB] - GET_INST_OPCODE(ip) @ extract opcode from rINST - @ no-op @ releasing store - str r1, [r0, #offStaticField_value] @ field<- vBBBB - @ no-op - GOTO_OPCODE(ip) @ jump to next instruction - -/* ------------------------------ */ - .balign 64 -.L_OP_SPUT_WIDE_JUMBO: /* 0x11c */ -/* File: armv5te/OP_SPUT_WIDE_JUMBO.S */ - /* - * Jumbo 64-bit SPUT handler. - */ - /* sput-wide/jumbo vBBBB, field@AAAAAAAA */ - ldr r0, [rSELF, #offThread_methodClassDex] @ r0<- DvmDex - FETCH(r1, 1) @ r1<- aaaa (lo) - FETCH(r2, 2) @ r2<- AAAA (hi) - ldr r10, [r0, #offDvmDex_pResFields] @ r10<- dvmDex->pResFields - orr r1, r1, r2, lsl #16 @ r1<- AAAAaaaa - FETCH(r9, 3) @ r9<- BBBB - ldr r2, [r10, r1, lsl #2] @ r2<- resolved StaticField ptr - add r9, rFP, r9, lsl #2 @ r9<- &fp[BBBB] - cmp r2, #0 @ is resolved entry null? - beq .LOP_SPUT_WIDE_JUMBO_resolve @ yes, do resolve -.LOP_SPUT_WIDE_JUMBO_finish: @ field ptr in r2, BBBB in r9 - FETCH_ADVANCE_INST(4) @ advance rPC, load rINST - ldmia r9, {r0-r1} @ r0/r1<- vBBBB/vBBBB+1 - GET_INST_OPCODE(r10) @ extract opcode from rINST - .if 0 - add r2, r2, #offStaticField_value @ r2<- pointer to data - bl dvmQuasiAtomicSwap64Sync @ stores r0/r1 into addr r2 - .else - strd r0, [r2, #offStaticField_value] @ field<- vBBBB/vBBBB+1 - .endif - GOTO_OPCODE(r10) @ jump to next instruction - -/* ------------------------------ */ - .balign 64 -.L_OP_SPUT_OBJECT_JUMBO: /* 0x11d */ -/* File: armv5te/OP_SPUT_OBJECT_JUMBO.S */ - /* - * Jumbo 32-bit SPUT handler for objects - */ - /* sput-object/jumbo vBBBB, field@AAAAAAAA */ - ldr r2, [rSELF, #offThread_methodClassDex] @ r2<- DvmDex - FETCH(r0, 1) @ r0<- aaaa (lo) - FETCH(r1, 2) @ r1<- AAAA (hi) - ldr r10, [r2, #offDvmDex_pResFields] @ r10<- dvmDex->pResFields - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - ldr r0, [r10, r1, lsl #2] @ r0<- resolved StaticField ptr - cmp r0, #0 @ is resolved entry null? - beq .LOP_SPUT_OBJECT_JUMBO_resolve @ yes, do resolve -.LOP_SPUT_OBJECT_JUMBO_finish: @ field ptr in r0 - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(4) @ advance rPC, load rINST - GET_VREG(r1, r2) @ r1<- fp[BBBB] - ldr r2, [rSELF, #offThread_cardTable] @ r2<- card table base - ldr r9, [r0, #offField_clazz] @ r9<- field->clazz - GET_INST_OPCODE(ip) @ extract opcode from rINST - @ no-op @ releasing store - b .LOP_SPUT_OBJECT_JUMBO_end - -/* ------------------------------ */ - .balign 64 -.L_OP_SPUT_BOOLEAN_JUMBO: /* 0x11e */ -/* File: armv5te/OP_SPUT_BOOLEAN_JUMBO.S */ -/* File: armv5te/OP_SPUT_JUMBO.S */ - /* - * Jumbo 32-bit SPUT handler. - * - * for: sput/jumbo, sput-boolean/jumbo, sput-byte/jumbo, sput-char/jumbo, - * sput-short/jumbo - */ - /* exop vBBBB, field@AAAAAAAA */ - ldr r2, [rSELF, #offThread_methodClassDex] @ r2<- DvmDex - FETCH(r0, 1) @ r0<- aaaa (lo) - FETCH(r1, 2) @ r1<- AAAA (hi) - ldr r10, [r2, #offDvmDex_pResFields] @ r10<- dvmDex->pResFields - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - ldr r0, [r10, r1, lsl #2] @ r0<- resolved StaticField ptr - cmp r0, #0 @ is resolved entry null? - beq .LOP_SPUT_BOOLEAN_JUMBO_resolve @ yes, do resolve -.LOP_SPUT_BOOLEAN_JUMBO_finish: @ field ptr in r0 - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(4) @ advance rPC, load rINST - GET_VREG(r1, r2) @ r1<- fp[BBBB] - GET_INST_OPCODE(ip) @ extract opcode from rINST - @ no-op @ releasing store - str r1, [r0, #offStaticField_value] @ field<- vBBBB - @ no-op - GOTO_OPCODE(ip) @ jump to next instruction - - -/* ------------------------------ */ - .balign 64 -.L_OP_SPUT_BYTE_JUMBO: /* 0x11f */ -/* File: armv5te/OP_SPUT_BYTE_JUMBO.S */ -/* File: armv5te/OP_SPUT_JUMBO.S */ - /* - * Jumbo 32-bit SPUT handler. - * - * for: sput/jumbo, sput-boolean/jumbo, sput-byte/jumbo, sput-char/jumbo, - * sput-short/jumbo - */ - /* exop vBBBB, field@AAAAAAAA */ - ldr r2, [rSELF, #offThread_methodClassDex] @ r2<- DvmDex - FETCH(r0, 1) @ r0<- aaaa (lo) - FETCH(r1, 2) @ r1<- AAAA (hi) - ldr r10, [r2, #offDvmDex_pResFields] @ r10<- dvmDex->pResFields - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - ldr r0, [r10, r1, lsl #2] @ r0<- resolved StaticField ptr - cmp r0, #0 @ is resolved entry null? - beq .LOP_SPUT_BYTE_JUMBO_resolve @ yes, do resolve -.LOP_SPUT_BYTE_JUMBO_finish: @ field ptr in r0 - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(4) @ advance rPC, load rINST - GET_VREG(r1, r2) @ r1<- fp[BBBB] - GET_INST_OPCODE(ip) @ extract opcode from rINST - @ no-op @ releasing store - str r1, [r0, #offStaticField_value] @ field<- vBBBB - @ no-op - GOTO_OPCODE(ip) @ jump to next instruction - - -/* ------------------------------ */ - .balign 64 -.L_OP_SPUT_CHAR_JUMBO: /* 0x120 */ -/* File: armv5te/OP_SPUT_CHAR_JUMBO.S */ -/* File: armv5te/OP_SPUT_JUMBO.S */ - /* - * Jumbo 32-bit SPUT handler. - * - * for: sput/jumbo, sput-boolean/jumbo, sput-byte/jumbo, sput-char/jumbo, - * sput-short/jumbo - */ - /* exop vBBBB, field@AAAAAAAA */ - ldr r2, [rSELF, #offThread_methodClassDex] @ r2<- DvmDex - FETCH(r0, 1) @ r0<- aaaa (lo) - FETCH(r1, 2) @ r1<- AAAA (hi) - ldr r10, [r2, #offDvmDex_pResFields] @ r10<- dvmDex->pResFields - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - ldr r0, [r10, r1, lsl #2] @ r0<- resolved StaticField ptr - cmp r0, #0 @ is resolved entry null? - beq .LOP_SPUT_CHAR_JUMBO_resolve @ yes, do resolve -.LOP_SPUT_CHAR_JUMBO_finish: @ field ptr in r0 - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(4) @ advance rPC, load rINST - GET_VREG(r1, r2) @ r1<- fp[BBBB] - GET_INST_OPCODE(ip) @ extract opcode from rINST - @ no-op @ releasing store - str r1, [r0, #offStaticField_value] @ field<- vBBBB - @ no-op - GOTO_OPCODE(ip) @ jump to next instruction - - -/* ------------------------------ */ - .balign 64 -.L_OP_SPUT_SHORT_JUMBO: /* 0x121 */ -/* File: armv5te/OP_SPUT_SHORT_JUMBO.S */ -/* File: armv5te/OP_SPUT_JUMBO.S */ - /* - * Jumbo 32-bit SPUT handler. - * - * for: sput/jumbo, sput-boolean/jumbo, sput-byte/jumbo, sput-char/jumbo, - * sput-short/jumbo - */ - /* exop vBBBB, field@AAAAAAAA */ - ldr r2, [rSELF, #offThread_methodClassDex] @ r2<- DvmDex - FETCH(r0, 1) @ r0<- aaaa (lo) - FETCH(r1, 2) @ r1<- AAAA (hi) - ldr r10, [r2, #offDvmDex_pResFields] @ r10<- dvmDex->pResFields - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - ldr r0, [r10, r1, lsl #2] @ r0<- resolved StaticField ptr - cmp r0, #0 @ is resolved entry null? - beq .LOP_SPUT_SHORT_JUMBO_resolve @ yes, do resolve -.LOP_SPUT_SHORT_JUMBO_finish: @ field ptr in r0 - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(4) @ advance rPC, load rINST - GET_VREG(r1, r2) @ r1<- fp[BBBB] - GET_INST_OPCODE(ip) @ extract opcode from rINST - @ no-op @ releasing store - str r1, [r0, #offStaticField_value] @ field<- vBBBB - @ no-op - GOTO_OPCODE(ip) @ jump to next instruction - - -/* ------------------------------ */ - .balign 64 -.L_OP_INVOKE_VIRTUAL_JUMBO: /* 0x122 */ -/* File: armv5te/OP_INVOKE_VIRTUAL_JUMBO.S */ - /* - * Handle a virtual method call. - */ - /* invoke-virtual/jumbo {vCCCC..v(CCCC+BBBB-1)}, meth@AAAAAAAA */ - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- pDvmDex - FETCH(r0, 1) @ r1<- aaaa (lo) - FETCH(r1, 2) @ r1<- AAAA (hi) - ldr r3, [r3, #offDvmDex_pResMethods] @ r3<- pDvmDex->pResMethods - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - ldr r0, [r3, r1, lsl #2] @ r0<- resolved baseMethod - cmp r0, #0 @ already resolved? - EXPORT_PC() @ must export for invoke - bne .LOP_INVOKE_VIRTUAL_JUMBO_continue @ yes, continue on - ldr r3, [rSELF, #offThread_method] @ r3<- self->method - ldr r0, [r3, #offMethod_clazz] @ r0<- method->clazz - mov r2, #METHOD_VIRTUAL @ resolver method type - bl dvmResolveMethod @ r0<- call(clazz, ref, flags) - cmp r0, #0 @ got null? - bne .LOP_INVOKE_VIRTUAL_JUMBO_continue @ no, continue - b common_exceptionThrown @ yes, handle exception - -/* ------------------------------ */ - .balign 64 -.L_OP_INVOKE_SUPER_JUMBO: /* 0x123 */ -/* File: armv5te/OP_INVOKE_SUPER_JUMBO.S */ - /* - * Handle a "super" method call. - */ - /* invoke-super/jumbo {vCCCC..v(CCCC+BBBB-1)}, meth@AAAAAAAA */ - FETCH(r10, 4) @ r10<- CCCC - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- pDvmDex - FETCH(r0, 1) @ r1<- aaaa (lo) - FETCH(r1, 2) @ r1<- AAAA (hi) - ldr r3, [r3, #offDvmDex_pResMethods] @ r3<- pDvmDex->pResMethods - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - GET_VREG(r9, r10) @ r9<- "this" ptr - ldr r0, [r3, r1, lsl #2] @ r0<- resolved baseMethod - cmp r9, #0 @ null "this"? - ldr r10, [rSELF, #offThread_method] @ r10<- current method - beq common_errNullObject @ null "this", throw exception - cmp r0, #0 @ already resolved? - ldr r10, [r10, #offMethod_clazz] @ r10<- method->clazz - EXPORT_PC() @ must export for invoke - bne .LOP_INVOKE_SUPER_JUMBO_continue @ resolved, continue on - b .LOP_INVOKE_SUPER_JUMBO_resolve @ do resolve now - -/* ------------------------------ */ - .balign 64 -.L_OP_INVOKE_DIRECT_JUMBO: /* 0x124 */ -/* File: armv5te/OP_INVOKE_DIRECT_JUMBO.S */ - /* - * Handle a direct method call. - * - * (We could defer the "is 'this' pointer null" test to the common - * method invocation code, and use a flag to indicate that static - * calls don't count. If we do this as part of copying the arguments - * out we could avoiding loading the first arg twice.) - * - */ - /* invoke-direct/jumbo {vCCCC..v(CCCC+BBBB-1)}, meth@AAAAAAAA */ - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- pDvmDex - FETCH(r0, 1) @ r1<- aaaa (lo) - FETCH(r1, 2) @ r1<- AAAA (hi) - ldr r3, [r3, #offDvmDex_pResMethods] @ r3<- pDvmDex->pResMethods - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - FETCH(r10, 4) @ r10<- CCCC - ldr r0, [r3, r1, lsl #2] @ r0<- resolved methodToCall - cmp r0, #0 @ already resolved? - EXPORT_PC() @ must export for invoke - GET_VREG(r9, r10) @ r9<- "this" ptr - beq .LOP_INVOKE_DIRECT_JUMBO_resolve @ not resolved, do it now -.LOP_INVOKE_DIRECT_JUMBO_finish: - cmp r9, #0 @ null "this" ref? - bne common_invokeMethodJumbo @ (r0=method, r9="this") - b common_errNullObject @ yes, throw exception - -/* ------------------------------ */ - .balign 64 -.L_OP_INVOKE_STATIC_JUMBO: /* 0x125 */ -/* File: armv5te/OP_INVOKE_STATIC_JUMBO.S */ - /* - * Handle a static method call. - */ - /* invoke-static/jumbo {vCCCC..v(CCCC+BBBB-1)}, meth@AAAAAAAA */ - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- pDvmDex - FETCH(r0, 1) @ r1<- aaaa (lo) - FETCH(r1, 2) @ r1<- AAAA (hi) - ldr r3, [r3, #offDvmDex_pResMethods] @ r3<- pDvmDex->pResMethods - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - ldr r0, [r3, r1, lsl #2] @ r0<- resolved methodToCall -#if defined(WITH_JIT) - add r10, r3, r1, lsl #2 @ r10<- &resolved_methodToCall -#endif - cmp r0, #0 @ already resolved? - EXPORT_PC() @ must export for invoke - bne common_invokeMethodJumboNoThis @ (r0=method) - b .LOP_INVOKE_STATIC_JUMBO_resolve - -/* ------------------------------ */ - .balign 64 -.L_OP_INVOKE_INTERFACE_JUMBO: /* 0x126 */ -/* File: armv5te/OP_INVOKE_INTERFACE_JUMBO.S */ - /* - * Handle an interface method call. - */ - /* invoke-interface/jumbo {vCCCC..v(CCCC+BBBB-1)}, meth@AAAAAAAA */ - FETCH(r2, 4) @ r2<- CCCC - FETCH(r0, 1) @ r0<- aaaa (lo) - FETCH(r1, 2) @ r1<- AAAA (hi) - EXPORT_PC() @ must export for invoke - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - GET_VREG(r9, r2) @ r9<- first arg ("this") - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- methodClassDex - cmp r9, #0 @ null obj? - ldr r2, [rSELF, #offThread_method] @ r2<- method - beq common_errNullObject @ yes, fail - ldr r0, [r9, #offObject_clazz] @ r0<- thisPtr->clazz - bl dvmFindInterfaceMethodInCache @ r0<- call(class, ref, method, dex) - cmp r0, #0 @ failed? - beq common_exceptionThrown @ yes, handle exception - b common_invokeMethodJumbo @ (r0=method, r9="this") - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_27FF: /* 0x127 */ -/* File: armv5te/OP_UNUSED_27FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_28FF: /* 0x128 */ -/* File: armv5te/OP_UNUSED_28FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_29FF: /* 0x129 */ -/* File: armv5te/OP_UNUSED_29FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_2AFF: /* 0x12a */ -/* File: armv5te/OP_UNUSED_2AFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_2BFF: /* 0x12b */ -/* File: armv5te/OP_UNUSED_2BFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_2CFF: /* 0x12c */ -/* File: armv5te/OP_UNUSED_2CFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_2DFF: /* 0x12d */ -/* File: armv5te/OP_UNUSED_2DFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_2EFF: /* 0x12e */ -/* File: armv5te/OP_UNUSED_2EFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_2FFF: /* 0x12f */ -/* File: armv5te/OP_UNUSED_2FFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_30FF: /* 0x130 */ -/* File: armv5te/OP_UNUSED_30FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_31FF: /* 0x131 */ -/* File: armv5te/OP_UNUSED_31FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_32FF: /* 0x132 */ -/* File: armv5te/OP_UNUSED_32FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_33FF: /* 0x133 */ -/* File: armv5te/OP_UNUSED_33FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_34FF: /* 0x134 */ -/* File: armv5te/OP_UNUSED_34FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_35FF: /* 0x135 */ -/* File: armv5te/OP_UNUSED_35FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_36FF: /* 0x136 */ -/* File: armv5te/OP_UNUSED_36FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_37FF: /* 0x137 */ -/* File: armv5te/OP_UNUSED_37FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_38FF: /* 0x138 */ -/* File: armv5te/OP_UNUSED_38FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_39FF: /* 0x139 */ -/* File: armv5te/OP_UNUSED_39FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_3AFF: /* 0x13a */ -/* File: armv5te/OP_UNUSED_3AFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_3BFF: /* 0x13b */ -/* File: armv5te/OP_UNUSED_3BFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_3CFF: /* 0x13c */ -/* File: armv5te/OP_UNUSED_3CFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_3DFF: /* 0x13d */ -/* File: armv5te/OP_UNUSED_3DFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_3EFF: /* 0x13e */ -/* File: armv5te/OP_UNUSED_3EFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_3FFF: /* 0x13f */ -/* File: armv5te/OP_UNUSED_3FFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_40FF: /* 0x140 */ -/* File: armv5te/OP_UNUSED_40FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_41FF: /* 0x141 */ -/* File: armv5te/OP_UNUSED_41FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_42FF: /* 0x142 */ -/* File: armv5te/OP_UNUSED_42FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_43FF: /* 0x143 */ -/* File: armv5te/OP_UNUSED_43FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_44FF: /* 0x144 */ -/* File: armv5te/OP_UNUSED_44FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_45FF: /* 0x145 */ -/* File: armv5te/OP_UNUSED_45FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_46FF: /* 0x146 */ -/* File: armv5te/OP_UNUSED_46FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_47FF: /* 0x147 */ -/* File: armv5te/OP_UNUSED_47FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_48FF: /* 0x148 */ -/* File: armv5te/OP_UNUSED_48FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_49FF: /* 0x149 */ -/* File: armv5te/OP_UNUSED_49FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_4AFF: /* 0x14a */ -/* File: armv5te/OP_UNUSED_4AFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_4BFF: /* 0x14b */ -/* File: armv5te/OP_UNUSED_4BFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_4CFF: /* 0x14c */ -/* File: armv5te/OP_UNUSED_4CFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_4DFF: /* 0x14d */ -/* File: armv5te/OP_UNUSED_4DFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_4EFF: /* 0x14e */ -/* File: armv5te/OP_UNUSED_4EFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_4FFF: /* 0x14f */ -/* File: armv5te/OP_UNUSED_4FFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_50FF: /* 0x150 */ -/* File: armv5te/OP_UNUSED_50FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_51FF: /* 0x151 */ -/* File: armv5te/OP_UNUSED_51FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_52FF: /* 0x152 */ -/* File: armv5te/OP_UNUSED_52FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_53FF: /* 0x153 */ -/* File: armv5te/OP_UNUSED_53FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_54FF: /* 0x154 */ -/* File: armv5te/OP_UNUSED_54FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_55FF: /* 0x155 */ -/* File: armv5te/OP_UNUSED_55FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_56FF: /* 0x156 */ -/* File: armv5te/OP_UNUSED_56FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_57FF: /* 0x157 */ -/* File: armv5te/OP_UNUSED_57FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_58FF: /* 0x158 */ -/* File: armv5te/OP_UNUSED_58FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_59FF: /* 0x159 */ -/* File: armv5te/OP_UNUSED_59FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_5AFF: /* 0x15a */ -/* File: armv5te/OP_UNUSED_5AFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_5BFF: /* 0x15b */ -/* File: armv5te/OP_UNUSED_5BFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_5CFF: /* 0x15c */ -/* File: armv5te/OP_UNUSED_5CFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_5DFF: /* 0x15d */ -/* File: armv5te/OP_UNUSED_5DFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_5EFF: /* 0x15e */ -/* File: armv5te/OP_UNUSED_5EFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_5FFF: /* 0x15f */ -/* File: armv5te/OP_UNUSED_5FFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_60FF: /* 0x160 */ -/* File: armv5te/OP_UNUSED_60FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_61FF: /* 0x161 */ -/* File: armv5te/OP_UNUSED_61FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_62FF: /* 0x162 */ -/* File: armv5te/OP_UNUSED_62FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_63FF: /* 0x163 */ -/* File: armv5te/OP_UNUSED_63FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_64FF: /* 0x164 */ -/* File: armv5te/OP_UNUSED_64FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_65FF: /* 0x165 */ -/* File: armv5te/OP_UNUSED_65FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_66FF: /* 0x166 */ -/* File: armv5te/OP_UNUSED_66FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_67FF: /* 0x167 */ -/* File: armv5te/OP_UNUSED_67FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_68FF: /* 0x168 */ -/* File: armv5te/OP_UNUSED_68FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_69FF: /* 0x169 */ -/* File: armv5te/OP_UNUSED_69FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_6AFF: /* 0x16a */ -/* File: armv5te/OP_UNUSED_6AFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_6BFF: /* 0x16b */ -/* File: armv5te/OP_UNUSED_6BFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_6CFF: /* 0x16c */ -/* File: armv5te/OP_UNUSED_6CFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_6DFF: /* 0x16d */ -/* File: armv5te/OP_UNUSED_6DFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_6EFF: /* 0x16e */ -/* File: armv5te/OP_UNUSED_6EFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_6FFF: /* 0x16f */ -/* File: armv5te/OP_UNUSED_6FFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_70FF: /* 0x170 */ -/* File: armv5te/OP_UNUSED_70FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_71FF: /* 0x171 */ -/* File: armv5te/OP_UNUSED_71FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_72FF: /* 0x172 */ -/* File: armv5te/OP_UNUSED_72FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_73FF: /* 0x173 */ -/* File: armv5te/OP_UNUSED_73FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_74FF: /* 0x174 */ -/* File: armv5te/OP_UNUSED_74FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_75FF: /* 0x175 */ -/* File: armv5te/OP_UNUSED_75FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_76FF: /* 0x176 */ -/* File: armv5te/OP_UNUSED_76FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_77FF: /* 0x177 */ -/* File: armv5te/OP_UNUSED_77FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_78FF: /* 0x178 */ -/* File: armv5te/OP_UNUSED_78FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_79FF: /* 0x179 */ -/* File: armv5te/OP_UNUSED_79FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_7AFF: /* 0x17a */ -/* File: armv5te/OP_UNUSED_7AFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_7BFF: /* 0x17b */ -/* File: armv5te/OP_UNUSED_7BFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_7CFF: /* 0x17c */ -/* File: armv5te/OP_UNUSED_7CFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_7DFF: /* 0x17d */ -/* File: armv5te/OP_UNUSED_7DFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_7EFF: /* 0x17e */ -/* File: armv5te/OP_UNUSED_7EFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_7FFF: /* 0x17f */ -/* File: armv5te/OP_UNUSED_7FFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_80FF: /* 0x180 */ -/* File: armv5te/OP_UNUSED_80FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_81FF: /* 0x181 */ -/* File: armv5te/OP_UNUSED_81FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_82FF: /* 0x182 */ -/* File: armv5te/OP_UNUSED_82FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_83FF: /* 0x183 */ -/* File: armv5te/OP_UNUSED_83FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_84FF: /* 0x184 */ -/* File: armv5te/OP_UNUSED_84FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_85FF: /* 0x185 */ -/* File: armv5te/OP_UNUSED_85FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_86FF: /* 0x186 */ -/* File: armv5te/OP_UNUSED_86FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_87FF: /* 0x187 */ -/* File: armv5te/OP_UNUSED_87FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_88FF: /* 0x188 */ -/* File: armv5te/OP_UNUSED_88FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_89FF: /* 0x189 */ -/* File: armv5te/OP_UNUSED_89FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_8AFF: /* 0x18a */ -/* File: armv5te/OP_UNUSED_8AFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_8BFF: /* 0x18b */ -/* File: armv5te/OP_UNUSED_8BFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_8CFF: /* 0x18c */ -/* File: armv5te/OP_UNUSED_8CFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_8DFF: /* 0x18d */ -/* File: armv5te/OP_UNUSED_8DFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_8EFF: /* 0x18e */ -/* File: armv5te/OP_UNUSED_8EFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_8FFF: /* 0x18f */ -/* File: armv5te/OP_UNUSED_8FFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_90FF: /* 0x190 */ -/* File: armv5te/OP_UNUSED_90FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_91FF: /* 0x191 */ -/* File: armv5te/OP_UNUSED_91FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_92FF: /* 0x192 */ -/* File: armv5te/OP_UNUSED_92FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_93FF: /* 0x193 */ -/* File: armv5te/OP_UNUSED_93FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_94FF: /* 0x194 */ -/* File: armv5te/OP_UNUSED_94FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_95FF: /* 0x195 */ -/* File: armv5te/OP_UNUSED_95FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_96FF: /* 0x196 */ -/* File: armv5te/OP_UNUSED_96FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_97FF: /* 0x197 */ -/* File: armv5te/OP_UNUSED_97FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_98FF: /* 0x198 */ -/* File: armv5te/OP_UNUSED_98FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_99FF: /* 0x199 */ -/* File: armv5te/OP_UNUSED_99FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_9AFF: /* 0x19a */ -/* File: armv5te/OP_UNUSED_9AFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_9BFF: /* 0x19b */ -/* File: armv5te/OP_UNUSED_9BFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_9CFF: /* 0x19c */ -/* File: armv5te/OP_UNUSED_9CFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_9DFF: /* 0x19d */ -/* File: armv5te/OP_UNUSED_9DFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_9EFF: /* 0x19e */ -/* File: armv5te/OP_UNUSED_9EFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_9FFF: /* 0x19f */ -/* File: armv5te/OP_UNUSED_9FFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_A0FF: /* 0x1a0 */ -/* File: armv5te/OP_UNUSED_A0FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_A1FF: /* 0x1a1 */ -/* File: armv5te/OP_UNUSED_A1FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_A2FF: /* 0x1a2 */ -/* File: armv5te/OP_UNUSED_A2FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_A3FF: /* 0x1a3 */ -/* File: armv5te/OP_UNUSED_A3FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_A4FF: /* 0x1a4 */ -/* File: armv5te/OP_UNUSED_A4FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_A5FF: /* 0x1a5 */ -/* File: armv5te/OP_UNUSED_A5FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_A6FF: /* 0x1a6 */ -/* File: armv5te/OP_UNUSED_A6FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_A7FF: /* 0x1a7 */ -/* File: armv5te/OP_UNUSED_A7FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_A8FF: /* 0x1a8 */ -/* File: armv5te/OP_UNUSED_A8FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_A9FF: /* 0x1a9 */ -/* File: armv5te/OP_UNUSED_A9FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_AAFF: /* 0x1aa */ -/* File: armv5te/OP_UNUSED_AAFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_ABFF: /* 0x1ab */ -/* File: armv5te/OP_UNUSED_ABFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_ACFF: /* 0x1ac */ -/* File: armv5te/OP_UNUSED_ACFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_ADFF: /* 0x1ad */ -/* File: armv5te/OP_UNUSED_ADFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_AEFF: /* 0x1ae */ -/* File: armv5te/OP_UNUSED_AEFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_AFFF: /* 0x1af */ -/* File: armv5te/OP_UNUSED_AFFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_B0FF: /* 0x1b0 */ -/* File: armv5te/OP_UNUSED_B0FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_B1FF: /* 0x1b1 */ -/* File: armv5te/OP_UNUSED_B1FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_B2FF: /* 0x1b2 */ -/* File: armv5te/OP_UNUSED_B2FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_B3FF: /* 0x1b3 */ -/* File: armv5te/OP_UNUSED_B3FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_B4FF: /* 0x1b4 */ -/* File: armv5te/OP_UNUSED_B4FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_B5FF: /* 0x1b5 */ -/* File: armv5te/OP_UNUSED_B5FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_B6FF: /* 0x1b6 */ -/* File: armv5te/OP_UNUSED_B6FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_B7FF: /* 0x1b7 */ -/* File: armv5te/OP_UNUSED_B7FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_B8FF: /* 0x1b8 */ -/* File: armv5te/OP_UNUSED_B8FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_B9FF: /* 0x1b9 */ -/* File: armv5te/OP_UNUSED_B9FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_BAFF: /* 0x1ba */ -/* File: armv5te/OP_UNUSED_BAFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_BBFF: /* 0x1bb */ -/* File: armv5te/OP_UNUSED_BBFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_BCFF: /* 0x1bc */ -/* File: armv5te/OP_UNUSED_BCFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_BDFF: /* 0x1bd */ -/* File: armv5te/OP_UNUSED_BDFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_BEFF: /* 0x1be */ -/* File: armv5te/OP_UNUSED_BEFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_BFFF: /* 0x1bf */ -/* File: armv5te/OP_UNUSED_BFFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_C0FF: /* 0x1c0 */ -/* File: armv5te/OP_UNUSED_C0FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_C1FF: /* 0x1c1 */ -/* File: armv5te/OP_UNUSED_C1FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_C2FF: /* 0x1c2 */ -/* File: armv5te/OP_UNUSED_C2FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_C3FF: /* 0x1c3 */ -/* File: armv5te/OP_UNUSED_C3FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_C4FF: /* 0x1c4 */ -/* File: armv5te/OP_UNUSED_C4FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_C5FF: /* 0x1c5 */ -/* File: armv5te/OP_UNUSED_C5FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_C6FF: /* 0x1c6 */ -/* File: armv5te/OP_UNUSED_C6FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_C7FF: /* 0x1c7 */ -/* File: armv5te/OP_UNUSED_C7FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_C8FF: /* 0x1c8 */ -/* File: armv5te/OP_UNUSED_C8FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_C9FF: /* 0x1c9 */ -/* File: armv5te/OP_UNUSED_C9FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_CAFF: /* 0x1ca */ -/* File: armv5te/OP_UNUSED_CAFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_CBFF: /* 0x1cb */ -/* File: armv5te/OP_UNUSED_CBFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_CCFF: /* 0x1cc */ -/* File: armv5te/OP_UNUSED_CCFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_CDFF: /* 0x1cd */ -/* File: armv5te/OP_UNUSED_CDFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_CEFF: /* 0x1ce */ -/* File: armv5te/OP_UNUSED_CEFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_CFFF: /* 0x1cf */ -/* File: armv5te/OP_UNUSED_CFFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_D0FF: /* 0x1d0 */ -/* File: armv5te/OP_UNUSED_D0FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_D1FF: /* 0x1d1 */ -/* File: armv5te/OP_UNUSED_D1FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_D2FF: /* 0x1d2 */ -/* File: armv5te/OP_UNUSED_D2FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_D3FF: /* 0x1d3 */ -/* File: armv5te/OP_UNUSED_D3FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_D4FF: /* 0x1d4 */ -/* File: armv5te/OP_UNUSED_D4FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_D5FF: /* 0x1d5 */ -/* File: armv5te/OP_UNUSED_D5FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_D6FF: /* 0x1d6 */ -/* File: armv5te/OP_UNUSED_D6FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_D7FF: /* 0x1d7 */ -/* File: armv5te/OP_UNUSED_D7FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_D8FF: /* 0x1d8 */ -/* File: armv5te/OP_UNUSED_D8FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_D9FF: /* 0x1d9 */ -/* File: armv5te/OP_UNUSED_D9FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_DAFF: /* 0x1da */ -/* File: armv5te/OP_UNUSED_DAFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_DBFF: /* 0x1db */ -/* File: armv5te/OP_UNUSED_DBFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_DCFF: /* 0x1dc */ -/* File: armv5te/OP_UNUSED_DCFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_DDFF: /* 0x1dd */ -/* File: armv5te/OP_UNUSED_DDFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_DEFF: /* 0x1de */ -/* File: armv5te/OP_UNUSED_DEFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_DFFF: /* 0x1df */ -/* File: armv5te/OP_UNUSED_DFFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_E0FF: /* 0x1e0 */ -/* File: armv5te/OP_UNUSED_E0FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_E1FF: /* 0x1e1 */ -/* File: armv5te/OP_UNUSED_E1FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_E2FF: /* 0x1e2 */ -/* File: armv5te/OP_UNUSED_E2FF.S */ +.L_OP_UNUSED_FF: /* 0xff */ +/* File: armv5te/OP_UNUSED_FF.S */ /* File: armv5te/unused.S */ bl common_abort -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_E3FF: /* 0x1e3 */ -/* File: armv5te/OP_UNUSED_E3FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_E4FF: /* 0x1e4 */ -/* File: armv5te/OP_UNUSED_E4FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_E5FF: /* 0x1e5 */ -/* File: armv5te/OP_UNUSED_E5FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_E6FF: /* 0x1e6 */ -/* File: armv5te/OP_UNUSED_E6FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_E7FF: /* 0x1e7 */ -/* File: armv5te/OP_UNUSED_E7FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_E8FF: /* 0x1e8 */ -/* File: armv5te/OP_UNUSED_E8FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_E9FF: /* 0x1e9 */ -/* File: armv5te/OP_UNUSED_E9FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_EAFF: /* 0x1ea */ -/* File: armv5te/OP_UNUSED_EAFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_EBFF: /* 0x1eb */ -/* File: armv5te/OP_UNUSED_EBFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_ECFF: /* 0x1ec */ -/* File: armv5te/OP_UNUSED_ECFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_EDFF: /* 0x1ed */ -/* File: armv5te/OP_UNUSED_EDFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_EEFF: /* 0x1ee */ -/* File: armv5te/OP_UNUSED_EEFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_EFFF: /* 0x1ef */ -/* File: armv5te/OP_UNUSED_EFFF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_F0FF: /* 0x1f0 */ -/* File: armv5te/OP_UNUSED_F0FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_UNUSED_F1FF: /* 0x1f1 */ -/* File: armv5te/OP_UNUSED_F1FF.S */ -/* File: armv5te/unused.S */ - bl common_abort - - -/* ------------------------------ */ - .balign 64 -.L_OP_INVOKE_OBJECT_INIT_JUMBO: /* 0x1f2 */ -/* File: armv5te/OP_INVOKE_OBJECT_INIT_JUMBO.S */ -/* File: armv5te/OP_INVOKE_OBJECT_INIT_RANGE.S */ - /* - * Invoke Object.<init> on an object. In practice we know that - * Object's nullary constructor doesn't do anything, so we just - * skip it unless a debugger is active. - */ - FETCH(r1, 4) @ r1<- CCCC - GET_VREG(r0, r1) @ r0<- "this" ptr - cmp r0, #0 @ check for NULL - beq common_errNullObject @ export PC and throw NPE - ldr r1, [r0, #offObject_clazz] @ r1<- obj->clazz - ldr r2, [r1, #offClassObject_accessFlags] @ r2<- clazz->accessFlags - tst r2, #CLASS_ISFINALIZABLE @ is this class finalizable? - bne .LOP_INVOKE_OBJECT_INIT_JUMBO_setFinal @ yes, go -.LOP_INVOKE_OBJECT_INIT_JUMBO_finish: - ldrh r1, [rSELF, #offThread_subMode] - ands r1, #kSubModeDebuggerActive @ debugger active? - bne .LOP_INVOKE_OBJECT_INIT_JUMBO_debugger @ Yes - skip optimization - FETCH_ADVANCE_INST(4+1) @ advance to next instr, load rINST - GET_INST_OPCODE(ip) @ ip<- opcode from rINST - GOTO_OPCODE(ip) @ execute it - - -/* ------------------------------ */ - .balign 64 -.L_OP_IGET_VOLATILE_JUMBO: /* 0x1f3 */ -/* File: armv5te/OP_IGET_VOLATILE_JUMBO.S */ -/* File: armv5te/OP_IGET_JUMBO.S */ - /* - * Jumbo 32-bit instance field get. - * - * for: iget/jumbo, iget-object/jumbo, iget-boolean/jumbo, iget-byte/jumbo, - * iget-char/jumbo, iget-short/jumbo - */ - /* exop vBBBB, vCCCC, field@AAAAAAAA */ - FETCH(r1, 1) @ r1<- aaaa (lo) - FETCH(r2, 2) @ r2<- AAAA (hi) - FETCH(r0, 4) @ r0<- CCCC - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- DvmDex - orr r1, r1, r2, lsl #16 @ r1<- AAAAaaaa - ldr r2, [r3, #offDvmDex_pResFields] @ r2<- pDvmDex->pResFields - GET_VREG(r9, r0) @ r9<- fp[CCCC], the object pointer - ldr r0, [r2, r1, lsl #2] @ r0<- resolved InstField ptr - cmp r0, #0 @ is resolved entry null? - bne .LOP_IGET_VOLATILE_JUMBO_finish @ no, already resolved -8: ldr r2, [rSELF, #offThread_method] @ r2<- current method - EXPORT_PC() @ resolve() could throw - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveInstField @ r0<- resolved InstField ptr - b .LOP_IGET_VOLATILE_JUMBO_resolved @ resolved, continue - - -/* ------------------------------ */ - .balign 64 -.L_OP_IGET_WIDE_VOLATILE_JUMBO: /* 0x1f4 */ -/* File: armv5te/OP_IGET_WIDE_VOLATILE_JUMBO.S */ -/* File: armv5te/OP_IGET_WIDE_JUMBO.S */ - /* - * Jumbo 64-bit instance field get. - */ - /* iget-wide/jumbo vBBBB, vCCCC, field@AAAAAAAA */ - FETCH(r1, 1) @ r1<- aaaa (lo) - FETCH(r2, 2) @ r2<- AAAA (hi) - FETCH(r0, 4) @ r0<- CCCC - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- DvmDex - orr r1, r1, r2, lsl #16 @ r1<- AAAAaaaa - ldr r2, [r3, #offDvmDex_pResFields] @ r2<- pResFields - GET_VREG(r9, r0) @ r9<- fp[CCCC], the object pointer - ldr r0, [r2, r1, lsl #2] @ r0<- resolved InstField ptr - cmp r0, #0 @ is resolved entry null? - bne .LOP_IGET_WIDE_VOLATILE_JUMBO_finish @ no, already resolved - ldr r2, [rSELF, #offThread_method] @ r2<- current method - EXPORT_PC() @ resolve() could throw - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveInstField @ r0<- resolved InstField ptr - b .LOP_IGET_WIDE_VOLATILE_JUMBO_resolved @ resolved, continue - - -/* ------------------------------ */ - .balign 64 -.L_OP_IGET_OBJECT_VOLATILE_JUMBO: /* 0x1f5 */ -/* File: armv5te/OP_IGET_OBJECT_VOLATILE_JUMBO.S */ -/* File: armv5te/OP_IGET_OBJECT_JUMBO.S */ -/* File: armv5te/OP_IGET_JUMBO.S */ - /* - * Jumbo 32-bit instance field get. - * - * for: iget/jumbo, iget-object/jumbo, iget-boolean/jumbo, iget-byte/jumbo, - * iget-char/jumbo, iget-short/jumbo - */ - /* exop vBBBB, vCCCC, field@AAAAAAAA */ - FETCH(r1, 1) @ r1<- aaaa (lo) - FETCH(r2, 2) @ r2<- AAAA (hi) - FETCH(r0, 4) @ r0<- CCCC - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- DvmDex - orr r1, r1, r2, lsl #16 @ r1<- AAAAaaaa - ldr r2, [r3, #offDvmDex_pResFields] @ r2<- pDvmDex->pResFields - GET_VREG(r9, r0) @ r9<- fp[CCCC], the object pointer - ldr r0, [r2, r1, lsl #2] @ r0<- resolved InstField ptr - cmp r0, #0 @ is resolved entry null? - bne .LOP_IGET_OBJECT_VOLATILE_JUMBO_finish @ no, already resolved -8: ldr r2, [rSELF, #offThread_method] @ r2<- current method - EXPORT_PC() @ resolve() could throw - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveInstField @ r0<- resolved InstField ptr - b .LOP_IGET_OBJECT_VOLATILE_JUMBO_resolved @ resolved, continue - - - -/* ------------------------------ */ - .balign 64 -.L_OP_IPUT_VOLATILE_JUMBO: /* 0x1f6 */ -/* File: armv5te/OP_IPUT_VOLATILE_JUMBO.S */ -/* File: armv5te/OP_IPUT_JUMBO.S */ - /* - * Jumbo 32-bit instance field put. - * - * for: iput/jumbo, iput-boolean/jumbo, iput-byte/jumbo, iput-char/jumbo, - * iput-short/jumbo - */ - /* exop vBBBB, vCCCC, field@AAAAAAAA */ - FETCH(r1, 1) @ r1<- aaaa (lo) - FETCH(r2, 2) @ r2<- AAAA (hi) - FETCH(r0, 4) @ r0<- CCCC - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- DvmDex - orr r1, r1, r2, lsl #16 @ r1<- AAAAaaaa - ldr r2, [r3, #offDvmDex_pResFields] @ r2<- pDvmDex->pResFields - GET_VREG(r9, r0) @ r9<- fp[CCCC], the object pointer - ldr r0, [r2, r1, lsl #2] @ r0<- resolved InstField ptr - cmp r0, #0 @ is resolved entry null? - bne .LOP_IPUT_VOLATILE_JUMBO_finish @ no, already resolved -8: ldr r2, [rSELF, #offThread_method] @ r2<- current method - EXPORT_PC() @ resolve() could throw - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveInstField @ r0<- resolved InstField ptr - b .LOP_IPUT_VOLATILE_JUMBO_resolved @ resolved, continue - - -/* ------------------------------ */ - .balign 64 -.L_OP_IPUT_WIDE_VOLATILE_JUMBO: /* 0x1f7 */ -/* File: armv5te/OP_IPUT_WIDE_VOLATILE_JUMBO.S */ -/* File: armv5te/OP_IPUT_WIDE_JUMBO.S */ - /* iput-wide/jumbo vBBBB, vCCCC, field@AAAAAAAA */ - FETCH(r1, 1) @ r1<- aaaa (lo) - FETCH(r2, 2) @ r2<- AAAA (hi) - FETCH(r0, 4) @ r0<- CCCC - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- DvmDex - orr r1, r1, r2, lsl #16 @ r1<- AAAAaaaa - ldr r2, [r3, #offDvmDex_pResFields] @ r2<- pResFields - GET_VREG(r9, r0) @ r9<- fp[B], the object pointer - ldr r0, [r2, r1, lsl #2] @ r0<- resolved InstField ptr - cmp r0, #0 @ is resolved entry null? - bne .LOP_IPUT_WIDE_VOLATILE_JUMBO_finish @ no, already resolved -8: ldr r2, [rSELF, #offThread_method] @ r2<- current method - EXPORT_PC() @ resolve() could throw - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveInstField @ r0<- resolved InstField ptr - b .LOP_IPUT_WIDE_VOLATILE_JUMBO_resolved @ resolved, continue - - -/* ------------------------------ */ - .balign 64 -.L_OP_IPUT_OBJECT_VOLATILE_JUMBO: /* 0x1f8 */ -/* File: armv5te/OP_IPUT_OBJECT_VOLATILE_JUMBO.S */ -/* File: armv5te/OP_IPUT_OBJECT_JUMBO.S */ - /* - * Jumbo 32-bit instance field put. - */ - /* iput-object/jumbo vBBBB, vCCCC, field@AAAAAAAA */ - FETCH(r1, 1) @ r1<- aaaa (lo) - FETCH(r2, 2) @ r2<- AAAA (hi) - FETCH(r0, 4) @ r0<- CCCC - ldr r3, [rSELF, #offThread_methodClassDex] @ r3<- DvmDex - orr r1, r1, r2, lsl #16 @ r1<- AAAAaaaa - ldr r2, [r3, #offDvmDex_pResFields] @ r2<- pDvmDex->pResFields - GET_VREG(r9, r0) @ r9<- fp[CCCC], the object pointer - ldr r0, [r2, r1, lsl #2] @ r0<- resolved InstField ptr - cmp r0, #0 @ is resolved entry null? - bne .LOP_IPUT_OBJECT_VOLATILE_JUMBO_finish @ no, already resolved -8: ldr r2, [rSELF, #offThread_method] @ r2<- current method - EXPORT_PC() @ resolve() could throw - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveInstField @ r0<- resolved InstField ptr - b .LOP_IPUT_OBJECT_VOLATILE_JUMBO_resolved @ resolved, continue - - -/* ------------------------------ */ - .balign 64 -.L_OP_SGET_VOLATILE_JUMBO: /* 0x1f9 */ -/* File: armv5te/OP_SGET_VOLATILE_JUMBO.S */ -/* File: armv5te/OP_SGET_JUMBO.S */ - /* - * Jumbo 32-bit SGET handler. - * - * for: sget/jumbo, sget-object/jumbo, sget-boolean/jumbo, sget-byte/jumbo, - * sget-char/jumbo, sget-short/jumbo - */ - /* exop vBBBB, field@AAAAAAAA */ - ldr r2, [rSELF, #offThread_methodClassDex] @ r2<- DvmDex - FETCH(r0, 1) @ r0<- aaaa (lo) - FETCH(r1, 2) @ r1<- AAAA (hi) - ldr r10, [r2, #offDvmDex_pResFields] @ r10<- dvmDex->pResFields - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - ldr r0, [r10, r1, lsl #2] @ r0<- resolved StaticField ptr - cmp r0, #0 @ is resolved entry null? - beq .LOP_SGET_VOLATILE_JUMBO_resolve @ yes, do resolve -.LOP_SGET_VOLATILE_JUMBO_finish: @ field ptr in r0 - ldr r1, [r0, #offStaticField_value] @ r1<- field value - SMP_DMB @ acquiring load - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(4) @ advance rPC, load rINST - SET_VREG(r1, r2) @ fp[BBBB]<- r1 - GET_INST_OPCODE(ip) @ extract opcode from rINST - GOTO_OPCODE(ip) @ jump to next instruction - - -/* ------------------------------ */ - .balign 64 -.L_OP_SGET_WIDE_VOLATILE_JUMBO: /* 0x1fa */ -/* File: armv5te/OP_SGET_WIDE_VOLATILE_JUMBO.S */ -/* File: armv5te/OP_SGET_WIDE_JUMBO.S */ - /* - * Jumbo 64-bit SGET handler. - */ - /* sget-wide/jumbo vBBBB, field@AAAAAAAA */ - ldr r2, [rSELF, #offThread_methodClassDex] @ r2<- DvmDex - FETCH(r0, 1) @ r0<- aaaa (lo) - FETCH(r1, 2) @ r1<- AAAA (hi) - ldr r2, [r2, #offDvmDex_pResFields] @ r2<- dvmDex->pResFields - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - ldr r0, [r2, r1, lsl #2] @ r0<- resolved StaticField ptr - cmp r0, #0 @ is resolved entry null? - beq .LOP_SGET_WIDE_VOLATILE_JUMBO_resolve @ yes, do resolve -.LOP_SGET_WIDE_VOLATILE_JUMBO_finish: - FETCH(r9, 3) @ r9<- BBBB - .if 1 - add r0, r0, #offStaticField_value @ r0<- pointer to data - bl dvmQuasiAtomicRead64 @ r0/r1<- contents of field - .else - ldrd r0, [r0, #offStaticField_value] @ r0/r1<- field value (aligned) - .endif - add r9, rFP, r9, lsl #2 @ r9<- &fp[BBBB] - FETCH_ADVANCE_INST(4) @ advance rPC, load rINST - stmia r9, {r0-r1} @ vBBBB/vBBBB+1<- r0/r1 - GET_INST_OPCODE(ip) @ extract opcode from rINST - GOTO_OPCODE(ip) @ jump to next instruction - - -/* ------------------------------ */ - .balign 64 -.L_OP_SGET_OBJECT_VOLATILE_JUMBO: /* 0x1fb */ -/* File: armv5te/OP_SGET_OBJECT_VOLATILE_JUMBO.S */ -/* File: armv5te/OP_SGET_OBJECT_JUMBO.S */ -/* File: armv5te/OP_SGET_JUMBO.S */ - /* - * Jumbo 32-bit SGET handler. - * - * for: sget/jumbo, sget-object/jumbo, sget-boolean/jumbo, sget-byte/jumbo, - * sget-char/jumbo, sget-short/jumbo - */ - /* exop vBBBB, field@AAAAAAAA */ - ldr r2, [rSELF, #offThread_methodClassDex] @ r2<- DvmDex - FETCH(r0, 1) @ r0<- aaaa (lo) - FETCH(r1, 2) @ r1<- AAAA (hi) - ldr r10, [r2, #offDvmDex_pResFields] @ r10<- dvmDex->pResFields - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - ldr r0, [r10, r1, lsl #2] @ r0<- resolved StaticField ptr - cmp r0, #0 @ is resolved entry null? - beq .LOP_SGET_OBJECT_VOLATILE_JUMBO_resolve @ yes, do resolve -.LOP_SGET_OBJECT_VOLATILE_JUMBO_finish: @ field ptr in r0 - ldr r1, [r0, #offStaticField_value] @ r1<- field value - SMP_DMB @ acquiring load - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(4) @ advance rPC, load rINST - SET_VREG(r1, r2) @ fp[BBBB]<- r1 - GET_INST_OPCODE(ip) @ extract opcode from rINST - GOTO_OPCODE(ip) @ jump to next instruction - - - -/* ------------------------------ */ - .balign 64 -.L_OP_SPUT_VOLATILE_JUMBO: /* 0x1fc */ -/* File: armv5te/OP_SPUT_VOLATILE_JUMBO.S */ -/* File: armv5te/OP_SPUT_JUMBO.S */ - /* - * Jumbo 32-bit SPUT handler. - * - * for: sput/jumbo, sput-boolean/jumbo, sput-byte/jumbo, sput-char/jumbo, - * sput-short/jumbo - */ - /* exop vBBBB, field@AAAAAAAA */ - ldr r2, [rSELF, #offThread_methodClassDex] @ r2<- DvmDex - FETCH(r0, 1) @ r0<- aaaa (lo) - FETCH(r1, 2) @ r1<- AAAA (hi) - ldr r10, [r2, #offDvmDex_pResFields] @ r10<- dvmDex->pResFields - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - ldr r0, [r10, r1, lsl #2] @ r0<- resolved StaticField ptr - cmp r0, #0 @ is resolved entry null? - beq .LOP_SPUT_VOLATILE_JUMBO_resolve @ yes, do resolve -.LOP_SPUT_VOLATILE_JUMBO_finish: @ field ptr in r0 - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(4) @ advance rPC, load rINST - GET_VREG(r1, r2) @ r1<- fp[BBBB] - GET_INST_OPCODE(ip) @ extract opcode from rINST - SMP_DMB_ST @ releasing store - str r1, [r0, #offStaticField_value] @ field<- vBBBB - SMP_DMB - GOTO_OPCODE(ip) @ jump to next instruction - - -/* ------------------------------ */ - .balign 64 -.L_OP_SPUT_WIDE_VOLATILE_JUMBO: /* 0x1fd */ -/* File: armv5te/OP_SPUT_WIDE_VOLATILE_JUMBO.S */ -/* File: armv5te/OP_SPUT_WIDE_JUMBO.S */ - /* - * Jumbo 64-bit SPUT handler. - */ - /* sput-wide/jumbo vBBBB, field@AAAAAAAA */ - ldr r0, [rSELF, #offThread_methodClassDex] @ r0<- DvmDex - FETCH(r1, 1) @ r1<- aaaa (lo) - FETCH(r2, 2) @ r2<- AAAA (hi) - ldr r10, [r0, #offDvmDex_pResFields] @ r10<- dvmDex->pResFields - orr r1, r1, r2, lsl #16 @ r1<- AAAAaaaa - FETCH(r9, 3) @ r9<- BBBB - ldr r2, [r10, r1, lsl #2] @ r2<- resolved StaticField ptr - add r9, rFP, r9, lsl #2 @ r9<- &fp[BBBB] - cmp r2, #0 @ is resolved entry null? - beq .LOP_SPUT_WIDE_VOLATILE_JUMBO_resolve @ yes, do resolve -.LOP_SPUT_WIDE_VOLATILE_JUMBO_finish: @ field ptr in r2, BBBB in r9 - FETCH_ADVANCE_INST(4) @ advance rPC, load rINST - ldmia r9, {r0-r1} @ r0/r1<- vBBBB/vBBBB+1 - GET_INST_OPCODE(r10) @ extract opcode from rINST - .if 1 - add r2, r2, #offStaticField_value @ r2<- pointer to data - bl dvmQuasiAtomicSwap64Sync @ stores r0/r1 into addr r2 - .else - strd r0, [r2, #offStaticField_value] @ field<- vBBBB/vBBBB+1 - .endif - GOTO_OPCODE(r10) @ jump to next instruction - - -/* ------------------------------ */ - .balign 64 -.L_OP_SPUT_OBJECT_VOLATILE_JUMBO: /* 0x1fe */ -/* File: armv5te/OP_SPUT_OBJECT_VOLATILE_JUMBO.S */ -/* File: armv5te/OP_SPUT_OBJECT_JUMBO.S */ - /* - * Jumbo 32-bit SPUT handler for objects - */ - /* sput-object/jumbo vBBBB, field@AAAAAAAA */ - ldr r2, [rSELF, #offThread_methodClassDex] @ r2<- DvmDex - FETCH(r0, 1) @ r0<- aaaa (lo) - FETCH(r1, 2) @ r1<- AAAA (hi) - ldr r10, [r2, #offDvmDex_pResFields] @ r10<- dvmDex->pResFields - orr r1, r0, r1, lsl #16 @ r1<- AAAAaaaa - ldr r0, [r10, r1, lsl #2] @ r0<- resolved StaticField ptr - cmp r0, #0 @ is resolved entry null? - beq .LOP_SPUT_OBJECT_VOLATILE_JUMBO_resolve @ yes, do resolve -.LOP_SPUT_OBJECT_VOLATILE_JUMBO_finish: @ field ptr in r0 - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(4) @ advance rPC, load rINST - GET_VREG(r1, r2) @ r1<- fp[BBBB] - ldr r2, [rSELF, #offThread_cardTable] @ r2<- card table base - ldr r9, [r0, #offField_clazz] @ r9<- field->clazz - GET_INST_OPCODE(ip) @ extract opcode from rINST - SMP_DMB_ST @ releasing store - b .LOP_SPUT_OBJECT_VOLATILE_JUMBO_end - - -/* ------------------------------ */ - .balign 64 -.L_OP_THROW_VERIFICATION_ERROR_JUMBO: /* 0x1ff */ -/* File: armv5te/OP_THROW_VERIFICATION_ERROR_JUMBO.S */ - /* - * Handle a jumbo throw-verification-error instruction. This throws an - * exception for an error discovered during verification. The - * exception is indicated by BBBB, with some detail provided by AAAAAAAA. - */ - /* exop BBBB, Class@AAAAAAAA */ - FETCH(r1, 1) @ r1<- aaaa (lo) - FETCH(r2, 2) @ r2<- AAAA (hi) - ldr r0, [rSELF, #offThread_method] @ r0<- self->method - orr r2, r1, r2, lsl #16 @ r2<- AAAAaaaa - EXPORT_PC() @ export the PC - FETCH(r1, 3) @ r1<- BBBB - bl dvmThrowVerificationError @ always throws - b common_exceptionThrown @ handle exception - .balign 64 .size dvmAsmInstructionStart, .-dvmAsmInstructionStart .global dvmAsmInstructionEnd @@ -13222,11 +10108,7 @@ d2l_doconv: */ .LOP_INVOKE_OBJECT_INIT_RANGE_debugger: ldr r1, [rSELF, #offThread_mainHandlerTable] - .if 0 - mov ip, #OP_INVOKE_DIRECT_JUMBO - .else mov ip, #OP_INVOKE_DIRECT_RANGE - .endif GOTO_OPCODE_BASE(r1,ip) @ execute it /* continuation for OP_IPUT_OBJECT_VOLATILE */ @@ -13314,1594 +10196,6 @@ d2l_doconv: b .LOP_SPUT_OBJECT_VOLATILE_finish @ resume -/* continuation for OP_CONST_CLASS_JUMBO */ - - /* - * Continuation if the Class has not yet been resolved. - * r1: AAAAAAAA (Class ref) - * r9: target register - */ -.LOP_CONST_CLASS_JUMBO_resolve: - EXPORT_PC() - ldr r0, [rSELF, #offThread_method] @ r0<- self->method - mov r2, #1 @ r2<- true - ldr r0, [r0, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveClass @ r0<- Class reference - cmp r0, #0 @ failed? - beq common_exceptionThrown @ yup, handle the exception - FETCH_ADVANCE_INST(4) @ advance rPC, load rINST - GET_INST_OPCODE(ip) @ extract opcode from rINST - SET_VREG(r0, r9) @ vBBBB<- r0 - GOTO_OPCODE(ip) @ jump to next instruction - -/* continuation for OP_CHECK_CAST_JUMBO */ - - /* - * Trivial test failed, need to perform full check. This is common. - * r0 holds obj->clazz - * r1 holds desired class resolved from AAAAAAAA - * r9 holds object - */ -.LOP_CHECK_CAST_JUMBO_fullcheck: - mov r10, r1 @ avoid ClassObject getting clobbered - bl dvmInstanceofNonTrivial @ r0<- boolean result - cmp r0, #0 @ failed? - bne .LOP_CHECK_CAST_JUMBO_okay @ no, success - - @ A cast has failed. We need to throw a ClassCastException. - EXPORT_PC() @ about to throw - ldr r0, [r9, #offObject_clazz] @ r0<- obj->clazz (actual class) - mov r1, r10 @ r1<- desired class - bl dvmThrowClassCastException - b common_exceptionThrown - - /* - * Advance PC and get the next opcode. - */ -.LOP_CHECK_CAST_JUMBO_okay: - FETCH_ADVANCE_INST(4) @ advance rPC, load rINST - GET_INST_OPCODE(ip) @ extract opcode from rINST - GOTO_OPCODE(ip) @ jump to next instruction - - /* - * Resolution required. This is the least-likely path. - * - * r2 holds AAAAAAAA - * r9 holds object - */ -.LOP_CHECK_CAST_JUMBO_resolve: - EXPORT_PC() @ resolve() could throw - ldr r3, [rSELF, #offThread_method] @ r3<- self->method - mov r1, r2 @ r1<- AAAAAAAA - mov r2, #0 @ r2<- false - ldr r0, [r3, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveClass @ r0<- resolved ClassObject ptr - cmp r0, #0 @ got null? - beq common_exceptionThrown @ yes, handle exception - mov r1, r0 @ r1<- class resolved from AAAAAAAA - ldr r0, [r9, #offObject_clazz] @ r0<- obj->clazz - b .LOP_CHECK_CAST_JUMBO_resolved @ pick up where we left off - -/* continuation for OP_INSTANCE_OF_JUMBO */ - - /* - * Class resolved, determine type of check necessary. This is common. - * r0 holds obj->clazz - * r1 holds class resolved from AAAAAAAA - * r9 holds BBBB - */ -.LOP_INSTANCE_OF_JUMBO_resolved: - cmp r0, r1 @ same class (trivial success)? - beq .LOP_INSTANCE_OF_JUMBO_trivial @ yes, trivial finish - @ fall through to OP_INSTANCE_OF_JUMBO_fullcheck - - /* - * Trivial test failed, need to perform full check. This is common. - * r0 holds obj->clazz - * r1 holds class resolved from AAAAAAAA - * r9 holds BBBB - */ -.LOP_INSTANCE_OF_JUMBO_fullcheck: - bl dvmInstanceofNonTrivial @ r0<- boolean result - @ fall through to OP_INSTANCE_OF_JUMBO_store - - /* - * r0 holds boolean result - * r9 holds BBBB - */ -.LOP_INSTANCE_OF_JUMBO_store: - FETCH_ADVANCE_INST(5) @ advance rPC, load rINST - SET_VREG(r0, r9) @ vBBBB<- r0 - GET_INST_OPCODE(ip) @ extract opcode from rINST - GOTO_OPCODE(ip) @ jump to next instruction - - /* - * Trivial test succeeded, save and bail. - * r9 holds BBBB - */ -.LOP_INSTANCE_OF_JUMBO_trivial: - mov r0, #1 @ indicate success - @ could b OP_INSTANCE_OF_JUMBO_store, but copying is faster and cheaper - FETCH_ADVANCE_INST(5) @ advance rPC, load rINST - SET_VREG(r0, r9) @ vBBBB<- r0 - GET_INST_OPCODE(ip) @ extract opcode from rINST - GOTO_OPCODE(ip) @ jump to next instruction - - /* - * Resolution required. This is the least-likely path. - * - * r3 holds AAAAAAAA - * r9 holds BBBB - */ - -.LOP_INSTANCE_OF_JUMBO_resolve: - EXPORT_PC() @ resolve() could throw - ldr r0, [rSELF, #offThread_method] @ r0<- self->method - mov r1, r3 @ r1<- AAAAAAAA - mov r2, #1 @ r2<- true - ldr r0, [r0, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveClass @ r0<- resolved ClassObject ptr - cmp r0, #0 @ got null? - beq common_exceptionThrown @ yes, handle exception - FETCH(r3, 4) @ r3<- vCCCC - mov r1, r0 @ r1<- class resolved from AAAAAAAA - GET_VREG(r0, r3) @ r0<- vCCCC (object) - ldr r0, [r0, #offObject_clazz] @ r0<- obj->clazz - b .LOP_INSTANCE_OF_JUMBO_resolved @ pick up where we left off - -/* continuation for OP_NEW_INSTANCE_JUMBO */ - - .balign 32 @ minimize cache lines -.LOP_NEW_INSTANCE_JUMBO_finish: @ r0=new object - FETCH(r3, 3) @ r3<- BBBB - cmp r0, #0 @ failed? -#if defined(WITH_JIT) - /* - * The JIT needs the class to be fully resolved before it can - * include this instruction in a trace. - */ - ldrh r1, [rSELF, #offThread_subMode] - beq common_exceptionThrown @ yes, handle the exception - ands r1, #kSubModeJitTraceBuild @ under construction? - bne .LOP_NEW_INSTANCE_JUMBO_jitCheck -#else - beq common_exceptionThrown @ yes, handle the exception -#endif -.LOP_NEW_INSTANCE_JUMBO_end: - FETCH_ADVANCE_INST(4) @ advance rPC, load rINST - GET_INST_OPCODE(ip) @ extract opcode from rINST - SET_VREG(r0, r3) @ vBBBB<- r0 - GOTO_OPCODE(ip) @ jump to next instruction - -#if defined(WITH_JIT) - /* - * Check to see if we need to stop the trace building early. - * r0: new object - * r3: vAA - */ -.LOP_NEW_INSTANCE_JUMBO_jitCheck: - ldr r1, [r10] @ reload resolved class - cmp r1, #0 @ okay? - bne .LOP_NEW_INSTANCE_JUMBO_end @ yes, finish - mov r9, r0 @ preserve new object - mov r10, r3 @ preserve vAA - mov r0, rSELF - mov r1, rPC - bl dvmJitEndTraceSelect @ (self, pc) - FETCH_ADVANCE_INST(2) @ advance rPC, load rINST - GET_INST_OPCODE(ip) @ extract opcode from rINST - SET_VREG(r9, r10) @ vAA<- new object - GOTO_OPCODE(ip) @ jump to next instruction -#endif - - /* - * Class initialization required. - * - * r0 holds class object - */ -.LOP_NEW_INSTANCE_JUMBO_needinit: - mov r9, r0 @ save r0 - bl dvmInitClass @ initialize class - cmp r0, #0 @ check boolean result - mov r0, r9 @ restore r0 - bne .LOP_NEW_INSTANCE_JUMBO_initialized @ success, continue - b common_exceptionThrown @ failed, deal with init exception - - /* - * Resolution required. This is the least-likely path. - * - * r1 holds AAAAAAAA - */ -.LOP_NEW_INSTANCE_JUMBO_resolve: - ldr r3, [rSELF, #offThread_method] @ r3<- self->method - mov r2, #0 @ r2<- false - ldr r0, [r3, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveClass @ r0<- resolved ClassObject ptr - cmp r0, #0 @ got null? - bne .LOP_NEW_INSTANCE_JUMBO_resolved @ no, continue - b common_exceptionThrown @ yes, handle exception - -/* continuation for OP_NEW_ARRAY_JUMBO */ - - - /* - * Resolve class. (This is an uncommon case.) - * - * r1 holds array length - * r2 holds class ref AAAAAAAA - */ -.LOP_NEW_ARRAY_JUMBO_resolve: - ldr r3, [rSELF, #offThread_method] @ r3<- self->method - mov r9, r1 @ r9<- length (save) - mov r1, r2 @ r1<- AAAAAAAA - mov r2, #0 @ r2<- false - ldr r0, [r3, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveClass @ r0<- call(clazz, ref) - cmp r0, #0 @ got null? - mov r1, r9 @ r1<- length (restore) - beq common_exceptionThrown @ yes, handle exception - @ fall through to OP_NEW_ARRAY_JUMBO_finish - - /* - * Finish allocation. - * - * r0 holds class - * r1 holds array length - */ -.LOP_NEW_ARRAY_JUMBO_finish: - mov r2, #ALLOC_DONT_TRACK @ don't track in local refs table - bl dvmAllocArrayByClass @ r0<- call(clazz, length, flags) - cmp r0, #0 @ failed? - FETCH(r2, 3) @ r2<- vBBBB - beq common_exceptionThrown @ yes, handle the exception - FETCH_ADVANCE_INST(5) @ advance rPC, load rINST - GET_INST_OPCODE(ip) @ extract opcode from rINST - SET_VREG(r0, r2) @ vBBBB<- r0 - GOTO_OPCODE(ip) @ jump to next instruction - -/* continuation for OP_FILLED_NEW_ARRAY_JUMBO */ - - /* - * On entry: - * r0 holds array class - */ -.LOP_FILLED_NEW_ARRAY_JUMBO_continue: - ldr r3, [r0, #offClassObject_descriptor] @ r3<- arrayClass->descriptor - mov r2, #ALLOC_DONT_TRACK @ r2<- alloc flags - ldrb rINST, [r3, #1] @ rINST<- descriptor[1] - FETCH(r1, 3) @ r1<- BBBB (length) - cmp rINST, #'I' @ array of ints? - cmpne rINST, #'L' @ array of objects? - cmpne rINST, #'[' @ array of arrays? - mov r9, r1 @ save length in r9 - bne .LOP_FILLED_NEW_ARRAY_JUMBO_notimpl @ no, not handled yet - bl dvmAllocArrayByClass @ r0<- call(arClass, length, flags) - cmp r0, #0 @ null return? - beq common_exceptionThrown @ alloc failed, handle exception - - FETCH(r1, 4) @ r1<- CCCC - str r0, [rSELF, #offThread_retval] @ retval.l <- new array - str rINST, [rSELF, #offThread_retval+4] @ retval.h <- type - add r0, r0, #offArrayObject_contents @ r0<- newArray->contents - subs r9, r9, #1 @ length--, check for neg - FETCH_ADVANCE_INST(5) @ advance to next instr, load rINST - bmi 2f @ was zero, bail - - @ copy values from registers into the array - @ r0=array, r1=CCCC, r9=BBBB (length) - add r2, rFP, r1, lsl #2 @ r2<- &fp[CCCC] -1: ldr r3, [r2], #4 @ r3<- *r2++ - subs r9, r9, #1 @ count-- - str r3, [r0], #4 @ *contents++ = vX - bpl 1b - -2: ldr r0, [rSELF, #offThread_retval] @ r0<- object - ldr r1, [rSELF, #offThread_retval+4] @ r1<- type - ldr r2, [rSELF, #offThread_cardTable] @ r2<- card table base - GET_INST_OPCODE(ip) @ ip<- opcode from rINST - cmp r1, #'I' @ Is int array? - strneb r2, [r2, r0, lsr #GC_CARD_SHIFT] @ Mark card based on object head - GOTO_OPCODE(ip) @ execute it - - /* - * Throw an exception indicating that we have not implemented this - * mode of filled-new-array. - */ -.LOP_FILLED_NEW_ARRAY_JUMBO_notimpl: - ldr r0, .L_strFilledNewArrayNotImpl_OP_FILLED_NEW_ARRAY_JUMBO - bl dvmThrowInternalError - b common_exceptionThrown - - /* - * Ideally we'd only define this once, but depending on layout we can - * exceed the range of the load above. - */ - -.L_strFilledNewArrayNotImpl_OP_FILLED_NEW_ARRAY_JUMBO: - .word .LstrFilledNewArrayNotImpl - -/* continuation for OP_IGET_JUMBO */ - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IGET_JUMBO_resolved: - cmp r0, #0 @ resolution unsuccessful? - beq common_exceptionThrown @ yes, throw exception - @ fall through to OP_IGET_JUMBO_finish - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IGET_JUMBO_finish: - @bl common_squeak0 - cmp r9, #0 @ check object for null - ldr r3, [r0, #offInstField_byteOffset] @ r3<- byte offset of field - beq common_errNullObject @ object was null - ldr r0, [r9, r3] @ r0<- obj.field (8/16/32 bits) - @ no-op @ acquiring load - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(5) @ advance rPC, load rINST - SET_VREG(r0, r2) @ fp[BBBB]<- r0 - GET_INST_OPCODE(ip) @ extract opcode from rINST - GOTO_OPCODE(ip) @ jump to next instruction - -/* continuation for OP_IGET_WIDE_JUMBO */ - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IGET_WIDE_JUMBO_resolved: - cmp r0, #0 @ resolution unsuccessful? - beq common_exceptionThrown @ yes, throw exception - @ fall through to OP_IGET_WIDE_JUMBO_finish - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IGET_WIDE_JUMBO_finish: - cmp r9, #0 @ check object for null - ldr r3, [r0, #offInstField_byteOffset] @ r3<- byte offset of field - beq common_errNullObject @ object was null - .if 0 - add r0, r9, r3 @ r0<- address of field - bl dvmQuasiAtomicRead64 @ r0/r1<- contents of field - .else - ldrd r0, [r9, r3] @ r0/r1<- obj.field (64-bit align ok) - .endif - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(5) @ advance rPC, load rINST - add r3, rFP, r2, lsl #2 @ r3<- &fp[BBBB] - GET_INST_OPCODE(ip) @ extract opcode from rINST - stmia r3, {r0-r1} @ fp[BBBB]<- r0/r1 - GOTO_OPCODE(ip) @ jump to next instruction - -/* continuation for OP_IGET_OBJECT_JUMBO */ - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IGET_OBJECT_JUMBO_resolved: - cmp r0, #0 @ resolution unsuccessful? - beq common_exceptionThrown @ yes, throw exception - @ fall through to OP_IGET_OBJECT_JUMBO_finish - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IGET_OBJECT_JUMBO_finish: - @bl common_squeak0 - cmp r9, #0 @ check object for null - ldr r3, [r0, #offInstField_byteOffset] @ r3<- byte offset of field - beq common_errNullObject @ object was null - ldr r0, [r9, r3] @ r0<- obj.field (8/16/32 bits) - @ no-op @ acquiring load - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(5) @ advance rPC, load rINST - SET_VREG(r0, r2) @ fp[BBBB]<- r0 - GET_INST_OPCODE(ip) @ extract opcode from rINST - GOTO_OPCODE(ip) @ jump to next instruction - -/* continuation for OP_IGET_BOOLEAN_JUMBO */ - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IGET_BOOLEAN_JUMBO_resolved: - cmp r0, #0 @ resolution unsuccessful? - beq common_exceptionThrown @ yes, throw exception - @ fall through to OP_IGET_BOOLEAN_JUMBO_finish - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IGET_BOOLEAN_JUMBO_finish: - @bl common_squeak1 - cmp r9, #0 @ check object for null - ldr r3, [r0, #offInstField_byteOffset] @ r3<- byte offset of field - beq common_errNullObject @ object was null - ldr r0, [r9, r3] @ r0<- obj.field (8/16/32 bits) - @ no-op @ acquiring load - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(5) @ advance rPC, load rINST - SET_VREG(r0, r2) @ fp[BBBB]<- r0 - GET_INST_OPCODE(ip) @ extract opcode from rINST - GOTO_OPCODE(ip) @ jump to next instruction - -/* continuation for OP_IGET_BYTE_JUMBO */ - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IGET_BYTE_JUMBO_resolved: - cmp r0, #0 @ resolution unsuccessful? - beq common_exceptionThrown @ yes, throw exception - @ fall through to OP_IGET_BYTE_JUMBO_finish - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IGET_BYTE_JUMBO_finish: - @bl common_squeak2 - cmp r9, #0 @ check object for null - ldr r3, [r0, #offInstField_byteOffset] @ r3<- byte offset of field - beq common_errNullObject @ object was null - ldr r0, [r9, r3] @ r0<- obj.field (8/16/32 bits) - @ no-op @ acquiring load - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(5) @ advance rPC, load rINST - SET_VREG(r0, r2) @ fp[BBBB]<- r0 - GET_INST_OPCODE(ip) @ extract opcode from rINST - GOTO_OPCODE(ip) @ jump to next instruction - -/* continuation for OP_IGET_CHAR_JUMBO */ - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IGET_CHAR_JUMBO_resolved: - cmp r0, #0 @ resolution unsuccessful? - beq common_exceptionThrown @ yes, throw exception - @ fall through to OP_IGET_CHAR_JUMBO_finish - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IGET_CHAR_JUMBO_finish: - @bl common_squeak3 - cmp r9, #0 @ check object for null - ldr r3, [r0, #offInstField_byteOffset] @ r3<- byte offset of field - beq common_errNullObject @ object was null - ldr r0, [r9, r3] @ r0<- obj.field (8/16/32 bits) - @ no-op @ acquiring load - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(5) @ advance rPC, load rINST - SET_VREG(r0, r2) @ fp[BBBB]<- r0 - GET_INST_OPCODE(ip) @ extract opcode from rINST - GOTO_OPCODE(ip) @ jump to next instruction - -/* continuation for OP_IGET_SHORT_JUMBO */ - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IGET_SHORT_JUMBO_resolved: - cmp r0, #0 @ resolution unsuccessful? - beq common_exceptionThrown @ yes, throw exception - @ fall through to OP_IGET_SHORT_JUMBO_finish - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IGET_SHORT_JUMBO_finish: - @bl common_squeak4 - cmp r9, #0 @ check object for null - ldr r3, [r0, #offInstField_byteOffset] @ r3<- byte offset of field - beq common_errNullObject @ object was null - ldr r0, [r9, r3] @ r0<- obj.field (8/16/32 bits) - @ no-op @ acquiring load - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(5) @ advance rPC, load rINST - SET_VREG(r0, r2) @ fp[BBBB]<- r0 - GET_INST_OPCODE(ip) @ extract opcode from rINST - GOTO_OPCODE(ip) @ jump to next instruction - -/* continuation for OP_IPUT_JUMBO */ - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IPUT_JUMBO_resolved: - cmp r0, #0 @ resolution unsuccessful? - beq common_exceptionThrown @ yes, throw exception - @ fall through to OP_IPUT_JUMBO_finish - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IPUT_JUMBO_finish: - @bl common_squeak0 - ldr r3, [r0, #offInstField_byteOffset] @ r3<- byte offset of field - FETCH(r1, 3) @ r1<- BBBB - cmp r9, #0 @ check object for null - GET_VREG(r0, r1) @ r0<- fp[BBBB] - beq common_errNullObject @ object was null - FETCH_ADVANCE_INST(5) @ advance rPC, load rINST - GET_INST_OPCODE(ip) @ extract opcode from rINST - @ no-op @ releasing store - str r0, [r9, r3] @ obj.field (8/16/32 bits)<- r0 - @ no-op - GOTO_OPCODE(ip) @ jump to next instruction - -/* continuation for OP_IPUT_WIDE_JUMBO */ - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IPUT_WIDE_JUMBO_resolved: - cmp r0, #0 @ resolution unsuccessful? - beq common_exceptionThrown @ yes, throw exception - @ fall through to OP_IPUT_WIDE_JUMBO_finish - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IPUT_WIDE_JUMBO_finish: - cmp r9, #0 @ check object for null - FETCH(r2, 3) @ r1<- BBBB - ldr r3, [r0, #offInstField_byteOffset] @ r3<- byte offset of field - add r2, rFP, r2, lsl #2 @ r3<- &fp[BBBB] - beq common_errNullObject @ object was null - FETCH_ADVANCE_INST(5) @ advance rPC, load rINST - ldmia r2, {r0-r1} @ r0/r1<- fp[BBBB] - GET_INST_OPCODE(r10) @ extract opcode from rINST - .if 0 - add r2, r9, r3 @ r2<- target address - bl dvmQuasiAtomicSwap64Sync @ stores r0/r1 into addr r2 - .else - strd r0, [r9, r3] @ obj.field (64 bits, aligned)<- r0/r1 - .endif - GOTO_OPCODE(r10) @ jump to next instruction - -/* continuation for OP_IPUT_OBJECT_JUMBO */ - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IPUT_OBJECT_JUMBO_resolved: - cmp r0, #0 @ resolution unsuccessful? - beq common_exceptionThrown @ yes, throw exception - @ fall through to OP_IPUT_OBJECT_JUMBO_finish - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IPUT_OBJECT_JUMBO_finish: - @bl common_squeak0 - ldr r3, [r0, #offInstField_byteOffset] @ r3<- byte offset of field - FETCH(r1, 3) @ r1<- BBBB - cmp r9, #0 @ check object for null - GET_VREG(r0, r1) @ r0<- fp[BBBB] - ldr r2, [rSELF, #offThread_cardTable] @ r2<- card table base - beq common_errNullObject @ object was null - FETCH_ADVANCE_INST(5) @ advance rPC, load rINST - GET_INST_OPCODE(ip) @ extract opcode from rINST - @ no-op @ releasing store - str r0, [r9, r3] @ obj.field (32 bits)<- r0 - @ no-op - cmp r0, #0 @ stored a null reference? - strneb r2, [r2, r9, lsr #GC_CARD_SHIFT] @ mark card if not - GOTO_OPCODE(ip) @ jump to next instruction - -/* continuation for OP_IPUT_BOOLEAN_JUMBO */ - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IPUT_BOOLEAN_JUMBO_resolved: - cmp r0, #0 @ resolution unsuccessful? - beq common_exceptionThrown @ yes, throw exception - @ fall through to OP_IPUT_BOOLEAN_JUMBO_finish - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IPUT_BOOLEAN_JUMBO_finish: - @bl common_squeak1 - ldr r3, [r0, #offInstField_byteOffset] @ r3<- byte offset of field - FETCH(r1, 3) @ r1<- BBBB - cmp r9, #0 @ check object for null - GET_VREG(r0, r1) @ r0<- fp[BBBB] - beq common_errNullObject @ object was null - FETCH_ADVANCE_INST(5) @ advance rPC, load rINST - GET_INST_OPCODE(ip) @ extract opcode from rINST - @ no-op @ releasing store - str r0, [r9, r3] @ obj.field (8/16/32 bits)<- r0 - @ no-op - GOTO_OPCODE(ip) @ jump to next instruction - -/* continuation for OP_IPUT_BYTE_JUMBO */ - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IPUT_BYTE_JUMBO_resolved: - cmp r0, #0 @ resolution unsuccessful? - beq common_exceptionThrown @ yes, throw exception - @ fall through to OP_IPUT_BYTE_JUMBO_finish - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IPUT_BYTE_JUMBO_finish: - @bl common_squeak2 - ldr r3, [r0, #offInstField_byteOffset] @ r3<- byte offset of field - FETCH(r1, 3) @ r1<- BBBB - cmp r9, #0 @ check object for null - GET_VREG(r0, r1) @ r0<- fp[BBBB] - beq common_errNullObject @ object was null - FETCH_ADVANCE_INST(5) @ advance rPC, load rINST - GET_INST_OPCODE(ip) @ extract opcode from rINST - @ no-op @ releasing store - str r0, [r9, r3] @ obj.field (8/16/32 bits)<- r0 - @ no-op - GOTO_OPCODE(ip) @ jump to next instruction - -/* continuation for OP_IPUT_CHAR_JUMBO */ - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IPUT_CHAR_JUMBO_resolved: - cmp r0, #0 @ resolution unsuccessful? - beq common_exceptionThrown @ yes, throw exception - @ fall through to OP_IPUT_CHAR_JUMBO_finish - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IPUT_CHAR_JUMBO_finish: - @bl common_squeak3 - ldr r3, [r0, #offInstField_byteOffset] @ r3<- byte offset of field - FETCH(r1, 3) @ r1<- BBBB - cmp r9, #0 @ check object for null - GET_VREG(r0, r1) @ r0<- fp[BBBB] - beq common_errNullObject @ object was null - FETCH_ADVANCE_INST(5) @ advance rPC, load rINST - GET_INST_OPCODE(ip) @ extract opcode from rINST - @ no-op @ releasing store - str r0, [r9, r3] @ obj.field (8/16/32 bits)<- r0 - @ no-op - GOTO_OPCODE(ip) @ jump to next instruction - -/* continuation for OP_IPUT_SHORT_JUMBO */ - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IPUT_SHORT_JUMBO_resolved: - cmp r0, #0 @ resolution unsuccessful? - beq common_exceptionThrown @ yes, throw exception - @ fall through to OP_IPUT_SHORT_JUMBO_finish - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IPUT_SHORT_JUMBO_finish: - @bl common_squeak4 - ldr r3, [r0, #offInstField_byteOffset] @ r3<- byte offset of field - FETCH(r1, 3) @ r1<- BBBB - cmp r9, #0 @ check object for null - GET_VREG(r0, r1) @ r0<- fp[BBBB] - beq common_errNullObject @ object was null - FETCH_ADVANCE_INST(5) @ advance rPC, load rINST - GET_INST_OPCODE(ip) @ extract opcode from rINST - @ no-op @ releasing store - str r0, [r9, r3] @ obj.field (8/16/32 bits)<- r0 - @ no-op - GOTO_OPCODE(ip) @ jump to next instruction - -/* continuation for OP_SGET_JUMBO */ - - /* - * Continuation if the field has not yet been resolved. - * r1: AAAAAAAA field ref - * r10: dvmDex->pResFields - */ -.LOP_SGET_JUMBO_resolve: - ldr r2, [rSELF, #offThread_method] @ r2<- current method -#if defined(WITH_JIT) - add r10, r10, r1, lsl #2 @ r10<- &dvmDex->pResFields[field] -#endif - EXPORT_PC() @ resolve() could throw, so export now - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveStaticField @ r0<- resolved StaticField ptr - cmp r0, #0 @ success? - beq common_exceptionThrown @ no, handle exception -#if defined(WITH_JIT) - /* - * If the JIT is actively building a trace we need to make sure - * that the field is fully resolved before including this instruction. - */ - bl common_verifyField -#endif - b .LOP_SGET_JUMBO_finish @ resume - -/* continuation for OP_SGET_WIDE_JUMBO */ - - /* - * Continuation if the field has not yet been resolved. - * r1: AAAAAAAA field ref - * - * Returns StaticField pointer in r0. - */ -.LOP_SGET_WIDE_JUMBO_resolve: - ldr r2, [rSELF, #offThread_method] @ r2<- current method - EXPORT_PC() @ resolve() could throw, so export now - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveStaticField @ r0<- resolved StaticField ptr - cmp r0, #0 @ success? - bne .LOP_SGET_WIDE_JUMBO_finish @ yes, finish - b common_exceptionThrown @ no, handle exception - -/* continuation for OP_SGET_OBJECT_JUMBO */ - - /* - * Continuation if the field has not yet been resolved. - * r1: AAAAAAAA field ref - * r10: dvmDex->pResFields - */ -.LOP_SGET_OBJECT_JUMBO_resolve: - ldr r2, [rSELF, #offThread_method] @ r2<- current method -#if defined(WITH_JIT) - add r10, r10, r1, lsl #2 @ r10<- &dvmDex->pResFields[field] -#endif - EXPORT_PC() @ resolve() could throw, so export now - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveStaticField @ r0<- resolved StaticField ptr - cmp r0, #0 @ success? - beq common_exceptionThrown @ no, handle exception -#if defined(WITH_JIT) - /* - * If the JIT is actively building a trace we need to make sure - * that the field is fully resolved before including this instruction. - */ - bl common_verifyField -#endif - b .LOP_SGET_OBJECT_JUMBO_finish @ resume - -/* continuation for OP_SGET_BOOLEAN_JUMBO */ - - /* - * Continuation if the field has not yet been resolved. - * r1: AAAAAAAA field ref - * r10: dvmDex->pResFields - */ -.LOP_SGET_BOOLEAN_JUMBO_resolve: - ldr r2, [rSELF, #offThread_method] @ r2<- current method -#if defined(WITH_JIT) - add r10, r10, r1, lsl #2 @ r10<- &dvmDex->pResFields[field] -#endif - EXPORT_PC() @ resolve() could throw, so export now - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveStaticField @ r0<- resolved StaticField ptr - cmp r0, #0 @ success? - beq common_exceptionThrown @ no, handle exception -#if defined(WITH_JIT) - /* - * If the JIT is actively building a trace we need to make sure - * that the field is fully resolved before including this instruction. - */ - bl common_verifyField -#endif - b .LOP_SGET_BOOLEAN_JUMBO_finish @ resume - -/* continuation for OP_SGET_BYTE_JUMBO */ - - /* - * Continuation if the field has not yet been resolved. - * r1: AAAAAAAA field ref - * r10: dvmDex->pResFields - */ -.LOP_SGET_BYTE_JUMBO_resolve: - ldr r2, [rSELF, #offThread_method] @ r2<- current method -#if defined(WITH_JIT) - add r10, r10, r1, lsl #2 @ r10<- &dvmDex->pResFields[field] -#endif - EXPORT_PC() @ resolve() could throw, so export now - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveStaticField @ r0<- resolved StaticField ptr - cmp r0, #0 @ success? - beq common_exceptionThrown @ no, handle exception -#if defined(WITH_JIT) - /* - * If the JIT is actively building a trace we need to make sure - * that the field is fully resolved before including this instruction. - */ - bl common_verifyField -#endif - b .LOP_SGET_BYTE_JUMBO_finish @ resume - -/* continuation for OP_SGET_CHAR_JUMBO */ - - /* - * Continuation if the field has not yet been resolved. - * r1: AAAAAAAA field ref - * r10: dvmDex->pResFields - */ -.LOP_SGET_CHAR_JUMBO_resolve: - ldr r2, [rSELF, #offThread_method] @ r2<- current method -#if defined(WITH_JIT) - add r10, r10, r1, lsl #2 @ r10<- &dvmDex->pResFields[field] -#endif - EXPORT_PC() @ resolve() could throw, so export now - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveStaticField @ r0<- resolved StaticField ptr - cmp r0, #0 @ success? - beq common_exceptionThrown @ no, handle exception -#if defined(WITH_JIT) - /* - * If the JIT is actively building a trace we need to make sure - * that the field is fully resolved before including this instruction. - */ - bl common_verifyField -#endif - b .LOP_SGET_CHAR_JUMBO_finish @ resume - -/* continuation for OP_SGET_SHORT_JUMBO */ - - /* - * Continuation if the field has not yet been resolved. - * r1: AAAAAAAA field ref - * r10: dvmDex->pResFields - */ -.LOP_SGET_SHORT_JUMBO_resolve: - ldr r2, [rSELF, #offThread_method] @ r2<- current method -#if defined(WITH_JIT) - add r10, r10, r1, lsl #2 @ r10<- &dvmDex->pResFields[field] -#endif - EXPORT_PC() @ resolve() could throw, so export now - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveStaticField @ r0<- resolved StaticField ptr - cmp r0, #0 @ success? - beq common_exceptionThrown @ no, handle exception -#if defined(WITH_JIT) - /* - * If the JIT is actively building a trace we need to make sure - * that the field is fully resolved before including this instruction. - */ - bl common_verifyField -#endif - b .LOP_SGET_SHORT_JUMBO_finish @ resume - -/* continuation for OP_SPUT_JUMBO */ - - /* - * Continuation if the field has not yet been resolved. - * r1: AAAAAAAA field ref - * r10: dvmDex->pResFields - */ -.LOP_SPUT_JUMBO_resolve: - ldr r2, [rSELF, #offThread_method] @ r2<- current method -#if defined(WITH_JIT) - add r10, r10, r1, lsl #2 @ r10<- &dvmDex->pResFields[field] -#endif - EXPORT_PC() @ resolve() could throw, so export now - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveStaticField @ r0<- resolved StaticField ptr - cmp r0, #0 @ success? - beq common_exceptionThrown @ no, handle exception -#if defined(WITH_JIT) - /* - * If the JIT is actively building a trace we need to make sure - * that the field is fully resolved before including this instruction. - */ - bl common_verifyField -#endif - b .LOP_SPUT_JUMBO_finish @ resume - -/* continuation for OP_SPUT_WIDE_JUMBO */ - - /* - * Continuation if the field has not yet been resolved. - * r1: AAAAAAAA field ref - * r9: &fp[BBBB] - * r10: dvmDex->pResFields - * - * Returns StaticField pointer in r2. - */ -.LOP_SPUT_WIDE_JUMBO_resolve: - ldr r2, [rSELF, #offThread_method] @ r2<- current method -#if defined(WITH_JIT) - add r10, r10, r1, lsl #2 @ r10<- &dvmDex->pResFields[field] -#endif - EXPORT_PC() @ resolve() could throw, so export now - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveStaticField @ r0<- resolved StaticField ptr - cmp r0, #0 @ success? - mov r2, r0 @ copy to r2 - beq common_exceptionThrown @ no, handle exception -#if defined(WITH_JIT) - /* - * If the JIT is actively building a trace we need to make sure - * that the field is fully resolved before including this instruction. - */ - bl common_verifyField -#endif - b .LOP_SPUT_WIDE_JUMBO_finish @ resume - -/* continuation for OP_SPUT_OBJECT_JUMBO */ - - -.LOP_SPUT_OBJECT_JUMBO_end: - str r1, [r0, #offStaticField_value] @ field<- vBBBB - @ no-op - cmp r1, #0 @ stored a null object? - strneb r2, [r2, r9, lsr #GC_CARD_SHIFT] @ mark card based on obj head - GOTO_OPCODE(ip) @ jump to next instruction - - /* Continuation if the field has not yet been resolved. - * r1: AAAAaaaa field ref - * r10: dvmDex->pResFields - */ -.LOP_SPUT_OBJECT_JUMBO_resolve: - ldr r2, [rSELF, #offThread_method] @ r9<- current method -#if defined(WITH_JIT) - add r10, r10, r1, lsl #2 @ r10<- &dvmDex->pResFields[field] -#endif - EXPORT_PC() @ resolve() could throw, so export now - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveStaticField @ r0<- resolved StaticField ptr - cmp r0, #0 @ success? - beq common_exceptionThrown @ no, handle exception -#if defined(WITH_JIT) - /* - * If the JIT is actively building a trace we need to make sure - * that the field is fully resolved before including this instruction. - */ - bl common_verifyField -#endif - b .LOP_SPUT_OBJECT_JUMBO_finish @ resume - - -/* continuation for OP_SPUT_BOOLEAN_JUMBO */ - - /* - * Continuation if the field has not yet been resolved. - * r1: AAAAAAAA field ref - * r10: dvmDex->pResFields - */ -.LOP_SPUT_BOOLEAN_JUMBO_resolve: - ldr r2, [rSELF, #offThread_method] @ r2<- current method -#if defined(WITH_JIT) - add r10, r10, r1, lsl #2 @ r10<- &dvmDex->pResFields[field] -#endif - EXPORT_PC() @ resolve() could throw, so export now - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveStaticField @ r0<- resolved StaticField ptr - cmp r0, #0 @ success? - beq common_exceptionThrown @ no, handle exception -#if defined(WITH_JIT) - /* - * If the JIT is actively building a trace we need to make sure - * that the field is fully resolved before including this instruction. - */ - bl common_verifyField -#endif - b .LOP_SPUT_BOOLEAN_JUMBO_finish @ resume - -/* continuation for OP_SPUT_BYTE_JUMBO */ - - /* - * Continuation if the field has not yet been resolved. - * r1: AAAAAAAA field ref - * r10: dvmDex->pResFields - */ -.LOP_SPUT_BYTE_JUMBO_resolve: - ldr r2, [rSELF, #offThread_method] @ r2<- current method -#if defined(WITH_JIT) - add r10, r10, r1, lsl #2 @ r10<- &dvmDex->pResFields[field] -#endif - EXPORT_PC() @ resolve() could throw, so export now - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveStaticField @ r0<- resolved StaticField ptr - cmp r0, #0 @ success? - beq common_exceptionThrown @ no, handle exception -#if defined(WITH_JIT) - /* - * If the JIT is actively building a trace we need to make sure - * that the field is fully resolved before including this instruction. - */ - bl common_verifyField -#endif - b .LOP_SPUT_BYTE_JUMBO_finish @ resume - -/* continuation for OP_SPUT_CHAR_JUMBO */ - - /* - * Continuation if the field has not yet been resolved. - * r1: AAAAAAAA field ref - * r10: dvmDex->pResFields - */ -.LOP_SPUT_CHAR_JUMBO_resolve: - ldr r2, [rSELF, #offThread_method] @ r2<- current method -#if defined(WITH_JIT) - add r10, r10, r1, lsl #2 @ r10<- &dvmDex->pResFields[field] -#endif - EXPORT_PC() @ resolve() could throw, so export now - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveStaticField @ r0<- resolved StaticField ptr - cmp r0, #0 @ success? - beq common_exceptionThrown @ no, handle exception -#if defined(WITH_JIT) - /* - * If the JIT is actively building a trace we need to make sure - * that the field is fully resolved before including this instruction. - */ - bl common_verifyField -#endif - b .LOP_SPUT_CHAR_JUMBO_finish @ resume - -/* continuation for OP_SPUT_SHORT_JUMBO */ - - /* - * Continuation if the field has not yet been resolved. - * r1: AAAAAAAA field ref - * r10: dvmDex->pResFields - */ -.LOP_SPUT_SHORT_JUMBO_resolve: - ldr r2, [rSELF, #offThread_method] @ r2<- current method -#if defined(WITH_JIT) - add r10, r10, r1, lsl #2 @ r10<- &dvmDex->pResFields[field] -#endif - EXPORT_PC() @ resolve() could throw, so export now - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveStaticField @ r0<- resolved StaticField ptr - cmp r0, #0 @ success? - beq common_exceptionThrown @ no, handle exception -#if defined(WITH_JIT) - /* - * If the JIT is actively building a trace we need to make sure - * that the field is fully resolved before including this instruction. - */ - bl common_verifyField -#endif - b .LOP_SPUT_SHORT_JUMBO_finish @ resume - -/* continuation for OP_INVOKE_VIRTUAL_JUMBO */ - - /* - * At this point: - * r0 = resolved base method - */ -.LOP_INVOKE_VIRTUAL_JUMBO_continue: - FETCH(r10, 4) @ r10<- CCCC - GET_VREG(r9, r10) @ r9<- "this" ptr - ldrh r2, [r0, #offMethod_methodIndex] @ r2<- baseMethod->methodIndex - cmp r9, #0 @ is "this" null? - beq common_errNullObject @ null "this", throw exception - ldr r3, [r9, #offObject_clazz] @ r3<- thisPtr->clazz - ldr r3, [r3, #offClassObject_vtable] @ r3<- thisPtr->clazz->vtable - ldr r0, [r3, r2, lsl #2] @ r3<- vtable[methodIndex] - bl common_invokeMethodJumbo @ (r0=method, r9="this") - -/* continuation for OP_INVOKE_SUPER_JUMBO */ - - /* - * At this point: - * r0 = resolved base method - * r10 = method->clazz - */ -.LOP_INVOKE_SUPER_JUMBO_continue: - ldr r1, [r10, #offClassObject_super] @ r1<- method->clazz->super - ldrh r2, [r0, #offMethod_methodIndex] @ r2<- baseMethod->methodIndex - ldr r3, [r1, #offClassObject_vtableCount] @ r3<- super->vtableCount - EXPORT_PC() @ must export for invoke - cmp r2, r3 @ compare (methodIndex, vtableCount) - bcs .LOP_INVOKE_SUPER_JUMBO_nsm @ method not present in superclass - ldr r1, [r1, #offClassObject_vtable] @ r1<- ...clazz->super->vtable - ldr r0, [r1, r2, lsl #2] @ r3<- vtable[methodIndex] - bl common_invokeMethodJumbo @ (r0=method, r9="this") - -.LOP_INVOKE_SUPER_JUMBO_resolve: - mov r0, r10 @ r0<- method->clazz - mov r2, #METHOD_VIRTUAL @ resolver method type - bl dvmResolveMethod @ r0<- call(clazz, ref, flags) - cmp r0, #0 @ got null? - bne .LOP_INVOKE_SUPER_JUMBO_continue @ no, continue - b common_exceptionThrown @ yes, handle exception - - /* - * Throw a NoSuchMethodError with the method name as the message. - * r0 = resolved base method - */ -.LOP_INVOKE_SUPER_JUMBO_nsm: - ldr r1, [r0, #offMethod_name] @ r1<- method name - b common_errNoSuchMethod - -/* continuation for OP_INVOKE_DIRECT_JUMBO */ - - /* - * On entry: - * r1 = reference (CCCC) - * r10 = "this" register - */ -.LOP_INVOKE_DIRECT_JUMBO_resolve: - ldr r3, [rSELF, #offThread_method] @ r3<- self->method - ldr r0, [r3, #offMethod_clazz] @ r0<- method->clazz - mov r2, #METHOD_DIRECT @ resolver method type - bl dvmResolveMethod @ r0<- call(clazz, ref, flags) - cmp r0, #0 @ got null? - bne .LOP_INVOKE_DIRECT_JUMBO_finish @ no, continue - b common_exceptionThrown @ yes, handle exception - -/* continuation for OP_INVOKE_STATIC_JUMBO */ - - -.LOP_INVOKE_STATIC_JUMBO_resolve: - ldr r3, [rSELF, #offThread_method] @ r3<- self->method - ldr r0, [r3, #offMethod_clazz] @ r0<- method->clazz - mov r2, #METHOD_STATIC @ resolver method type - bl dvmResolveMethod @ r0<- call(clazz, ref, flags) - cmp r0, #0 @ got null? -#if defined(WITH_JIT) - /* - * Check to see if we're actively building a trace. If so, - * we need to keep this instruction out of it. - * r10: &resolved_methodToCall - */ - ldrh r2, [rSELF, #offThread_subMode] - beq common_exceptionThrown @ null, handle exception - ands r2, #kSubModeJitTraceBuild @ trace under construction? - beq common_invokeMethodJumboNoThis @ no (r0=method, r9="this") - ldr r1, [r10] @ reload resolved method - cmp r1, #0 @ finished resolving? - bne common_invokeMethodJumboNoThis @ yes (r0=method, r9="this") - mov r10, r0 @ preserve method - mov r0, rSELF - mov r1, rPC - bl dvmJitEndTraceSelect @ (self, pc) - mov r0, r10 - b common_invokeMethodJumboNoThis @ whew, finally! -#else - bne common_invokeMethodJumboNoThis @ (r0=method, r9="this") - b common_exceptionThrown @ yes, handle exception -#endif - -/* continuation for OP_INVOKE_OBJECT_INIT_JUMBO */ - -.LOP_INVOKE_OBJECT_INIT_JUMBO_setFinal: - EXPORT_PC() @ can throw - bl dvmSetFinalizable @ call dvmSetFinalizable(obj) - ldr r0, [rSELF, #offThread_exception] @ r0<- self->exception - cmp r0, #0 @ exception pending? - bne common_exceptionThrown @ yes, handle it - b .LOP_INVOKE_OBJECT_INIT_JUMBO_finish - - /* - * A debugger is attached, so we need to go ahead and do - * this. For simplicity, we'll just jump directly to the - * corresponding handler. Note that we can't use - * rIBASE here because it may be in single-step mode. - * Load the primary table base directly. - */ -.LOP_INVOKE_OBJECT_INIT_JUMBO_debugger: - ldr r1, [rSELF, #offThread_mainHandlerTable] - .if 1 - mov ip, #OP_INVOKE_DIRECT_JUMBO - .else - mov ip, #OP_INVOKE_DIRECT_RANGE - .endif - GOTO_OPCODE_BASE(r1,ip) @ execute it - -/* continuation for OP_IGET_VOLATILE_JUMBO */ - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IGET_VOLATILE_JUMBO_resolved: - cmp r0, #0 @ resolution unsuccessful? - beq common_exceptionThrown @ yes, throw exception - @ fall through to OP_IGET_VOLATILE_JUMBO_finish - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IGET_VOLATILE_JUMBO_finish: - @bl common_squeak0 - cmp r9, #0 @ check object for null - ldr r3, [r0, #offInstField_byteOffset] @ r3<- byte offset of field - beq common_errNullObject @ object was null - ldr r0, [r9, r3] @ r0<- obj.field (8/16/32 bits) - SMP_DMB @ acquiring load - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(5) @ advance rPC, load rINST - SET_VREG(r0, r2) @ fp[BBBB]<- r0 - GET_INST_OPCODE(ip) @ extract opcode from rINST - GOTO_OPCODE(ip) @ jump to next instruction - -/* continuation for OP_IGET_WIDE_VOLATILE_JUMBO */ - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IGET_WIDE_VOLATILE_JUMBO_resolved: - cmp r0, #0 @ resolution unsuccessful? - beq common_exceptionThrown @ yes, throw exception - @ fall through to OP_IGET_WIDE_VOLATILE_JUMBO_finish - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IGET_WIDE_VOLATILE_JUMBO_finish: - cmp r9, #0 @ check object for null - ldr r3, [r0, #offInstField_byteOffset] @ r3<- byte offset of field - beq common_errNullObject @ object was null - .if 1 - add r0, r9, r3 @ r0<- address of field - bl dvmQuasiAtomicRead64 @ r0/r1<- contents of field - .else - ldrd r0, [r9, r3] @ r0/r1<- obj.field (64-bit align ok) - .endif - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(5) @ advance rPC, load rINST - add r3, rFP, r2, lsl #2 @ r3<- &fp[BBBB] - GET_INST_OPCODE(ip) @ extract opcode from rINST - stmia r3, {r0-r1} @ fp[BBBB]<- r0/r1 - GOTO_OPCODE(ip) @ jump to next instruction - -/* continuation for OP_IGET_OBJECT_VOLATILE_JUMBO */ - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IGET_OBJECT_VOLATILE_JUMBO_resolved: - cmp r0, #0 @ resolution unsuccessful? - beq common_exceptionThrown @ yes, throw exception - @ fall through to OP_IGET_OBJECT_VOLATILE_JUMBO_finish - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IGET_OBJECT_VOLATILE_JUMBO_finish: - @bl common_squeak0 - cmp r9, #0 @ check object for null - ldr r3, [r0, #offInstField_byteOffset] @ r3<- byte offset of field - beq common_errNullObject @ object was null - ldr r0, [r9, r3] @ r0<- obj.field (8/16/32 bits) - SMP_DMB @ acquiring load - FETCH(r2, 3) @ r2<- BBBB - FETCH_ADVANCE_INST(5) @ advance rPC, load rINST - SET_VREG(r0, r2) @ fp[BBBB]<- r0 - GET_INST_OPCODE(ip) @ extract opcode from rINST - GOTO_OPCODE(ip) @ jump to next instruction - -/* continuation for OP_IPUT_VOLATILE_JUMBO */ - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IPUT_VOLATILE_JUMBO_resolved: - cmp r0, #0 @ resolution unsuccessful? - beq common_exceptionThrown @ yes, throw exception - @ fall through to OP_IPUT_VOLATILE_JUMBO_finish - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IPUT_VOLATILE_JUMBO_finish: - @bl common_squeak0 - ldr r3, [r0, #offInstField_byteOffset] @ r3<- byte offset of field - FETCH(r1, 3) @ r1<- BBBB - cmp r9, #0 @ check object for null - GET_VREG(r0, r1) @ r0<- fp[BBBB] - beq common_errNullObject @ object was null - FETCH_ADVANCE_INST(5) @ advance rPC, load rINST - GET_INST_OPCODE(ip) @ extract opcode from rINST - SMP_DMB_ST @ releasing store - str r0, [r9, r3] @ obj.field (8/16/32 bits)<- r0 - SMP_DMB - GOTO_OPCODE(ip) @ jump to next instruction - -/* continuation for OP_IPUT_WIDE_VOLATILE_JUMBO */ - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IPUT_WIDE_VOLATILE_JUMBO_resolved: - cmp r0, #0 @ resolution unsuccessful? - beq common_exceptionThrown @ yes, throw exception - @ fall through to OP_IPUT_WIDE_VOLATILE_JUMBO_finish - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IPUT_WIDE_VOLATILE_JUMBO_finish: - cmp r9, #0 @ check object for null - FETCH(r2, 3) @ r1<- BBBB - ldr r3, [r0, #offInstField_byteOffset] @ r3<- byte offset of field - add r2, rFP, r2, lsl #2 @ r3<- &fp[BBBB] - beq common_errNullObject @ object was null - FETCH_ADVANCE_INST(5) @ advance rPC, load rINST - ldmia r2, {r0-r1} @ r0/r1<- fp[BBBB] - GET_INST_OPCODE(r10) @ extract opcode from rINST - .if 1 - add r2, r9, r3 @ r2<- target address - bl dvmQuasiAtomicSwap64Sync @ stores r0/r1 into addr r2 - .else - strd r0, [r9, r3] @ obj.field (64 bits, aligned)<- r0/r1 - .endif - GOTO_OPCODE(r10) @ jump to next instruction - -/* continuation for OP_IPUT_OBJECT_VOLATILE_JUMBO */ - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IPUT_OBJECT_VOLATILE_JUMBO_resolved: - cmp r0, #0 @ resolution unsuccessful? - beq common_exceptionThrown @ yes, throw exception - @ fall through to OP_IPUT_OBJECT_VOLATILE_JUMBO_finish - - /* - * Currently: - * r0 holds resolved field - * r9 holds object - */ -.LOP_IPUT_OBJECT_VOLATILE_JUMBO_finish: - @bl common_squeak0 - ldr r3, [r0, #offInstField_byteOffset] @ r3<- byte offset of field - FETCH(r1, 3) @ r1<- BBBB - cmp r9, #0 @ check object for null - GET_VREG(r0, r1) @ r0<- fp[BBBB] - ldr r2, [rSELF, #offThread_cardTable] @ r2<- card table base - beq common_errNullObject @ object was null - FETCH_ADVANCE_INST(5) @ advance rPC, load rINST - GET_INST_OPCODE(ip) @ extract opcode from rINST - SMP_DMB_ST @ releasing store - str r0, [r9, r3] @ obj.field (32 bits)<- r0 - SMP_DMB - cmp r0, #0 @ stored a null reference? - strneb r2, [r2, r9, lsr #GC_CARD_SHIFT] @ mark card if not - GOTO_OPCODE(ip) @ jump to next instruction - -/* continuation for OP_SGET_VOLATILE_JUMBO */ - - /* - * Continuation if the field has not yet been resolved. - * r1: AAAAAAAA field ref - * r10: dvmDex->pResFields - */ -.LOP_SGET_VOLATILE_JUMBO_resolve: - ldr r2, [rSELF, #offThread_method] @ r2<- current method -#if defined(WITH_JIT) - add r10, r10, r1, lsl #2 @ r10<- &dvmDex->pResFields[field] -#endif - EXPORT_PC() @ resolve() could throw, so export now - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveStaticField @ r0<- resolved StaticField ptr - cmp r0, #0 @ success? - beq common_exceptionThrown @ no, handle exception -#if defined(WITH_JIT) - /* - * If the JIT is actively building a trace we need to make sure - * that the field is fully resolved before including this instruction. - */ - bl common_verifyField -#endif - b .LOP_SGET_VOLATILE_JUMBO_finish @ resume - -/* continuation for OP_SGET_WIDE_VOLATILE_JUMBO */ - - /* - * Continuation if the field has not yet been resolved. - * r1: AAAAAAAA field ref - * - * Returns StaticField pointer in r0. - */ -.LOP_SGET_WIDE_VOLATILE_JUMBO_resolve: - ldr r2, [rSELF, #offThread_method] @ r2<- current method - EXPORT_PC() @ resolve() could throw, so export now - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveStaticField @ r0<- resolved StaticField ptr - cmp r0, #0 @ success? - bne .LOP_SGET_WIDE_VOLATILE_JUMBO_finish @ yes, finish - b common_exceptionThrown @ no, handle exception - -/* continuation for OP_SGET_OBJECT_VOLATILE_JUMBO */ - - /* - * Continuation if the field has not yet been resolved. - * r1: AAAAAAAA field ref - * r10: dvmDex->pResFields - */ -.LOP_SGET_OBJECT_VOLATILE_JUMBO_resolve: - ldr r2, [rSELF, #offThread_method] @ r2<- current method -#if defined(WITH_JIT) - add r10, r10, r1, lsl #2 @ r10<- &dvmDex->pResFields[field] -#endif - EXPORT_PC() @ resolve() could throw, so export now - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveStaticField @ r0<- resolved StaticField ptr - cmp r0, #0 @ success? - beq common_exceptionThrown @ no, handle exception -#if defined(WITH_JIT) - /* - * If the JIT is actively building a trace we need to make sure - * that the field is fully resolved before including this instruction. - */ - bl common_verifyField -#endif - b .LOP_SGET_OBJECT_VOLATILE_JUMBO_finish @ resume - -/* continuation for OP_SPUT_VOLATILE_JUMBO */ - - /* - * Continuation if the field has not yet been resolved. - * r1: AAAAAAAA field ref - * r10: dvmDex->pResFields - */ -.LOP_SPUT_VOLATILE_JUMBO_resolve: - ldr r2, [rSELF, #offThread_method] @ r2<- current method -#if defined(WITH_JIT) - add r10, r10, r1, lsl #2 @ r10<- &dvmDex->pResFields[field] -#endif - EXPORT_PC() @ resolve() could throw, so export now - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveStaticField @ r0<- resolved StaticField ptr - cmp r0, #0 @ success? - beq common_exceptionThrown @ no, handle exception -#if defined(WITH_JIT) - /* - * If the JIT is actively building a trace we need to make sure - * that the field is fully resolved before including this instruction. - */ - bl common_verifyField -#endif - b .LOP_SPUT_VOLATILE_JUMBO_finish @ resume - -/* continuation for OP_SPUT_WIDE_VOLATILE_JUMBO */ - - /* - * Continuation if the field has not yet been resolved. - * r1: AAAAAAAA field ref - * r9: &fp[BBBB] - * r10: dvmDex->pResFields - * - * Returns StaticField pointer in r2. - */ -.LOP_SPUT_WIDE_VOLATILE_JUMBO_resolve: - ldr r2, [rSELF, #offThread_method] @ r2<- current method -#if defined(WITH_JIT) - add r10, r10, r1, lsl #2 @ r10<- &dvmDex->pResFields[field] -#endif - EXPORT_PC() @ resolve() could throw, so export now - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveStaticField @ r0<- resolved StaticField ptr - cmp r0, #0 @ success? - mov r2, r0 @ copy to r2 - beq common_exceptionThrown @ no, handle exception -#if defined(WITH_JIT) - /* - * If the JIT is actively building a trace we need to make sure - * that the field is fully resolved before including this instruction. - */ - bl common_verifyField -#endif - b .LOP_SPUT_WIDE_VOLATILE_JUMBO_finish @ resume - -/* continuation for OP_SPUT_OBJECT_VOLATILE_JUMBO */ - - -.LOP_SPUT_OBJECT_VOLATILE_JUMBO_end: - str r1, [r0, #offStaticField_value] @ field<- vBBBB - SMP_DMB - cmp r1, #0 @ stored a null object? - strneb r2, [r2, r9, lsr #GC_CARD_SHIFT] @ mark card based on obj head - GOTO_OPCODE(ip) @ jump to next instruction - - /* Continuation if the field has not yet been resolved. - * r1: AAAAaaaa field ref - * r10: dvmDex->pResFields - */ -.LOP_SPUT_OBJECT_VOLATILE_JUMBO_resolve: - ldr r2, [rSELF, #offThread_method] @ r9<- current method -#if defined(WITH_JIT) - add r10, r10, r1, lsl #2 @ r10<- &dvmDex->pResFields[field] -#endif - EXPORT_PC() @ resolve() could throw, so export now - ldr r0, [r2, #offMethod_clazz] @ r0<- method->clazz - bl dvmResolveStaticField @ r0<- resolved StaticField ptr - cmp r0, #0 @ success? - beq common_exceptionThrown @ no, handle exception -#if defined(WITH_JIT) - /* - * If the JIT is actively building a trace we need to make sure - * that the field is fully resolved before including this instruction. - */ - bl common_verifyField -#endif - b .LOP_SPUT_OBJECT_VOLATILE_JUMBO_finish @ resume - - .size dvmAsmSisterStart, .-dvmAsmSisterStart .global dvmAsmSisterEnd dvmAsmSisterEnd: @@ -20779,5449 +16073,7 @@ dvmAsmAltInstructionStart = .L_ALT_OP_NOP /* ------------------------------ */ .balign 64 -.L_ALT_OP_DISPATCH_FF: /* 0xff */ -/* File: armv5te/ALT_OP_DISPATCH_FF.S */ -/* - * Unlike other alt stubs, we don't want to call dvmCheckBefore() here. - * Instead, just treat this as a trampoline to reach the real alt - * handler (which will do the dvmCheckBefore() call. - */ - mov ip, rINST, lsr #8 @ ip<- extended opcode - add ip, ip, #256 @ add offset for extended opcodes - GOTO_OPCODE(ip) @ go to proper extended handler - - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_CONST_CLASS_JUMBO: /* 0x100 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (256 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_CHECK_CAST_JUMBO: /* 0x101 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (257 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_INSTANCE_OF_JUMBO: /* 0x102 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (258 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_NEW_INSTANCE_JUMBO: /* 0x103 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (259 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_NEW_ARRAY_JUMBO: /* 0x104 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (260 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_FILLED_NEW_ARRAY_JUMBO: /* 0x105 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (261 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_IGET_JUMBO: /* 0x106 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (262 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_IGET_WIDE_JUMBO: /* 0x107 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (263 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_IGET_OBJECT_JUMBO: /* 0x108 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (264 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_IGET_BOOLEAN_JUMBO: /* 0x109 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (265 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_IGET_BYTE_JUMBO: /* 0x10a */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (266 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_IGET_CHAR_JUMBO: /* 0x10b */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (267 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_IGET_SHORT_JUMBO: /* 0x10c */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (268 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_IPUT_JUMBO: /* 0x10d */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (269 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_IPUT_WIDE_JUMBO: /* 0x10e */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (270 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_IPUT_OBJECT_JUMBO: /* 0x10f */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (271 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_IPUT_BOOLEAN_JUMBO: /* 0x110 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (272 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_IPUT_BYTE_JUMBO: /* 0x111 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (273 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_IPUT_CHAR_JUMBO: /* 0x112 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (274 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_IPUT_SHORT_JUMBO: /* 0x113 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (275 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_SGET_JUMBO: /* 0x114 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (276 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_SGET_WIDE_JUMBO: /* 0x115 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (277 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_SGET_OBJECT_JUMBO: /* 0x116 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (278 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_SGET_BOOLEAN_JUMBO: /* 0x117 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (279 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_SGET_BYTE_JUMBO: /* 0x118 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (280 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_SGET_CHAR_JUMBO: /* 0x119 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (281 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_SGET_SHORT_JUMBO: /* 0x11a */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (282 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_SPUT_JUMBO: /* 0x11b */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (283 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_SPUT_WIDE_JUMBO: /* 0x11c */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (284 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_SPUT_OBJECT_JUMBO: /* 0x11d */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (285 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_SPUT_BOOLEAN_JUMBO: /* 0x11e */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (286 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_SPUT_BYTE_JUMBO: /* 0x11f */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (287 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_SPUT_CHAR_JUMBO: /* 0x120 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (288 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_SPUT_SHORT_JUMBO: /* 0x121 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (289 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_INVOKE_VIRTUAL_JUMBO: /* 0x122 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (290 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_INVOKE_SUPER_JUMBO: /* 0x123 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (291 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_INVOKE_DIRECT_JUMBO: /* 0x124 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (292 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_INVOKE_STATIC_JUMBO: /* 0x125 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (293 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_INVOKE_INTERFACE_JUMBO: /* 0x126 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (294 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_27FF: /* 0x127 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (295 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_28FF: /* 0x128 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (296 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_29FF: /* 0x129 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (297 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_2AFF: /* 0x12a */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (298 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_2BFF: /* 0x12b */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (299 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_2CFF: /* 0x12c */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (300 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_2DFF: /* 0x12d */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (301 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_2EFF: /* 0x12e */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (302 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_2FFF: /* 0x12f */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (303 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_30FF: /* 0x130 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (304 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_31FF: /* 0x131 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (305 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_32FF: /* 0x132 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (306 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_33FF: /* 0x133 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (307 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_34FF: /* 0x134 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (308 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_35FF: /* 0x135 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (309 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_36FF: /* 0x136 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (310 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_37FF: /* 0x137 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (311 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_38FF: /* 0x138 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (312 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_39FF: /* 0x139 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (313 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_3AFF: /* 0x13a */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (314 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_3BFF: /* 0x13b */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (315 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_3CFF: /* 0x13c */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (316 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_3DFF: /* 0x13d */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (317 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_3EFF: /* 0x13e */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (318 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_3FFF: /* 0x13f */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (319 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_40FF: /* 0x140 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (320 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_41FF: /* 0x141 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (321 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_42FF: /* 0x142 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (322 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_43FF: /* 0x143 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (323 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_44FF: /* 0x144 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (324 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_45FF: /* 0x145 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (325 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_46FF: /* 0x146 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (326 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_47FF: /* 0x147 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (327 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_48FF: /* 0x148 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (328 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_49FF: /* 0x149 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (329 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_4AFF: /* 0x14a */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (330 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_4BFF: /* 0x14b */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (331 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_4CFF: /* 0x14c */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (332 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_4DFF: /* 0x14d */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (333 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_4EFF: /* 0x14e */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (334 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_4FFF: /* 0x14f */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (335 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_50FF: /* 0x150 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (336 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_51FF: /* 0x151 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (337 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_52FF: /* 0x152 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (338 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_53FF: /* 0x153 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (339 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_54FF: /* 0x154 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (340 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_55FF: /* 0x155 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (341 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_56FF: /* 0x156 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (342 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_57FF: /* 0x157 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (343 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_58FF: /* 0x158 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (344 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_59FF: /* 0x159 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (345 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_5AFF: /* 0x15a */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (346 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_5BFF: /* 0x15b */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (347 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_5CFF: /* 0x15c */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (348 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_5DFF: /* 0x15d */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (349 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_5EFF: /* 0x15e */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (350 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_5FFF: /* 0x15f */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (351 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_60FF: /* 0x160 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (352 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_61FF: /* 0x161 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (353 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_62FF: /* 0x162 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (354 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_63FF: /* 0x163 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (355 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_64FF: /* 0x164 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (356 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_65FF: /* 0x165 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (357 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_66FF: /* 0x166 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (358 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_67FF: /* 0x167 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (359 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_68FF: /* 0x168 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (360 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_69FF: /* 0x169 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (361 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_6AFF: /* 0x16a */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (362 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_6BFF: /* 0x16b */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (363 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_6CFF: /* 0x16c */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (364 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_6DFF: /* 0x16d */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (365 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_6EFF: /* 0x16e */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (366 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_6FFF: /* 0x16f */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (367 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_70FF: /* 0x170 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (368 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_71FF: /* 0x171 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (369 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_72FF: /* 0x172 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (370 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_73FF: /* 0x173 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (371 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_74FF: /* 0x174 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (372 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_75FF: /* 0x175 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (373 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_76FF: /* 0x176 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (374 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_77FF: /* 0x177 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (375 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_78FF: /* 0x178 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (376 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_79FF: /* 0x179 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (377 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_7AFF: /* 0x17a */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (378 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_7BFF: /* 0x17b */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (379 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_7CFF: /* 0x17c */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (380 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_7DFF: /* 0x17d */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (381 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_7EFF: /* 0x17e */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (382 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_7FFF: /* 0x17f */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (383 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_80FF: /* 0x180 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (384 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_81FF: /* 0x181 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (385 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_82FF: /* 0x182 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (386 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_83FF: /* 0x183 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (387 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_84FF: /* 0x184 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (388 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_85FF: /* 0x185 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (389 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_86FF: /* 0x186 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (390 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_87FF: /* 0x187 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (391 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_88FF: /* 0x188 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (392 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_89FF: /* 0x189 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (393 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_8AFF: /* 0x18a */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (394 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_8BFF: /* 0x18b */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (395 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_8CFF: /* 0x18c */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (396 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_8DFF: /* 0x18d */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (397 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_8EFF: /* 0x18e */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (398 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_8FFF: /* 0x18f */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (399 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_90FF: /* 0x190 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (400 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_91FF: /* 0x191 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (401 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_92FF: /* 0x192 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (402 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_93FF: /* 0x193 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (403 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_94FF: /* 0x194 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (404 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_95FF: /* 0x195 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (405 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_96FF: /* 0x196 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (406 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_97FF: /* 0x197 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (407 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_98FF: /* 0x198 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (408 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_99FF: /* 0x199 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (409 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_9AFF: /* 0x19a */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (410 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_9BFF: /* 0x19b */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (411 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_9CFF: /* 0x19c */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (412 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_9DFF: /* 0x19d */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (413 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_9EFF: /* 0x19e */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (414 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_9FFF: /* 0x19f */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (415 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_A0FF: /* 0x1a0 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (416 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_A1FF: /* 0x1a1 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (417 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_A2FF: /* 0x1a2 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (418 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_A3FF: /* 0x1a3 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (419 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_A4FF: /* 0x1a4 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (420 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_A5FF: /* 0x1a5 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (421 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_A6FF: /* 0x1a6 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (422 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_A7FF: /* 0x1a7 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (423 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_A8FF: /* 0x1a8 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (424 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_A9FF: /* 0x1a9 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (425 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_AAFF: /* 0x1aa */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (426 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_ABFF: /* 0x1ab */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (427 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_ACFF: /* 0x1ac */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (428 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_ADFF: /* 0x1ad */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (429 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_AEFF: /* 0x1ae */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (430 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_AFFF: /* 0x1af */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (431 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_B0FF: /* 0x1b0 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (432 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_B1FF: /* 0x1b1 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (433 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_B2FF: /* 0x1b2 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (434 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_B3FF: /* 0x1b3 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (435 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_B4FF: /* 0x1b4 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (436 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_B5FF: /* 0x1b5 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (437 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_B6FF: /* 0x1b6 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (438 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_B7FF: /* 0x1b7 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (439 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_B8FF: /* 0x1b8 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (440 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_B9FF: /* 0x1b9 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (441 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_BAFF: /* 0x1ba */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (442 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_BBFF: /* 0x1bb */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (443 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_BCFF: /* 0x1bc */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (444 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_BDFF: /* 0x1bd */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (445 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_BEFF: /* 0x1be */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (446 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_BFFF: /* 0x1bf */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (447 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_C0FF: /* 0x1c0 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (448 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_C1FF: /* 0x1c1 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (449 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_C2FF: /* 0x1c2 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (450 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_C3FF: /* 0x1c3 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (451 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_C4FF: /* 0x1c4 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (452 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_C5FF: /* 0x1c5 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (453 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_C6FF: /* 0x1c6 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (454 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_C7FF: /* 0x1c7 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (455 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_C8FF: /* 0x1c8 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (456 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_C9FF: /* 0x1c9 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (457 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_CAFF: /* 0x1ca */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (458 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_CBFF: /* 0x1cb */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (459 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_CCFF: /* 0x1cc */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (460 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_CDFF: /* 0x1cd */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (461 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_CEFF: /* 0x1ce */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (462 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_CFFF: /* 0x1cf */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (463 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_D0FF: /* 0x1d0 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (464 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_D1FF: /* 0x1d1 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (465 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_D2FF: /* 0x1d2 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (466 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_D3FF: /* 0x1d3 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (467 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_D4FF: /* 0x1d4 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (468 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_D5FF: /* 0x1d5 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (469 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_D6FF: /* 0x1d6 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (470 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_D7FF: /* 0x1d7 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (471 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_D8FF: /* 0x1d8 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (472 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_D9FF: /* 0x1d9 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (473 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_DAFF: /* 0x1da */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (474 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_DBFF: /* 0x1db */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (475 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_DCFF: /* 0x1dc */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (476 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_DDFF: /* 0x1dd */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (477 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_DEFF: /* 0x1de */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (478 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_DFFF: /* 0x1df */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (479 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_E0FF: /* 0x1e0 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (480 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_E1FF: /* 0x1e1 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (481 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_E2FF: /* 0x1e2 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (482 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_E3FF: /* 0x1e3 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (483 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_E4FF: /* 0x1e4 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (484 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_E5FF: /* 0x1e5 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (485 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_E6FF: /* 0x1e6 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (486 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_E7FF: /* 0x1e7 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (487 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_E8FF: /* 0x1e8 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (488 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_E9FF: /* 0x1e9 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (489 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_EAFF: /* 0x1ea */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (490 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_EBFF: /* 0x1eb */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (491 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_ECFF: /* 0x1ec */ +.L_ALT_OP_UNUSED_FF: /* 0xff */ /* File: armv5te/alt_stub.S */ /* * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle @@ -26232,444 +16084,7 @@ dvmAsmAltInstructionStart = .L_ALT_OP_NOP * bail to the real handler if breakFlags==0. */ ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (492 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_EDFF: /* 0x1ed */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (493 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_EEFF: /* 0x1ee */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (494 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_EFFF: /* 0x1ef */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (495 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_F0FF: /* 0x1f0 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (496 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_UNUSED_F1FF: /* 0x1f1 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (497 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_INVOKE_OBJECT_INIT_JUMBO: /* 0x1f2 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (498 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_IGET_VOLATILE_JUMBO: /* 0x1f3 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (499 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_IGET_WIDE_VOLATILE_JUMBO: /* 0x1f4 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (500 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_IGET_OBJECT_VOLATILE_JUMBO: /* 0x1f5 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (501 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_IPUT_VOLATILE_JUMBO: /* 0x1f6 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (502 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_IPUT_WIDE_VOLATILE_JUMBO: /* 0x1f7 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (503 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_IPUT_OBJECT_VOLATILE_JUMBO: /* 0x1f8 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (504 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_SGET_VOLATILE_JUMBO: /* 0x1f9 */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (505 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_SGET_WIDE_VOLATILE_JUMBO: /* 0x1fa */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (506 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_SGET_OBJECT_VOLATILE_JUMBO: /* 0x1fb */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (507 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_SPUT_VOLATILE_JUMBO: /* 0x1fc */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (508 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_SPUT_WIDE_VOLATILE_JUMBO: /* 0x1fd */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (509 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_SPUT_OBJECT_VOLATILE_JUMBO: /* 0x1fe */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (510 * 64) - ldr rIBASE, [rSELF, #offThread_curHandlerTable] - cmp r3, #0 - bxeq lr @ nothing to do - jump to real handler - EXPORT_PC() - mov r0, rPC @ arg0 - mov r1, rFP @ arg1 - mov r2, rSELF @ arg2 - b dvmCheckBefore @ (dPC,dFP,self) tail call - -/* ------------------------------ */ - .balign 64 -.L_ALT_OP_THROW_VERIFICATION_ERROR_JUMBO: /* 0x1ff */ -/* File: armv5te/alt_stub.S */ -/* - * Inter-instruction transfer stub. Call out to dvmCheckBefore to handle - * any interesting requests and then jump to the real instruction - * handler. Note that the call to dvmCheckBefore is done as a tail call. - * rIBASE updates won't be seen until a refresh, and we can tell we have a - * stale rIBASE if breakFlags==0. Always refresh rIBASE here, and then - * bail to the real handler if breakFlags==0. - */ - ldrb r3, [rSELF, #offThread_breakFlags] - adrl lr, dvmAsmInstructionStart + (511 * 64) + adrl lr, dvmAsmInstructionStart + (255 * 64) ldr rIBASE, [rSELF, #offThread_curHandlerTable] cmp r3, #0 bxeq lr @ nothing to do - jump to real handler @@ -27152,35 +16567,6 @@ save_callsiteinfo: #endif /* - * Common code for jumbo method invocation. - * NOTE: this adjusts rPC to account for the difference in instruction width. - * As a result, the savedPc in the stack frame will not be wholly accurate. So - * long as that is only used for source file line number calculations, we're - * okay. - */ -common_invokeMethodJumboNoThis: -#if defined(WITH_JIT) - /* On entry: r0 is "Method* methodToCall */ - mov r9, #0 @ clear "this" -#endif -common_invokeMethodJumbo: - /* On entry: r0 is "Method* methodToCall, r9 is "this" */ -.LinvokeNewJumbo: -#if defined(WITH_JIT) - ldrh r1, [rSELF, #offThread_subMode] - ands r1, #kSubModeJitTraceBuild - blne save_callsiteinfo -#endif - @ prepare to copy args to "outs" area of current frame - add rPC, rPC, #4 @ adjust pc to make return consistent - FETCH(r2, 1) @ r2<- BBBB (arg count) - SAVEAREA_FROM_FP(r10, rFP) @ r10<- stack save area - cmp r2, #0 @ no args? - beq .LinvokeArgsDone @ if no args, skip the rest - FETCH(r1, 2) @ r1<- CCCC - b .LinvokeRangeArgs @ handle args like invoke range - -/* * Common code for method invocation with range. * * On entry: diff --git a/vm/mterp/out/InterpC-armv6-vfp.cpp b/vm/mterp/out/InterpC-armv6-vfp.cpp index 950607b98..a5b542cab 100644 --- a/vm/mterp/out/InterpC-armv6-vfp.cpp +++ b/vm/mterp/out/InterpC-armv6-vfp.cpp @@ -102,7 +102,7 @@ { \ char* desc; \ desc = dexProtoCopyMethodDescriptor(&curMethod->prototype); \ - LOGE("Invalid branch %d at 0x%04x in %s.%s %s", \ + ALOGE("Invalid branch %d at 0x%04x in %s.%s %s", \ myoff, (int) (pc - curMethod->insns), \ curMethod->clazz->descriptor, curMethod->name, desc); \ free(desc); \ @@ -128,10 +128,10 @@ char debugStrBuf[128]; \ snprintf(debugStrBuf, sizeof(debugStrBuf), __VA_ARGS__); \ if (curMethod != NULL) \ - LOG(_level, LOG_TAG"i", "%-2d|%04x%s", \ + ALOG(_level, LOG_TAG"i", "%-2d|%04x%s", \ self->threadId, (int)(pc - curMethod->insns), debugStrBuf); \ else \ - LOG(_level, LOG_TAG"i", "%-2d|####%s", \ + ALOG(_level, LOG_TAG"i", "%-2d|####%s", \ self->threadId, debugStrBuf); \ } while(false) void dvmDumpRegs(const Method* method, const u4* framePtr, bool inOnly); @@ -320,15 +320,15 @@ static inline bool checkForNull(Object* obj) return false; } #ifdef WITH_EXTRA_OBJECT_VALIDATION - if (!dvmIsHeapAddressObject(obj)) { - LOGE("Invalid object %p", obj); + if (!dvmIsHeapAddress(obj)) { + ALOGE("Invalid object %p", obj); dvmAbort(); } #endif #ifndef NDEBUG if (obj->clazz == NULL || ((u4) obj->clazz) <= 65536) { /* probable heap corruption */ - LOGE("Invalid object class %p (in %p)", obj->clazz, obj); + ALOGE("Invalid object class %p (in %p)", obj->clazz, obj); dvmAbort(); } #endif @@ -353,14 +353,14 @@ static inline bool checkForNullExportPC(Object* obj, u4* fp, const u2* pc) } #ifdef WITH_EXTRA_OBJECT_VALIDATION if (!dvmIsHeapAddress(obj)) { - LOGE("Invalid object %p", obj); + ALOGE("Invalid object %p", obj); dvmAbort(); } #endif #ifndef NDEBUG if (obj->clazz == NULL || ((u4) obj->clazz) <= 65536) { /* probable heap corruption */ - LOGE("Invalid object class %p (in %p)", obj->clazz, obj); + ALOGE("Invalid object class %p (in %p)", obj->clazz, obj); dvmAbort(); } #endif @@ -471,9 +471,9 @@ static inline bool checkForNullExportPC(Object* obj, u4* fp, const u2* pc) return; \ } while(false) -#define GOTO_invoke(_target, _methodCallRange, _jumboFormat) \ +#define GOTO_invoke(_target, _methodCallRange) \ do { \ - dvmMterp_##_target(self, _methodCallRange, _jumboFormat); \ + dvmMterp_##_target(self, _methodCallRange); \ return; \ } while(false) @@ -505,14 +505,14 @@ static inline bool checkForNullExportPC(Object* obj, u4* fp, const u2* pc) /* File: c/opcommon.cpp */ /* forward declarations of goto targets */ -GOTO_TARGET_DECL(filledNewArray, bool methodCallRange, bool jumboFormat); -GOTO_TARGET_DECL(invokeVirtual, bool methodCallRange, bool jumboFormat); -GOTO_TARGET_DECL(invokeSuper, bool methodCallRange, bool jumboFormat); -GOTO_TARGET_DECL(invokeInterface, bool methodCallRange, bool jumboFormat); -GOTO_TARGET_DECL(invokeDirect, bool methodCallRange, bool jumboFormat); -GOTO_TARGET_DECL(invokeStatic, bool methodCallRange, bool jumboFormat); -GOTO_TARGET_DECL(invokeVirtualQuick, bool methodCallRange, bool jumboFormat); -GOTO_TARGET_DECL(invokeSuperQuick, bool methodCallRange, bool jumboFormat); +GOTO_TARGET_DECL(filledNewArray, bool methodCallRange); +GOTO_TARGET_DECL(invokeVirtual, bool methodCallRange); +GOTO_TARGET_DECL(invokeSuper, bool methodCallRange); +GOTO_TARGET_DECL(invokeInterface, bool methodCallRange); +GOTO_TARGET_DECL(invokeDirect, bool methodCallRange); +GOTO_TARGET_DECL(invokeStatic, bool methodCallRange); +GOTO_TARGET_DECL(invokeVirtualQuick, bool methodCallRange); +GOTO_TARGET_DECL(invokeSuperQuick, bool methodCallRange); GOTO_TARGET_DECL(invokeMethod, bool methodCallRange, const Method* methodToCall, u2 count, u2 regs); GOTO_TARGET_DECL(returnFromMethod); @@ -1036,33 +1036,6 @@ GOTO_TARGET_DECL(exceptionThrown); } \ FINISH(2); -#define HANDLE_IGET_X_JUMBO(_opcode, _opname, _ftype, _regsize) \ - HANDLE_OPCODE(_opcode /*vBBBB, vCCCC, class@AAAAAAAA*/) \ - { \ - InstField* ifield; \ - Object* obj; \ - EXPORT_PC(); \ - ref = FETCH(1) | (u4)FETCH(2) << 16; /* field ref */ \ - vdst = FETCH(3); \ - vsrc1 = FETCH(4); /* object ptr */ \ - ILOGV("|iget%s/jumbo v%d,v%d,field@0x%08x", \ - (_opname), vdst, vsrc1, ref); \ - obj = (Object*) GET_REGISTER(vsrc1); \ - if (!checkForNull(obj)) \ - GOTO_exceptionThrown(); \ - ifield = (InstField*) dvmDexGetResolvedField(methodClassDex, ref); \ - if (ifield == NULL) { \ - ifield = dvmResolveInstField(curMethod->clazz, ref); \ - if (ifield == NULL) \ - GOTO_exceptionThrown(); \ - } \ - SET_REGISTER##_regsize(vdst, \ - dvmGetField##_ftype(obj, ifield->byteOffset)); \ - ILOGV("+ IGET '%s'=0x%08llx", ifield->field.name, \ - (u8) GET_REGISTER##_regsize(vdst)); \ - } \ - FINISH(5); - #define HANDLE_IGET_X_QUICK(_opcode, _opname, _ftype, _regsize) \ HANDLE_OPCODE(_opcode /*vA, vB, field@CCCC*/) \ { \ @@ -1107,33 +1080,6 @@ GOTO_TARGET_DECL(exceptionThrown); } \ FINISH(2); -#define HANDLE_IPUT_X_JUMBO(_opcode, _opname, _ftype, _regsize) \ - HANDLE_OPCODE(_opcode /*vBBBB, vCCCC, class@AAAAAAAA*/) \ - { \ - InstField* ifield; \ - Object* obj; \ - EXPORT_PC(); \ - ref = FETCH(1) | (u4)FETCH(2) << 16; /* field ref */ \ - vdst = FETCH(3); \ - vsrc1 = FETCH(4); /* object ptr */ \ - ILOGV("|iput%s/jumbo v%d,v%d,field@0x%08x", \ - (_opname), vdst, vsrc1, ref); \ - obj = (Object*) GET_REGISTER(vsrc1); \ - if (!checkForNull(obj)) \ - GOTO_exceptionThrown(); \ - ifield = (InstField*) dvmDexGetResolvedField(methodClassDex, ref); \ - if (ifield == NULL) { \ - ifield = dvmResolveInstField(curMethod->clazz, ref); \ - if (ifield == NULL) \ - GOTO_exceptionThrown(); \ - } \ - dvmSetField##_ftype(obj, ifield->byteOffset, \ - GET_REGISTER##_regsize(vdst)); \ - ILOGV("+ IPUT '%s'=0x%08llx", ifield->field.name, \ - (u8) GET_REGISTER##_regsize(vdst)); \ - } \ - FINISH(5); - #define HANDLE_IPUT_X_QUICK(_opcode, _opname, _ftype, _regsize) \ HANDLE_OPCODE(_opcode /*vA, vB, field@CCCC*/) \ { \ @@ -1183,29 +1129,6 @@ GOTO_TARGET_DECL(exceptionThrown); } \ FINISH(2); -#define HANDLE_SGET_X_JUMBO(_opcode, _opname, _ftype, _regsize) \ - HANDLE_OPCODE(_opcode /*vBBBB, class@AAAAAAAA*/) \ - { \ - StaticField* sfield; \ - ref = FETCH(1) | (u4)FETCH(2) << 16; /* field ref */ \ - vdst = FETCH(3); \ - ILOGV("|sget%s/jumbo v%d,sfield@0x%08x", (_opname), vdst, ref); \ - sfield = (StaticField*)dvmDexGetResolvedField(methodClassDex, ref); \ - if (sfield == NULL) { \ - EXPORT_PC(); \ - sfield = dvmResolveStaticField(curMethod->clazz, ref); \ - if (sfield == NULL) \ - GOTO_exceptionThrown(); \ - if (dvmDexGetResolvedField(methodClassDex, ref) == NULL) { \ - JIT_STUB_HACK(dvmJitEndTraceSelect(self,pc)); \ - } \ - } \ - SET_REGISTER##_regsize(vdst, dvmGetStaticField##_ftype(sfield)); \ - ILOGV("+ SGET '%s'=0x%08llx", \ - sfield->field.name, (u8)GET_REGISTER##_regsize(vdst)); \ - } \ - FINISH(4); - #define HANDLE_SPUT_X(_opcode, _opname, _ftype, _regsize) \ HANDLE_OPCODE(_opcode /*vAA, field@BBBB*/) \ { \ @@ -1229,29 +1152,6 @@ GOTO_TARGET_DECL(exceptionThrown); } \ FINISH(2); -#define HANDLE_SPUT_X_JUMBO(_opcode, _opname, _ftype, _regsize) \ - HANDLE_OPCODE(_opcode /*vBBBB, class@AAAAAAAA*/) \ - { \ - StaticField* sfield; \ - ref = FETCH(1) | (u4)FETCH(2) << 16; /* field ref */ \ - vdst = FETCH(3); \ - ILOGV("|sput%s/jumbo v%d,sfield@0x%08x", (_opname), vdst, ref); \ - sfield = (StaticField*)dvmDexGetResolvedField(methodClassDex, ref); \ - if (sfield == NULL) { \ - EXPORT_PC(); \ - sfield = dvmResolveStaticField(curMethod->clazz, ref); \ - if (sfield == NULL) \ - GOTO_exceptionThrown(); \ - if (dvmDexGetResolvedField(methodClassDex, ref) == NULL) { \ - JIT_STUB_HACK(dvmJitEndTraceSelect(self,pc)); \ - } \ - } \ - dvmSetStaticField##_ftype(sfield, GET_REGISTER##_regsize(vdst)); \ - ILOGV("+ SPUT '%s'=0x%08llx", \ - sfield->field.name, (u8)GET_REGISTER##_regsize(vdst)); \ - } \ - FINISH(4); - /* File: cstubs/enddefs.cpp */ /* undefine "magic" name remapping */ @@ -1276,6 +1176,8 @@ GOTO_TARGET_DECL(exceptionThrown); */ void dvmMterpDumpArmRegs(uint32_t r0, uint32_t r1, uint32_t r2, uint32_t r3) { + // TODO: Clang does not support asm declaration syntax. +#ifndef __clang__ register uint32_t rPC asm("r4"); register uint32_t rFP asm("r5"); register uint32_t rSELF asm("r6"); @@ -1290,6 +1192,7 @@ void dvmMterpDumpArmRegs(uint32_t r0, uint32_t r1, uint32_t r2, uint32_t r3) printf(" : rPC=%08x rFP=%08x rSELF=%08x rINST=%08x\n", rPC, rFP, rSELF, rINST); printf(" : rIBASE=%08x r9=%08x r10=%08x\n", rIBASE, r9, r10); +#endif //Thread* self = (Thread*) rSELF; //const Method* method = self->method; diff --git a/vm/mterp/out/InterpC-armv6j.cpp b/vm/mterp/out/InterpC-armv6j.cpp index 603c35b89..b9c203516 100644 --- a/vm/mterp/out/InterpC-armv6j.cpp +++ b/vm/mterp/out/InterpC-armv6j.cpp @@ -102,7 +102,7 @@ { \ char* desc; \ desc = dexProtoCopyMethodDescriptor(&curMethod->prototype); \ - LOGE("Invalid branch %d at 0x%04x in %s.%s %s", \ + ALOGE("Invalid branch %d at 0x%04x in %s.%s %s", \ myoff, (int) (pc - curMethod->insns), \ curMethod->clazz->descriptor, curMethod->name, desc); \ free(desc); \ @@ -128,10 +128,10 @@ char debugStrBuf[128]; \ snprintf(debugStrBuf, sizeof(debugStrBuf), __VA_ARGS__); \ if (curMethod != NULL) \ - LOG(_level, LOG_TAG"i", "%-2d|%04x%s", \ + ALOG(_level, LOG_TAG"i", "%-2d|%04x%s", \ self->threadId, (int)(pc - curMethod->insns), debugStrBuf); \ else \ - LOG(_level, LOG_TAG"i", "%-2d|####%s", \ + ALOG(_level, LOG_TAG"i", "%-2d|####%s", \ self->threadId, debugStrBuf); \ } while(false) void dvmDumpRegs(const Method* method, const u4* framePtr, bool inOnly); @@ -320,15 +320,15 @@ static inline bool checkForNull(Object* obj) return false; } #ifdef WITH_EXTRA_OBJECT_VALIDATION - if (!dvmIsHeapAddressObject(obj)) { - LOGE("Invalid object %p", obj); + if (!dvmIsHeapAddress(obj)) { + ALOGE("Invalid object %p", obj); dvmAbort(); } #endif #ifndef NDEBUG if (obj->clazz == NULL || ((u4) obj->clazz) <= 65536) { /* probable heap corruption */ - LOGE("Invalid object class %p (in %p)", obj->clazz, obj); + ALOGE("Invalid object class %p (in %p)", obj->clazz, obj); dvmAbort(); } #endif @@ -353,14 +353,14 @@ static inline bool checkForNullExportPC(Object* obj, u4* fp, const u2* pc) } #ifdef WITH_EXTRA_OBJECT_VALIDATION if (!dvmIsHeapAddress(obj)) { - LOGE("Invalid object %p", obj); + ALOGE("Invalid object %p", obj); dvmAbort(); } #endif #ifndef NDEBUG if (obj->clazz == NULL || ((u4) obj->clazz) <= 65536) { /* probable heap corruption */ - LOGE("Invalid object class %p (in %p)", obj->clazz, obj); + ALOGE("Invalid object class %p (in %p)", obj->clazz, obj); dvmAbort(); } #endif @@ -471,9 +471,9 @@ static inline bool checkForNullExportPC(Object* obj, u4* fp, const u2* pc) return; \ } while(false) -#define GOTO_invoke(_target, _methodCallRange, _jumboFormat) \ +#define GOTO_invoke(_target, _methodCallRange) \ do { \ - dvmMterp_##_target(self, _methodCallRange, _jumboFormat); \ + dvmMterp_##_target(self, _methodCallRange); \ return; \ } while(false) @@ -505,14 +505,14 @@ static inline bool checkForNullExportPC(Object* obj, u4* fp, const u2* pc) /* File: c/opcommon.cpp */ /* forward declarations of goto targets */ -GOTO_TARGET_DECL(filledNewArray, bool methodCallRange, bool jumboFormat); -GOTO_TARGET_DECL(invokeVirtual, bool methodCallRange, bool jumboFormat); -GOTO_TARGET_DECL(invokeSuper, bool methodCallRange, bool jumboFormat); -GOTO_TARGET_DECL(invokeInterface, bool methodCallRange, bool jumboFormat); -GOTO_TARGET_DECL(invokeDirect, bool methodCallRange, bool jumboFormat); -GOTO_TARGET_DECL(invokeStatic, bool methodCallRange, bool jumboFormat); -GOTO_TARGET_DECL(invokeVirtualQuick, bool methodCallRange, bool jumboFormat); -GOTO_TARGET_DECL(invokeSuperQuick, bool methodCallRange, bool jumboFormat); +GOTO_TARGET_DECL(filledNewArray, bool methodCallRange); +GOTO_TARGET_DECL(invokeVirtual, bool methodCallRange); +GOTO_TARGET_DECL(invokeSuper, bool methodCallRange); +GOTO_TARGET_DECL(invokeInterface, bool methodCallRange); +GOTO_TARGET_DECL(invokeDirect, bool methodCallRange); +GOTO_TARGET_DECL(invokeStatic, bool methodCallRange); +GOTO_TARGET_DECL(invokeVirtualQuick, bool methodCallRange); +GOTO_TARGET_DECL(invokeSuperQuick, bool methodCallRange); GOTO_TARGET_DECL(invokeMethod, bool methodCallRange, const Method* methodToCall, u2 count, u2 regs); GOTO_TARGET_DECL(returnFromMethod); @@ -1036,33 +1036,6 @@ GOTO_TARGET_DECL(exceptionThrown); } \ FINISH(2); -#define HANDLE_IGET_X_JUMBO(_opcode, _opname, _ftype, _regsize) \ - HANDLE_OPCODE(_opcode /*vBBBB, vCCCC, class@AAAAAAAA*/) \ - { \ - InstField* ifield; \ - Object* obj; \ - EXPORT_PC(); \ - ref = FETCH(1) | (u4)FETCH(2) << 16; /* field ref */ \ - vdst = FETCH(3); \ - vsrc1 = FETCH(4); /* object ptr */ \ - ILOGV("|iget%s/jumbo v%d,v%d,field@0x%08x", \ - (_opname), vdst, vsrc1, ref); \ - obj = (Object*) GET_REGISTER(vsrc1); \ - if (!checkForNull(obj)) \ - GOTO_exceptionThrown(); \ - ifield = (InstField*) dvmDexGetResolvedField(methodClassDex, ref); \ - if (ifield == NULL) { \ - ifield = dvmResolveInstField(curMethod->clazz, ref); \ - if (ifield == NULL) \ - GOTO_exceptionThrown(); \ - } \ - SET_REGISTER##_regsize(vdst, \ - dvmGetField##_ftype(obj, ifield->byteOffset)); \ - ILOGV("+ IGET '%s'=0x%08llx", ifield->field.name, \ - (u8) GET_REGISTER##_regsize(vdst)); \ - } \ - FINISH(5); - #define HANDLE_IGET_X_QUICK(_opcode, _opname, _ftype, _regsize) \ HANDLE_OPCODE(_opcode /*vA, vB, field@CCCC*/) \ { \ @@ -1107,33 +1080,6 @@ GOTO_TARGET_DECL(exceptionThrown); } \ FINISH(2); -#define HANDLE_IPUT_X_JUMBO(_opcode, _opname, _ftype, _regsize) \ - HANDLE_OPCODE(_opcode /*vBBBB, vCCCC, class@AAAAAAAA*/) \ - { \ - InstField* ifield; \ - Object* obj; \ - EXPORT_PC(); \ - ref = FETCH(1) | (u4)FETCH(2) << 16; /* field ref */ \ - vdst = FETCH(3); \ - vsrc1 = FETCH(4); /* object ptr */ \ - ILOGV("|iput%s/jumbo v%d,v%d,field@0x%08x", \ - (_opname), vdst, vsrc1, ref); \ - obj = (Object*) GET_REGISTER(vsrc1); \ - if (!checkForNull(obj)) \ - GOTO_exceptionThrown(); \ - ifield = (InstField*) dvmDexGetResolvedField(methodClassDex, ref); \ - if (ifield == NULL) { \ - ifield = dvmResolveInstField(curMethod->clazz, ref); \ - if (ifield == NULL) \ - GOTO_exceptionThrown(); \ - } \ - dvmSetField##_ftype(obj, ifield->byteOffset, \ - GET_REGISTER##_regsize(vdst)); \ - ILOGV("+ IPUT '%s'=0x%08llx", ifield->field.name, \ - (u8) GET_REGISTER##_regsize(vdst)); \ - } \ - FINISH(5); - #define HANDLE_IPUT_X_QUICK(_opcode, _opname, _ftype, _regsize) \ HANDLE_OPCODE(_opcode /*vA, vB, field@CCCC*/) \ { \ @@ -1183,29 +1129,6 @@ GOTO_TARGET_DECL(exceptionThrown); } \ FINISH(2); -#define HANDLE_SGET_X_JUMBO(_opcode, _opname, _ftype, _regsize) \ - HANDLE_OPCODE(_opcode /*vBBBB, class@AAAAAAAA*/) \ - { \ - StaticField* sfield; \ - ref = FETCH(1) | (u4)FETCH(2) << 16; /* field ref */ \ - vdst = FETCH(3); \ - ILOGV("|sget%s/jumbo v%d,sfield@0x%08x", (_opname), vdst, ref); \ - sfield = (StaticField*)dvmDexGetResolvedField(methodClassDex, ref); \ - if (sfield == NULL) { \ - EXPORT_PC(); \ - sfield = dvmResolveStaticField(curMethod->clazz, ref); \ - if (sfield == NULL) \ - GOTO_exceptionThrown(); \ - if (dvmDexGetResolvedField(methodClassDex, ref) == NULL) { \ - JIT_STUB_HACK(dvmJitEndTraceSelect(self,pc)); \ - } \ - } \ - SET_REGISTER##_regsize(vdst, dvmGetStaticField##_ftype(sfield)); \ - ILOGV("+ SGET '%s'=0x%08llx", \ - sfield->field.name, (u8)GET_REGISTER##_regsize(vdst)); \ - } \ - FINISH(4); - #define HANDLE_SPUT_X(_opcode, _opname, _ftype, _regsize) \ HANDLE_OPCODE(_opcode /*vAA, field@BBBB*/) \ { \ @@ -1229,29 +1152,6 @@ GOTO_TARGET_DECL(exceptionThrown); } \ FINISH(2); -#define HANDLE_SPUT_X_JUMBO(_opcode, _opname, _ftype, _regsize) \ - HANDLE_OPCODE(_opcode /*vBBBB, class@AAAAAAAA*/) \ - { \ - StaticField* sfield; \ - ref = FETCH(1) | (u4)FETCH(2) << 16; /* field ref */ \ - vdst = FETCH(3); \ - ILOGV("|sput%s/jumbo v%d,sfield@0x%08x", (_opname), vdst, ref); \ - sfield = (StaticField*)dvmDexGetResolvedField(methodClassDex, ref); \ - if (sfield == NULL) { \ - EXPORT_PC(); \ - sfield = dvmResolveStaticField(curMethod->clazz, ref); \ - if (sfield == NULL) \ - GOTO_exceptionThrown(); \ - if (dvmDexGetResolvedField(methodClassDex, ref) == NULL) { \ - JIT_STUB_HACK(dvmJitEndTraceSelect(self,pc)); \ - } \ - } \ - dvmSetStaticField##_ftype(sfield, GET_REGISTER##_regsize(vdst)); \ - ILOGV("+ SPUT '%s'=0x%08llx", \ - sfield->field.name, (u8)GET_REGISTER##_regsize(vdst)); \ - } \ - FINISH(4); - /* File: cstubs/enddefs.cpp */ /* undefine "magic" name remapping */ @@ -1276,6 +1176,8 @@ GOTO_TARGET_DECL(exceptionThrown); */ void dvmMterpDumpArmRegs(uint32_t r0, uint32_t r1, uint32_t r2, uint32_t r3) { + // TODO: Clang does not support asm declaration syntax. +#ifndef __clang__ register uint32_t rPC asm("r4"); register uint32_t rFP asm("r5"); register uint32_t rSELF asm("r6"); @@ -1290,6 +1192,7 @@ void dvmMterpDumpArmRegs(uint32_t r0, uint32_t r1, uint32_t r2, uint32_t r3) printf(" : rPC=%08x rFP=%08x rSELF=%08x rINST=%08x\n", rPC, rFP, rSELF, rINST); printf(" : rIBASE=%08x r9=%08x r10=%08x\n", rIBASE, r9, r10); +#endif //Thread* self = (Thread*) rSELF; //const Method* method = self->method; |