1200f040af3e4fe9e178cb63c90860d58d90ef665Douglas Leung # const/string vAA, String /* BBBBBBBB */ 2200f040af3e4fe9e178cb63c90860d58d90ef665Douglas Leung EXPORT_PC() 3200f040af3e4fe9e178cb63c90860d58d90ef665Douglas Leung FETCH(a0, 1) # a0 <- bbbb (low) 4200f040af3e4fe9e178cb63c90860d58d90ef665Douglas Leung FETCH(a2, 2) # a2 <- BBBB (high) 5200f040af3e4fe9e178cb63c90860d58d90ef665Douglas Leung GET_OPA(a1) # a1 <- AA 6200f040af3e4fe9e178cb63c90860d58d90ef665Douglas Leung sll a2, a2, 16 7200f040af3e4fe9e178cb63c90860d58d90ef665Douglas Leung or a0, a0, a2 # a0 <- BBBBbbbb 8200f040af3e4fe9e178cb63c90860d58d90ef665Douglas Leung addu a2, rFP, OFF_FP_SHADOWFRAME # a2 <- shadow frame 9200f040af3e4fe9e178cb63c90860d58d90ef665Douglas Leung move a3, rSELF 10200f040af3e4fe9e178cb63c90860d58d90ef665Douglas Leung JAL(MterpConstString) # v0 <- Mterp(index, tgt_reg, shadow_frame, self) 11200f040af3e4fe9e178cb63c90860d58d90ef665Douglas Leung PREFETCH_INST(3) # load rINST 12200f040af3e4fe9e178cb63c90860d58d90ef665Douglas Leung bnez v0, MterpPossibleException 13200f040af3e4fe9e178cb63c90860d58d90ef665Douglas Leung ADVANCE(3) # advance rPC 14200f040af3e4fe9e178cb63c90860d58d90ef665Douglas Leung GET_INST_OPCODE(t0) # extract opcode from rINST 15200f040af3e4fe9e178cb63c90860d58d90ef665Douglas Leung GOTO_OPCODE(t0) # jump to next instruction 16