Home | History | Annotate | Download | only in x86_64
      1 %default { "load":"movl", "wide":"0"}
      2     /* For: iget-quick, iget-boolean-quick, iget-byte-quick, iget-char-quick, iget-short-quick, iget-wide-quick */
      3     /* op vA, vB, offset@CCCC */
      4     movl    rINST, %ecx                     # rcx <- BA
      5     sarl    $$4, %ecx                       # ecx <- B
      6     GET_VREG %ecx, %rcx                     # vB (object we're operating on)
      7     movzwq  2(rPC), %rax                    # eax <- field byte offset
      8     testl   %ecx, %ecx                      # is object null?
      9     je      common_errNullObject
     10     andb    $$0xf,rINSTbl                   # rINST <- A
     11     .if $wide
     12     movq (%rcx,%rax,1), %rax
     13     SET_WIDE_VREG %rax, rINSTq              # fp[A] <- value
     14     .else
     15     ${load} (%rcx,%rax,1), %eax
     16     SET_VREG %eax, rINSTq                   # fp[A] <- value
     17     .endif
     18     ADVANCE_PC_FETCH_AND_GOTO_NEXT 2
     19