faults.cc (7400:f6c9b27c4dbe) faults.cc (7412:b62d0343ad8f)
1/*
2 * Copyright (c) 2010 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 129 unchanged lines hidden (view full) ---

138
139 Addr pc = tc->readPC();
140 Addr newPc = getVector(tc) | (sctlr.te ? (ULL(1) << PcTBitShift) : 0);
141 DPRINTF(Faults, "Invoking Fault: %s cpsr: %#x PC: %#x lr: %#x newVector: %#x\n",
142 name(), cpsr, pc, tc->readIntReg(INTREG_LR), newPc);
143 tc->setPC(newPc);
144 tc->setNextPC(newPc + cpsr.t ? 2 : 4 );
145 tc->setMicroPC(0);
1/*
2 * Copyright (c) 2010 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 129 unchanged lines hidden (view full) ---

138
139 Addr pc = tc->readPC();
140 Addr newPc = getVector(tc) | (sctlr.te ? (ULL(1) << PcTBitShift) : 0);
141 DPRINTF(Faults, "Invoking Fault: %s cpsr: %#x PC: %#x lr: %#x newVector: %#x\n",
142 name(), cpsr, pc, tc->readIntReg(INTREG_LR), newPc);
143 tc->setPC(newPc);
144 tc->setNextPC(newPc + cpsr.t ? 2 : 4 );
145 tc->setMicroPC(0);
146 tc->setNextMicroPC(1);
146}
147
148void
149Reset::invoke(ThreadContext *tc)
150{
151 tc->getCpuPtr()->clearInterrupts();
152 tc->clearArchRegs();
153 ArmFault::invoke(tc);

--- 30 unchanged lines hidden (view full) ---

184 if (callNum == 0) {
185 callNum = tc->readIntReg(INTREG_R7);
186 }
187 tc->syscall(callNum);
188
189 // Advance the PC since that won't happen automatically.
190 tc->setPC(tc->readNextPC());
191 tc->setNextPC(tc->readNextNPC());
147}
148
149void
150Reset::invoke(ThreadContext *tc)
151{
152 tc->getCpuPtr()->clearInterrupts();
153 tc->clearArchRegs();
154 ArmFault::invoke(tc);

--- 30 unchanged lines hidden (view full) ---

185 if (callNum == 0) {
186 callNum = tc->readIntReg(INTREG_R7);
187 }
188 tc->syscall(callNum);
189
190 // Advance the PC since that won't happen automatically.
191 tc->setPC(tc->readNextPC());
192 tc->setNextPC(tc->readNextNPC());
193 tc->setMicroPC(0);
194 tc->setNextMicroPC(1);
192}
193
194#endif // FULL_SYSTEM
195
196template<class T>
197void
198AbortFault<T>::invoke(ThreadContext *tc)
199{

--- 20 unchanged lines hidden ---
195}
196
197#endif // FULL_SYSTEM
198
199template<class T>
200void
201AbortFault<T>::invoke(ThreadContext *tc)
202{

--- 20 unchanged lines hidden ---