blob: 4fc735ce6bcc955ef47d1a71865f22b795e1c381 [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 MterpIGetU64
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