%default { "is_object":"0", "helper":"MterpGet32Static", "extend":"" } /* * General SGET handler wrapper. * * for: sget, sget-object, sget-boolean, sget-byte, sget-char, sget-short */ /* op vAA, field//BBBB */ .extern $helper EXPORT_PC FETCH w0, 1 // w0<- field ref BBBB ldr x1, [xFP, #OFF_FP_METHOD] mov x2, xSELF bl $helper ldr x3, [xSELF, #THREAD_EXCEPTION_OFFSET] lsr w2, wINST, #8 // w2<- AA $extend PREFETCH_INST 2 cbnz x3, MterpException // bail out .if $is_object SET_VREG_OBJECT w0, w2 // fp[AA]<- w0 .else SET_VREG w0, w2 // fp[AA]<- w0 .endif ADVANCE 2 GET_INST_OPCODE ip // extract opcode from rINST GOTO_OPCODE ip