Home | History | Annotate | Download | only in x86
      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), %eax                    # eax<- 0000CCCC
     11     movl    %eax, OUT_ARG0(%esp)            # field ref CCCC
     12     movzbl  rINSTbl, %ecx                   # ecx<- BA
     13     sarl    $$4, %ecx                       # ecx<- B
     14     GET_VREG %ecx, %ecx
     15     movl    %ecx, OUT_ARG1(%esp)            # the object pointer
     16     andb    $$0xf, rINSTbl                  # rINST<- A
     17     GET_VREG %eax, rINST
     18     movl    %eax, OUT_ARG2(%esp)            # fp[A]
     19     movl    OFF_FP_METHOD(rFP), %eax
     20     movl    %eax, OUT_ARG3(%esp)            # referrer
     21     call    SYMBOL($handler)
     22     testb   %al, %al
     23     jnz     MterpPossibleException
     24     RESTORE_IBASE
     25     ADVANCE_PC_FETCH_AND_GOTO_NEXT 2
     26