Home | History | Annotate | Download | only in x86
      1 /*
      2  * Array object get.  vAA <- vBB[vCC].
      3  *
      4  * for: aget-object
      5  */
      6     /* op vAA, vBB, vCC */
      7     movzbl  2(rPC), %eax                    # eax <- BB
      8     movzbl  3(rPC), %ecx                    # ecx <- CC
      9     GET_VREG %eax, %eax                     # eax <- vBB (array object)
     10     GET_VREG %ecx, %ecx                     # ecs <- vCC (requested index)
     11     EXPORT_PC
     12     movl    %eax, OUT_ARG0(%esp)
     13     movl    %ecx, OUT_ARG1(%esp)
     14     call    SYMBOL(artAGetObjectFromMterp)  # (array, index)
     15     movl    rSELF, %ecx
     16     RESTORE_IBASE_FROM_SELF %ecx
     17     cmpl    $$0, THREAD_EXCEPTION_OFFSET(%ecx)
     18     jnz     MterpException
     19     SET_VREG_OBJECT %eax, rINST
     20     ADVANCE_PC_FETCH_AND_GOTO_NEXT 2
     21