Home | History | Annotate | Download | only in x86_64
      1 %default { "handler":"artSet32InstanceFromMterp"}
      2 /*
      3  * General 32-bit instance field put.
      4  *
      5  * for: iput, iput-object, iput-boolean, iput-byte, iput-char, iput-short
      6  */
      7     /* op vA, vB, field@CCCC */
      8     .extern $handler
      9     EXPORT_PC
     10     movzwl  2(rPC), OUT_32_ARG0             # field ref <- 0000CCCC
     11     movzbq  rINSTbl, %rcx                   # rcx<- BA
     12     sarl    $$4, %ecx                       # ecx<- B
     13     GET_VREG OUT_32_ARG1, %rcx              # the object pointer
     14     andb    $$0xf, rINSTbl                  # rINST<- A
     15     GET_VREG OUT_32_ARG2, rINSTq            # fp[A]
     16     movq    OFF_FP_METHOD(rFP), OUT_ARG3    # referrer
     17     call    SYMBOL($handler)
     18     testb   %al, %al
     19     jnz     MterpPossibleException
     20     ADVANCE_PC_FETCH_AND_GOTO_NEXT 2
     21