• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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