100b53b7f3f9ce5996b767b52c28dd846f47a723cAlexey Frunze /* const/string vAA, String//BBBB */ 200b53b7f3f9ce5996b767b52c28dd846f47a723cAlexey Frunze .extern MterpConstString 300b53b7f3f9ce5996b767b52c28dd846f47a723cAlexey Frunze EXPORT_PC 400b53b7f3f9ce5996b767b52c28dd846f47a723cAlexey Frunze lhu a0, 2(rPC) # a0 <- BBBB 500b53b7f3f9ce5996b767b52c28dd846f47a723cAlexey Frunze srl a1, rINST, 8 # a1 <- AA 600b53b7f3f9ce5996b767b52c28dd846f47a723cAlexey Frunze daddu a2, rFP, OFF_FP_SHADOWFRAME 700b53b7f3f9ce5996b767b52c28dd846f47a723cAlexey Frunze move a3, rSELF 800b53b7f3f9ce5996b767b52c28dd846f47a723cAlexey Frunze jal MterpConstString # (index, tgt_reg, shadow_frame, self) 900b53b7f3f9ce5996b767b52c28dd846f47a723cAlexey Frunze PREFETCH_INST 2 # load rINST 1000b53b7f3f9ce5996b767b52c28dd846f47a723cAlexey Frunze bnez v0, MterpPossibleException # let reference interpreter deal with it. 1100b53b7f3f9ce5996b767b52c28dd846f47a723cAlexey Frunze ADVANCE 2 # advance rPC 1200b53b7f3f9ce5996b767b52c28dd846f47a723cAlexey Frunze GET_INST_OPCODE v0 # extract opcode from rINST 1300b53b7f3f9ce5996b767b52c28dd846f47a723cAlexey Frunze GOTO_OPCODE v0 # jump to next instruction 14