100b53b7f3f9ce5996b767b52c28dd846f47a723cAlexey Frunze /* iget-wide-quick vA, vB, offset//CCCC */ 200b53b7f3f9ce5996b767b52c28dd846f47a723cAlexey Frunze srl a2, rINST, 12 # a2 <- B 300b53b7f3f9ce5996b767b52c28dd846f47a723cAlexey Frunze lhu a4, 2(rPC) # a4 <- field byte offset 400b53b7f3f9ce5996b767b52c28dd846f47a723cAlexey Frunze GET_VREG_U a3, a2 # a3 <- object we're operating on 500b53b7f3f9ce5996b767b52c28dd846f47a723cAlexey Frunze ext a2, rINST, 8, 4 # a2 <- A 600b53b7f3f9ce5996b767b52c28dd846f47a723cAlexey Frunze beqz a3, common_errNullObject # object was null 700b53b7f3f9ce5996b767b52c28dd846f47a723cAlexey Frunze daddu a4, a3, a4 # create direct pointer 800b53b7f3f9ce5996b767b52c28dd846f47a723cAlexey Frunze lw a0, 0(a4) 900b53b7f3f9ce5996b767b52c28dd846f47a723cAlexey Frunze lw a1, 4(a4) 1000b53b7f3f9ce5996b767b52c28dd846f47a723cAlexey Frunze dinsu a0, a1, 32, 32 1100b53b7f3f9ce5996b767b52c28dd846f47a723cAlexey Frunze FETCH_ADVANCE_INST 2 # advance rPC, load rINST 1200b53b7f3f9ce5996b767b52c28dd846f47a723cAlexey Frunze SET_VREG_WIDE a0, a2 1300b53b7f3f9ce5996b767b52c28dd846f47a723cAlexey Frunze GET_INST_OPCODE v0 # extract opcode from rINST 1400b53b7f3f9ce5996b767b52c28dd846f47a723cAlexey Frunze GOTO_OPCODE v0 # jump to next instruction 15