blob: a8c0e61a8f5a3d0a0f7764cb2ebb3bda0ab7aac4 [file] [log] [blame]
Bill Buzbee3b0b4b92016-02-02 13:45:36 +00001%default { "is_object":"0", "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 FETCH w0, 1 // w0<- field ref CCCC
11 lsr w1, wINST, #12 // w1<- B
12 GET_VREG w1, w1 // w1<- fp[B], the object pointer
13 ubfx w2, wINST, #8, #4 // w2<- A
14 GET_VREG w2, w2 // w2<- fp[A]
15 ldr x3, [xFP, #OFF_FP_METHOD] // w3<- referrer
16 PREFETCH_INST 2
17 bl $handler
18 cbnz w0, MterpPossibleException
19 ADVANCE 2 // advance rPC
20 GET_INST_OPCODE ip // extract opcode from rINST
21 GOTO_OPCODE ip // jump to next instruction