/dalvik/vm/mterp/mips/ |
H A D | OP_IPUT_QUICK.S | 5 GET_OPB(a2) # a2 <- B 6 GET_VREG(a3, a2) # a3 <- fp[B], the object pointer 8 GET_OPA4(a2) # a2 <- A(+) 10 GET_VREG(a0, a2) # a0 <- fp[A]
|
H A D | OP_CONST_CLASS.S | 7 LOAD_rSELF_methodClassDex(a2) # a2 <- self->methodClassDex 9 LOAD_base_offDvmDex_pResClasses(a2, a2) # a2 <- dvmDex->pResClasses 10 LOAD_eas2(v0, a2, a1) # v0 <- pResClasses[BBBB] 20 li a2, 1 # a2 <- true
|
H A D | OP_SHL_LONG_2ADDR.S | 9 GET_VREG(a2, a3) # a2 <- vB 15 sll v0, a0, a2 # rlo<- alo << (shift&31) 16 not v1, a2 # rhi<- 31-shift (shift is 5b) 19 sll v1, a1, a2 # rhi<- ahi << (shift&31) 21 andi a2, 0x20 # shift< shift & 0x20 22 movn v1, v0, a2 # rhi<- rlo (if shift&0x20) 23 movn v0, zero, a2 # rlo<- 0 (if shift&0x20)
|
H A D | OP_THROW_VERIFICATION_ERROR.S | 10 FETCH(a2, 1) # a2 <- BBBB
|
H A D | OP_USHR_LONG_2ADDR.S | 9 GET_VREG(a2, a3) # a2 <- vB 14 srl v1, a1, a2 # rhi<- ahi >> (shift&31) 15 srl v0, a0, a2 # rlo<- alo >> (shift&31) 16 not a0, a2 # alo<- 31-n (shift is 5b) 20 andi a2, 0x20 # shift & 0x20 21 movn v0, v1, a2 # rlo<- rhi (if shift&0x20) 22 movn v1, zero, a2 # rhi<- 0 (if shift&0x20)
|
H A D | binopWide.S | 1 %default {"preinstr":"", "result0":"a0", "result1":"a1", "chkzero":"0", "arg0":"a0", "arg1":"a1", "arg2":"a2", "arg3":"a3"} 4 * specifies an instruction that performs "result = a0-a1 op a2-a3". 19 and a2, a0, 255 # a2 <- BB 22 EAS2(a2, rFP, a2) # a2 <- &fp[BB] 24 LOAD64($arg0, $arg1, a2) # a0/a1 <- vBB/vBB+1 25 LOAD64($arg2, $arg3, t1) # a2/a3 <- vCC/vCC+1 27 or t0, $arg2, $arg3 # second arg (a2 [all...] |
H A D | OP_AGET.S | 12 FETCH_B(a2, 1) # a2 <- BB 15 GET_VREG(a0, a2) # a0 <- vBB (array object) 28 $load a2, offArrayObject_contents(a0) # a2 <- vBB[vCC] 30 SET_VREG_GOTO(a2, rOBJ, t0) # vAA <- a2
|
H A D | OP_APUT.S | 8 FETCH_B(a2, 1) # a2 <- BB 11 GET_VREG(a0, a2) # a0 <- vBB (array object) 23 GET_VREG(a2, rOBJ) # a2 <- vAA 25 $store a2, offArrayObject_contents(a0) # vBB[vCC] <- a2
|
H A D | OP_APUT_WIDE.S | 10 and a2, a0, 255 # a2 <- BB 12 GET_VREG(a0, a2) # a0 <- vBB (array object) 23 LOAD64(a2, a3, rOBJ) # a2/a3 <- vAA/vAA+1 25 STORE64_off(a2, a3, a0, offArrayObject_contents) # a2/a3 <- vBB[vCC]
|
H A D | bincmp.S | 14 GET_VREG(a2, a0) # a2 <- vA 15 b${revcmp} a2, a3, 1f # branch to 1 if comparison failed 21 addu a2, a1, a1 # convert to bytes 22 FETCH_ADVANCE_INST_RB(a2) # update rPC, load rINST 25 bgez a2, 3f 30 bgez a2, 4f
|
H A D | OP_CMP_LONG.S | 19 and a2, a0, 255 # a2 <- BB 21 EAS2(a2, rFP, a2) # a2 <- &fp[BB] 23 LOAD64(a0, a1, a2) # a0/a1 <- vBB/vBB+1 24 LOAD64(a2, a3, a3) # a2/a3 <- vCC/vCC+1 32 sltu t0, a0, a2 # compare lo 33 sgtu t1, a0, a2 [all...] |
H A D | OP_IPUT_WIDE.S | 11 LOAD_base_offDvmDex_pResFields(a2, a3) # a2 <- pResFields 13 LOAD_eas2(a0, a2, a1) # a0 <- resolved InstField ptr 16 LOAD_rSELF_method(a2) # a2 <- current method 18 LOAD_base_offMethod_clazz(a0, a2) # a0 <- method->clazz 32 GET_OPA4(a2) # a2 <- A+ 34 EAS2(a2, rFP, a2) # a [all...] |
H A D | OP_SPUT_WIDE.S | 10 LOAD_rSELF_methodClassDex(a2) # a2 <- DvmDex 12 LOAD_base_offDvmDex_pResFields(rBIX, a2) # rBIX <- dvmDex->pResFields 14 LOAD_eas2(a2, rBIX, a1) # a2 <- resolved StaticField ptr 17 beqz a2, .L${opcode}_resolve # yes, do resolve 18 .L${opcode}_finish: # field ptr in a2, AA in rOBJ 23 addu a2, offStaticField_value # a2<- pointer to data 24 JAL(dvmQuasiAtomicSwap64Sync) # stores a0/a1 into addr a2 [all...] |
H A D | OP_IGET.S | 16 LOAD_base_offDvmDex_pResFields(a2, a3) # a2 <- pDvmDex->pResFields 18 LOAD_eas2(a0, a2, a1) # a0 <- resolved InstField ptr 21 LOAD_rSELF_method(a2) # a2 <- current method 23 LOAD_base_offMethod_clazz(a0, a2) # a0 <- method->clazz 44 GET_OPA4(a2) # a2 <- A+ 47 SET_VREG(a0, a2) # fp[A] <- a0
|
H A D | OP_NEW_ARRAY.S | 13 FETCH(a2, 1) # a2 <- CCCC 17 LOAD_eas2(a0, a3, a2) # a0 <- resolved class 31 li a2, ALLOC_DONT_TRACK # don't track in local refs table 33 GET_OPA4(a2) # a2 <- A+ 38 SET_VREG(v0, a2) # vA <- v0 46 * a2 holds class ref CCCC 51 move a1, a2 # a1 <- CCCC 52 li a2, [all...] |
H A D | OP_SGET.S | 12 LOAD_rSELF_methodClassDex(a2) # a2 <- DvmDex 14 LOAD_base_offDvmDex_pResFields(rBIX, a2) # rBIX <- dvmDex->pResFields 24 LOAD_rSELF_method(a2) # a2 <- current method 29 LOAD_base_offMethod_clazz(a0, a2) # a0 <- method->clazz 47 GET_OPA(a2) # a2 <- AA 50 SET_VREG_GOTO(a1, a2, t0) # fp[AA] <- a1
|
H A D | OP_SPUT.S | 12 LOAD_rSELF_methodClassDex(a2) # a2 <- DvmDex 14 LOAD_base_offDvmDex_pResFields(rBIX, a2) # rBIX <- dvmDex->pResFields 22 LOAD_rSELF_method(a2) # a2 <- current method 27 LOAD_base_offMethod_clazz(a0, a2) # a0 <- method->clazz 43 GET_OPA(a2) # a2 <- AA 45 GET_VREG(a1, a2) # a1 <- fp[AA]
|
H A D | binflopWide.S | 4 * specifies an instruction that performs "result = a0-a1 op a2-a3". 18 and a2, a0, 255 # a2 <- BB 21 EAS2(a2, rFP, a2) # a2 <- &fp[BB] 24 LOAD64(rARG0, rARG1, a2) # a0/a1 <- vBB/vBB+1 25 LOAD64(rARG2, rARG3, t1) # a2/a3 <- vCC/vCC+1 27 or t0, rARG2, rARG3 # second arg (a2-a3) is zero? 31 LOAD64_F(fa0, fa0f, a2) [all...] |
H A D | OP_AGET_WIDE.S | 10 and a2, a0, 255 # a2 <- BB 12 GET_VREG(a0, a2) # a0 <- vBB (array object) 22 LOAD64_off(a2, a3, a0, offArrayObject_contents) 25 STORE64(a2, a3, rOBJ) # vAA/vAA+1 <- a2/a3
|
H A D | OP_CONST_STRING.S | 7 LOAD_rSELF_methodClassDex(a2) # a2 <- self->methodClassDex 9 LOAD_base_offDvmDex_pResStrings(a2, a2) # a2 <- dvmDex->pResStrings 10 LOAD_eas2(v0, a2, a1) # v0 <- pResStrings[BBBB]
|
H A D | OP_CONST_STRING_JUMBO.S | 8 LOAD_rSELF_methodClassDex(a2) # a2 <- self->methodClassDex 10 LOAD_base_offDvmDex_pResStrings(a2, a2) # a2 <- dvmDex->pResStrings 13 LOAD_eas2(v0, a2, a1) # v0 <- pResStrings[BBBB]
|
H A D | OP_IPUT_WIDE_QUICK.S | 6 GET_VREG(a2, a1) # a2 <- fp[B], the object pointer 10 beqz a2, common_errNullObject # object was null 13 addu a2, a2, a3 # obj.field (64 bits, aligned) <- a0/a1 14 STORE64(a0, a1, a2) # obj.field (64 bits, aligned) <- a0/a1
|
/dalvik/vm/compiler/template/mips/ |
H A D | TEMPLATE_STRING_COMPARETO.S | 26 lw a2, STRING_FIELDOFF_COUNT(a1) 33 * count: t2/a2 37 * a2 <- minCount 39 subu a3, t2, a2 # a3<- countDiff 40 sleu t7, t2, a2 41 movn a2, t2, t7 # a2<- minCount 59 * a2: iteration count for comparison 65 subu a2, 2 66 bltz a2, do_remainder [all...] |
H A D | TEMPLATE_RETURN.S | 9 # preserve a0-a2 and ra 12 SCRATCH_STORE(a2, 8) 21 # restore a0-a2 and ra 23 SCRATCH_LOAD(a2, 8) 36 lw a2, offStackSaveArea_method - sizeofStackSaveArea(t0) 37 # a2<- method we're returning to 39 beq a2, zero, 1f # bail to interpreter 41 bne a2, zero, 2f 49 beq a2, zero, 4f 50 lw t0, offMethod_clazz(a2) # t [all...] |
H A D | TEMPLATE_SQRT_DOUBLE_VFP.S | 9 * a2 src addr of op1 14 LOAD64(rARG0, rARG1, a2) # a0/a1<- vBB/vBB+1 16 LOAD64_F(fa0, fa0f, a2) # fa0/fa0f<- vBB/vBB+1
|