blob: f8a65499d7ba9ff6d1c972e98df0b833cc6db149 [file] [log] [blame]
%default { "handler":"artSet32InstanceFromMterp" }
/*
* General 32-bit instance field put.
*
* for: iput, iput-object, iput-boolean, iput-byte, iput-char, iput-short
*/
/* op vA, vB, field@CCCC */
.extern $handler
EXPORT_PC
movzwl 2(rPC), %eax # eax<- 0000CCCC
movl %eax, OUT_ARG0(%esp) # field ref CCCC
movzbl rINSTbl, %ecx # ecx<- BA
sarl $$4, %ecx # ecx<- B
GET_VREG %ecx, %ecx
movl %ecx, OUT_ARG1(%esp) # the object pointer
andb $$0xf, rINSTbl # rINST<- A
GET_VREG %eax, rINST
movl %eax, OUT_ARG2(%esp) # fp[A]
movl OFF_FP_METHOD(rFP), %eax
movl %eax, OUT_ARG3(%esp) # referrer
call $handler
testl %eax, %eax
jnz MterpPossibleException
REFRESH_IBASE
ADVANCE_PC_FETCH_AND_GOTO_NEXT 2