Home | History | Annotate | Download | only in x86
      1 %verify "executed"
      2     /*
      3      * Array put, 64 bits.  vBB[vCC]<-vAA.
      4      *
      5      */
      6     /* op vAA, vBB, vCC */
      7     movzbl    2(rPC),%eax               # eax<- BB
      8     movzbl    3(rPC),%ecx               # ecx<- CC
      9     GET_VREG_R  %eax %eax               # eax<- vBB (array object)
     10     GET_VREG_R  %ecx %ecx               # ecs<- vCC (requested index)
     11     testl     %eax,%eax                 # null array object?
     12     je        common_errNullObject      # bail if so
     13     cmpl      offArrayObject_length(%eax),%ecx
     14     jae       common_errArrayIndex      # index >= length, bail.  Expects:
     15                                         #   arrayObj in eax
     16                                         #   index in ecx
     17     leal      offArrayObject_contents(%eax,%ecx,8),%eax
     18     GET_VREG_WORD %ecx rINST 0
     19     GET_VREG_WORD rINST rINST 1
     20     movl      %ecx,(%eax)
     21     FETCH_INST_OPCODE 2 %ecx
     22     movl      rINST,4(%eax)
     23     ADVANCE_PC 2
     24     GOTO_NEXT_R %ecx
     25