Home | History | Annotate | Download | only in x86
      1 %verify "executed"
      2 %verify "null object"
      3     /* For: iput-object-quick */
      4     /* op vA, vB, offset@CCCC */
      5     movzbl    rINSTbl,%ecx              # ecx<- BA
      6     sarl      $$4,%ecx                  # ecx<- B
      7     GET_VREG_R  %ecx %ecx               # vB (object we're operating on)
      8     andb      $$0xf,rINSTbl             # rINST<- A
      9     GET_VREG_R  rINST rINST             # rINST<- v[A]
     10     movzwl    2(rPC),%eax               # eax<- field byte offset
     11     testl     %ecx,%ecx                 # is object null?
     12     je        common_errNullObject
     13     movl      rINST,(%ecx,%eax,1)
     14     movl      rSELF,%eax
     15     testl     rINST,rINST               # did we store null?
     16     movl      offThread_cardTable(%eax),%eax  # get card table base
     17     je        1f                            # skip card mark if null store
     18     shrl      $$GC_CARD_SHIFT,%ecx          # object head to card number
     19     movb      %al,(%eax,%ecx)               # mark card based on object head
     20 1:
     21     FETCH_INST_OPCODE 2 %ecx
     22     ADVANCE_PC 2
     23     GOTO_NEXT_R %ecx
     24