blob: 6b7cb1cc84bb62a0b1c4dea3dbb99f106f13f1f1 [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), OUT_32_ARG0 # field ref <- 0000CCCC
movzbq rINSTbl, %rcx # rcx<- BA
sarl $$4, %ecx # ecx<- B
GET_VREG OUT_32_ARG1, %rcx # the object pointer
andb $$0xf, rINSTbl # rINST<- A
GET_VREG OUT_32_ARG2, rINSTq # fp[A]
movq OFF_FP_METHOD(rFP), OUT_ARG3 # referrer
call SYMBOL($handler)
testb %al, %al
jnz MterpPossibleException
ADVANCE_PC_FETCH_AND_GOTO_NEXT 2