diff --git a/src/arch/alpha/ev5.cc b/src/arch/alpha/ev5.cc index e3e025e2f8..e64523d9c7 100644 --- a/src/arch/alpha/ev5.cc +++ b/src/arch/alpha/ev5.cc @@ -485,28 +485,6 @@ copyIprs(ThreadContext *src, ThreadContext *dest) using namespace AlphaISA; -Fault -SimpleThread::hwrei() -{ - auto *stats = dynamic_cast(kernelStats); - assert(stats || !kernelStats); - - PCState pc = pcState(); - if (!(pc.pc() & 0x3)) - return std::make_shared(); - - pc.npc(readMiscRegNoEffect(IPR_EXC_ADDR)); - pcState(pc); - - CPA::cpa()->swAutoBegin(this, pc.npc()); - - if (stats) - stats->hwrei(); - - // FIXME: XXX check for interrupts? XXX - return NoFault; -} - /** * Check for special simulator handling of specific PAL calls. * If return value is false, actual PAL call will be suppressed. diff --git a/src/cpu/checker/cpu.hh b/src/cpu/checker/cpu.hh index 96f6cc7d4c..acbe94f5d4 100644 --- a/src/cpu/checker/cpu.hh +++ b/src/cpu/checker/cpu.hh @@ -539,7 +539,6 @@ class CheckerCPU : public BaseCPU, public ExecContext void setStCondFailures(unsigned int sc_failures) override {} ///////////////////////////////////////////////////// - Fault hwrei() override { return thread->hwrei(); } bool simPalCheck(int palFunc) override { return thread->simPalCheck(palFunc); } void wakeup(ThreadID tid) override { } diff --git a/src/cpu/exec_context.hh b/src/cpu/exec_context.hh index 58d756c6d5..0477f3f65a 100644 --- a/src/cpu/exec_context.hh +++ b/src/cpu/exec_context.hh @@ -314,12 +314,6 @@ class ExecContext { * @name Alpha-Specific Interfaces */ - /** - * Somewhat Alpha-specific function that handles returning from an - * error or interrupt. - */ - virtual Fault hwrei() = 0; - /** * Check for special simulator handling of specific PAL calls. If * return value is false, actual PAL call will be suppressed. diff --git a/src/cpu/minor/exec_context.hh b/src/cpu/minor/exec_context.hh index 4ac621aea1..03f8e09c9b 100644 --- a/src/cpu/minor/exec_context.hh +++ b/src/cpu/minor/exec_context.hh @@ -365,16 +365,6 @@ class ExecContext : public ::ExecContext return thread.setMiscReg(reg.index(), val); } - Fault - hwrei() override - { -#if THE_ISA == ALPHA_ISA - return thread.hwrei(); -#else - return NoFault; -#endif - } - bool simPalCheck(int palFunc) override { diff --git a/src/cpu/o3/cpu.cc b/src/cpu/o3/cpu.cc index 70417d51f8..ba6e80ff24 100644 --- a/src/cpu/o3/cpu.cc +++ b/src/cpu/o3/cpu.cc @@ -917,24 +917,6 @@ FullO3CPU::removeThread(ThreadID tid) */ } -template -Fault -FullO3CPU::hwrei(ThreadID tid) -{ -#if THE_ISA == ALPHA_ISA - // Need to clear the lock flag upon returning from an interrupt. - this->setMiscRegNoEffect(AlphaISA::MISCREG_LOCKFLAG, false, tid); - - auto *stats = dynamic_cast( - this->thread[tid]->kernelStats); - assert(stats); - stats->hwrei(); - - // FIXME: XXX check for interrupts? XXX -#endif - return NoFault; -} - template bool FullO3CPU::simPalCheck(int palFunc, ThreadID tid) diff --git a/src/cpu/o3/cpu.hh b/src/cpu/o3/cpu.hh index c2c48535f9..bd1479accc 100644 --- a/src/cpu/o3/cpu.hh +++ b/src/cpu/o3/cpu.hh @@ -385,9 +385,6 @@ class FullO3CPU : public BaseO3CPU /** Traps to handle given fault. */ void trap(const Fault &fault, ThreadID tid, const StaticInstPtr &inst); - /** HW return from error interrupt. */ - Fault hwrei(ThreadID tid); - bool simPalCheck(int palFunc, ThreadID tid); /** Check if a change in renaming is needed for vector registers. diff --git a/src/cpu/o3/dyn_inst.hh b/src/cpu/o3/dyn_inst.hh index 01886606eb..9b6c1fbb8f 100644 --- a/src/cpu/o3/dyn_inst.hh +++ b/src/cpu/o3/dyn_inst.hh @@ -248,8 +248,6 @@ class BaseO3DynInst : public BaseDynInst } } } - /** Calls hardware return from error interrupt. */ - Fault hwrei() override; /** Traps to handle specified fault. */ void trap(const Fault &fault); bool simPalCheck(int palFunc) override; diff --git a/src/cpu/o3/dyn_inst_impl.hh b/src/cpu/o3/dyn_inst_impl.hh index 03437a5ae9..5fb5973796 100644 --- a/src/cpu/o3/dyn_inst_impl.hh +++ b/src/cpu/o3/dyn_inst_impl.hh @@ -184,34 +184,6 @@ BaseO3DynInst::completeAcc(PacketPtr pkt) return this->fault; } -template -Fault -BaseO3DynInst::hwrei() -{ -#if THE_ISA == ALPHA_ISA - // Can only do a hwrei when in pal mode. - if (!(this->instAddr() & 0x3)) - return std::make_shared(); - - // Set the next PC based on the value of the EXC_ADDR IPR. - AlphaISA::PCState pc = this->pcState(); - pc.npc(this->cpu->readMiscRegNoEffect(AlphaISA::IPR_EXC_ADDR, - this->threadNumber)); - this->pcState(pc); - if (CPA::available()) { - ThreadContext *tc = this->cpu->tcBase(this->threadNumber); - CPA::cpa()->swAutoBegin(tc, this->nextInstAddr()); - } - - // Tell CPU to clear any state it needs to if a hwrei is taken. - this->cpu->hwrei(this->threadNumber); -#else - -#endif - // FIXME: XXX check for interrupts? XXX - return NoFault; -} - template void BaseO3DynInst::trap(const Fault &fault) diff --git a/src/cpu/simple/exec_context.hh b/src/cpu/simple/exec_context.hh index b49747dd24..938bb784a1 100644 --- a/src/cpu/simple/exec_context.hh +++ b/src/cpu/simple/exec_context.hh @@ -502,12 +502,6 @@ class SimpleExecContext : public ExecContext { /** Returns a pointer to the ThreadContext. */ ThreadContext *tcBase() override { return thread->getTC(); } - /** - * Somewhat Alpha-specific function that handles returning from an - * error or interrupt. - */ - Fault hwrei() override { return thread->hwrei(); } - /** * Check for special simulator handling of specific PAL calls. If * return value is false, actual PAL call will be suppressed. diff --git a/src/cpu/simple_thread.cc b/src/cpu/simple_thread.cc index 7fee8ddc70..b676b04519 100644 --- a/src/cpu/simple_thread.cc +++ b/src/cpu/simple_thread.cc @@ -216,11 +216,6 @@ SimpleThread::copyArchRegs(ThreadContext *src_tc) // The following methods are defined in src/arch/alpha/ev5.cc for // Alpha. #if THE_ISA != ALPHA_ISA -Fault -SimpleThread::hwrei() -{ - return NoFault; -} bool SimpleThread::simPalCheck(int palFunc) diff --git a/src/cpu/simple_thread.hh b/src/cpu/simple_thread.hh index 33f0bbd8a2..71bce3857f 100644 --- a/src/cpu/simple_thread.hh +++ b/src/cpu/simple_thread.hh @@ -181,8 +181,6 @@ class SimpleThread : public ThreadState, public ThreadContext void dumpFuncProfile() override; - Fault hwrei(); - bool simPalCheck(int palFunc); /*******************************************