Lines Matching refs:tc
117 AlphaFault::invoke(ThreadContext *tc, const StaticInstPtr &inst)
119 FaultBase::invoke(tc);
124 PCState pc = tc->pcState();
128 tc->setMiscRegNoEffect(IPR_EXC_ADDR, pc.pc());
132 tc->setMiscRegNoEffect(IPR_EXC_ADDR,
133 tc->readMiscRegNoEffect(IPR_EXC_ADDR) + 4);
136 pc.set(tc->readMiscRegNoEffect(IPR_PAL_BASE) + vect());
137 tc->pcState(pc);
141 ArithmeticFault::invoke(ThreadContext *tc, const StaticInstPtr &inst)
143 FaultBase::invoke(tc);
150 DtbFault::invoke(ThreadContext *tc, const StaticInstPtr &inst)
160 tc->setMiscRegNoEffect(IPR_VA, vaddr);
164 tc->setMiscRegNoEffect(IPR_MM_STAT,
170 tc->setMiscRegNoEffect(IPR_VA_FORM,
171 tc->readMiscRegNoEffect(IPR_MVPTBR) | (vaddr.vpn() << 3));
175 AlphaFault::invoke(tc);
179 ItbFault::invoke(ThreadContext *tc, const StaticInstPtr &inst)
182 tc->setMiscRegNoEffect(IPR_ITB_TAG, pc);
183 tc->setMiscRegNoEffect(IPR_IFAULT_VA_FORM,
184 tc->readMiscRegNoEffect(IPR_IVPTBR) | (VAddr(pc).vpn() << 3));
187 AlphaFault::invoke(tc);
191 ItbPageFault::invoke(ThreadContext *tc, const StaticInstPtr &inst)
194 ItbFault::invoke(tc);
198 Process *p = tc->getProcessPtr();
206 dynamic_cast<TLB *>(tc->getITBPtr())->insert(vaddr.page(), entry);
210 NDtbMissFault::invoke(ThreadContext *tc, const StaticInstPtr &inst)
213 DtbFault::invoke(tc, inst);
217 Process *p = tc->getProcessPtr();
225 dynamic_cast<TLB *>(tc->getDTBPtr())->insert(vaddr.page(), entry);