1%verify "executed" 2%verify "null object" 3 /* For: iput-object-quick */ 4 # op vA, vB, offset /* CCCC */ 5 GET_OPB(a2) # a2 <- B 6 GET_VREG(a3, a2) # a3 <- fp[B], the object pointer 7 FETCH(a1, 1) # a1 <- field byte offset 8 GET_OPA4(a2) # a2 <- A(+) 9 beqz a3, common_errNullObject # object was null 10 GET_VREG(a0, a2) # a0 <- fp[A] 11 FETCH_ADVANCE_INST(2) # advance rPC, load rINST 12 addu t0, a3, a1 13 sw a0, 0(t0) # obj.field (always 32 bits) <- a0 14 beqz a0, 1f 15 lw a2, offThread_cardTable(rSELF) # a2 <- card table base 16 srl t1, a3, GC_CARD_SHIFT 17 addu t2, a2, t1 18 sb a2, 0(t2) 191: 20 GET_INST_OPCODE(t0) # extract opcode from rINST 21 GOTO_OPCODE(t0) # jump to next instruction 22