blob: 9718390c3b9c63db461237b30eaf3e6e575b2bff [file] [log] [blame]
/*
* 64-bit instance field get.
*
* for: iget-wide
*/
EXPORT_PC
FETCH w0, 1 // w0<- field ref CCCC
lsr w1, wINST, #12 // w1<- B
GET_VREG w1, w1 // w1<- fp[B], the object pointer
ldr x2, [xFP, #OFF_FP_METHOD] // w2<- referrer
mov x3, xSELF // w3<- self
bl artGet64InstanceFromCode
ldr x3, [xSELF, #THREAD_EXCEPTION_OFFSET]
ubfx w2, wINST, #8, #4 // w2<- A
PREFETCH_INST 2
cmp w3, #0
cbnz w3, MterpException // bail out
SET_VREG_WIDE x0, w2
ADVANCE 2
GET_INST_OPCODE ip // extract opcode from wINST
GOTO_OPCODE ip // jump to next instruction