Home | History | Annotate | Download | only in x86
      1 /*
      2  * 64-bit instance field get.
      3  *
      4  * for: iget-wide
      5  */
      6     EXPORT_PC
      7     movzwl  2(rPC), %eax                    # eax <- 0000CCCC
      8     movl    %eax, OUT_ARG0(%esp)            # field ref CCCC
      9     movzbl  rINSTbl, %ecx                   # ecx <- BA
     10     sarl    $$4, %ecx                       # ecx <- B
     11     GET_VREG %ecx, %ecx
     12     movl    %ecx, OUT_ARG1(%esp)            # the object pointer
     13     movl    OFF_FP_METHOD(rFP), %eax
     14     movl    %eax, OUT_ARG2(%esp)            # referrer
     15     mov     rSELF, %ecx
     16     movl    %ecx, OUT_ARG3(%esp)            # self
     17     call    SYMBOL(artGet64InstanceFromCode)
     18     mov     rSELF, %ecx
     19     cmpl    $$0, THREAD_EXCEPTION_OFFSET(%ecx)
     20     jnz     MterpException                  # bail out
     21     andb    $$0xf, rINSTbl                  # rINST <- A
     22     SET_VREG %eax, rINST
     23     SET_VREG_HIGH %edx, rINST
     24     RESTORE_IBASE_FROM_SELF %ecx
     25     ADVANCE_PC_FETCH_AND_GOTO_NEXT 2
     26