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