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