/dalvik/vm/mterp/mips/ |
H A D | OP_CONST_HIGH16.S | 3 FETCH(a0, 1) # a0 <- 0000BBBB (zero-extended) 5 sll a0, a0, 16 # a0 <- BBBB0000 8 SET_VREG_GOTO(a0, a3, t0) # vAA <- a0
|
H A D | OP_RETURN.S | 10 GET_VREG(a0, a2) # a0 <- vAA 11 sw a0, offThread_retval(rSELF) # retval.i <- vAA
|
H A D | OP_CONST_WIDE_32.S | 3 FETCH(a0, 1) # a0 <- 0000bbbb (low) 8 or a0, a0, a2 # a0 <- BBBBbbbb 10 sra a1, a0, 31 # a1 <- ssssssss 12 STORE64(a0, a1, a3) # vAA <- a0/a1
|
H A D | OP_CONST_4.S | 4 GET_OPA(a0) # a0 <- A+ 7 and a0, a0, 15 9 SET_VREG_GOTO(a1, a0, t0) # fp[A] <- a1
|
H A D | OP_CONST.S | 4 FETCH(a0, 1) # a0 <- bbbb (low) 8 or a0, a1, a0 # a0 <- BBBBbbbb 10 SET_VREG_GOTO(a0, a3, t0) # vAA <- a0
|
H A D | binop.S | 1 %default {"preinstr":"", "result":"a0", "chkzero":"0"} 4 * specifies an instruction that performs "result = a0 op a1". 6 * comes back in a register other than a0, you can override "result".) 17 FETCH(a0, 1) # a0 <- CCBB 19 srl a3, a0, 8 # a3 <- CC 20 and a2, a0, 255 # a2 <- BB 22 GET_VREG(a0, a2) # a0 <- vBB 30 $instr # $result <- op, a0 [all...] |
H A D | OP_AGET_WIDE.S | 8 FETCH(a0, 1) # a0 <- CCBB 10 and a2, a0, 255 # a2 <- BB 11 srl a3, a0, 8 # a3 <- CC 12 GET_VREG(a0, a2) # a0 <- vBB (array object) 15 beqz a0, common_errNullObject # yes, bail 16 LOAD_base_offArrayObject_length(a3, a0) # a3 <- arrayObj->length 17 EAS3(a0, a0, a [all...] |
H A D | OP_APUT_WIDE.S | 8 FETCH(a0, 1) # a0 <- CCBB 10 and a2, a0, 255 # a2 <- BB 11 srl a3, a0, 8 # a3 <- CC 12 GET_VREG(a0, a2) # a0 <- vBB (array object) 15 beqz a0, common_errNullObject # yes, bail 16 LOAD_base_offArrayObject_length(a3, a0) # a3 <- arrayObj->length 17 EAS3(a0, a0, a [all...] |
H A D | OP_BREAKPOINT.S | 9 move a0, rPC 14 or rINST, rINST, a0 15 GOTO_OPCODE_BASE(a1, a0)
|
H A D | OP_CONST_16.S | 3 FETCH_S(a0, 1) # a0 <- ssssBBBB (sign-extended) 7 SET_VREG_GOTO(a0, a3, t0) # vAA <- a0
|
H A D | OP_MOVE_RESULT.S | 6 LOAD_rSELF_retval(a0) # a0 <- self->retval.i 8 SET_VREG_GOTO(a0, a2, t0) # fp[AA] <- a0
|
H A D | OP_RETURN_WIDE.S | 10 LOAD64(a0, a1, a2) # a0/a1 <- vAA/vAA+1 11 STORE64(a0, a1, a3) # retval <- a0/a1
|
H A D | unop.S | 1 %default {"preinstr":"", "result0":"a0"} 4 * specifies an instruction that performs "result = op a0". 13 GET_VREG(a0, a3) # a0 <- vB 16 $instr # a0 <- op, a0-a3 changed
|
H A D | OP_PACKED_SWITCH.S | 16 FETCH(a0, 1) # a0 <- bbbb (lo) 20 or a0, a0, t0 # a0 <- BBBBbbbb 22 EAS1(a0, rPC, a0) # a0 <- PC + BBBBbbbb*2 23 JAL($func) # a0 <- code-unit branch offset 30 lw a0, offThread_pJitProfTabl [all...] |
H A D | OP_GOTO_16.S | 10 FETCH_S(a0, 1) # a0 <- ssssAAAA (sign-extended) 11 addu a1, a0, a0 # a1 <- byte offset, flags set 17 lw a0, offThread_pJitProfTable(rSELF) 18 bltz a1, common_testUpdateProfile # (a0) hot trace head?
|
H A D | OP_INSTANCE_OF.S | 17 GET_VREG(a0, a3) # a0 <- vB (object) 20 beqz a0, .L${opcode}_store # null obj, not an instance, store a0 24 LOAD_base_offObject_clazz(a0, a0) # a0 <- obj->clazz 27 .L${opcode}_resolved: # a0=obj->clazz, a1=resolved class 29 beq a0, a1, .L${opcode}_trivial # yes, trivial finish 37 li a0, [all...] |
H A D | OP_AGET.S | 15 GET_VREG(a0, a2) # a0 <- vBB (array object) 18 beqz a0, common_errNullObject # yes, bail 19 LOAD_base_offArrayObject_length(a3, a0) # a3 <- arrayObj->length 21 EASN(a0, a0, a1, $shift) # a0 <- arrayObj + index*width 23 addu a0, a0, a1 28 $load a2, offArrayObject_contents(a0) # a [all...] |
H A D | OP_APUT.S | 11 GET_VREG(a0, a2) # a0 <- vBB (array object) 14 beqz a0, common_errNullObject # yes, bail 15 LOAD_base_offArrayObject_length(a3, a0) # a3 <- arrayObj->length 17 EASN(a0, a0, a1, $shift) # a0 <- arrayObj + index*width 19 addu a0, a0, a1 25 $store a2, offArrayObject_contents(a0) # vB [all...] |
H A D | OP_GOTO_32.S | 13 FETCH(a0, 1) # a0 <- aaaa (lo) 16 or a0, a0, a1 # a0 <- AAAAaaaa 17 addu a1, a0, a0 # a1 <- byte offset 19 lw a0, offThread_pJitProfTable(rSELF) 24 blez a1, common_testUpdateProfile # (a0) hot trace head? 27 bgtz a0, [all...] |
H A D | OP_IGET.S | 13 GET_OPB(a0) # a0 <- B 17 GET_VREG(rOBJ, a0) # rOBJ <- fp[B], the object pointer 18 LOAD_eas2(a0, a2, a1) # a0 <- resolved InstField ptr 20 bnez a0, .L${opcode}_finish # no, already resolved 23 LOAD_base_offMethod_clazz(a0, a2) # a0 <- method->clazz 26 move a0, v0 38 LOAD_base_offInstField_byteOffset(a3, a0) # a [all...] |
H A D | OP_IPUT.S | 13 GET_OPB(a0) # a0 <- B 17 GET_VREG(rOBJ, a0) # rOBJ <- fp[B], the object pointer 18 LOAD_eas2(a0, a2, a1) # a0 <- resolved InstField ptr 20 bnez a0, .L${opcode}_finish # no, already resolved 23 LOAD_base_offMethod_clazz(a0, a2) # a0 <- method->clazz 26 move a0, v0 33 * a0 hold [all...] |
/dalvik/vm/compiler/template/mips/ |
H A D | TEMPLATE_SAVE_STATE.S | 5 * Top of stack + 0: a0 value to save 6 * a0 - offset from rSELF to the beginning of the heapArgSpace record 10 * r0-r31 with their original values (note that this means a0 and a1 must take 16 add a0, a0, rSELF # pointer to heapArgSpace 17 sw a1, 0(a0) # save regMap 18 add a0, a0, 4 # pointer to coreRegs 20 sw zero, r_ZERO*4(a0) # save zero 23 sw AT, r_AT*4(a0) # sav [all...] |
H A D | TEMPLATE_RESTORE_STATE.S | 4 * a0 - offset from rSELF to the 1st element of the coreRegs save array. 9 add a0, a0, rSELF # pointer to heapArgSpace.coreRegs[0] 11 lw zero, r_ZERO*4(a0) # restore zero 14 lw AT, r_AT*4(a0) # restore at 16 lw v0, r_V0*4(a0) # restore v0 17 lw v1, r_V1*4(a0) # restore v1 19 lw a1, r_A1*4(a0) # restore a1 20 lw a2, r_A2*4(a0) # restore a2 21 lw a3, r_A3*4(a0) # restor [all...] |
H A D | TEMPLATE_INTERPRET.S | 16 move a0, a1 18 lw a0, 0(ra)
|
H A D | TEMPLATE_RETURN.S | 9 # preserve a0-a2 and ra 10 SCRATCH_STORE(a0, 0) 15 # a0=rSELF 16 move a0, rSELF 21 # restore a0-a2 and ra 25 SCRATCH_LOAD(a0, 0) 27 SAVEAREA_FROM_FP(a0, rFP) # a0<- saveArea (old) 28 lw t0, offStackSaveArea_prevFrame(a0) # t0<- saveArea->prevFrame 30 lw rPC, offStackSaveArea_savedPc(a0) # rP [all...] |