From 40cc7cdd53540ded69f055262b087dca54f5b715 Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Sat, 27 Apr 2019 20:51:22 -0700 Subject: cpu: Remove hwrei from the generic interfaces. This mechanism is specific to Alpha and doesn't belong sprinkled around the CPU's generic mechanisms. Change-Id: I87904d1a08df2b03eb770205e2c4b94db25201a1 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/18432 Reviewed-by: Gabe Black Maintainer: Gabe Black Tested-by: kokoro --- src/cpu/o3/cpu.cc | 18 ------------------ src/cpu/o3/cpu.hh | 3 --- src/cpu/o3/dyn_inst.hh | 2 -- src/cpu/o3/dyn_inst_impl.hh | 28 ---------------------------- 4 files changed, 51 deletions(-) (limited to 'src/cpu/o3') diff --git a/src/cpu/o3/cpu.cc b/src/cpu/o3/cpu.cc index 70417d51f..ba6e80ff2 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 c2c48535f..bd1479acc 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 01886606e..9b6c1fbb8 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 03437a5ae..5fb597379 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) -- cgit v1.2.3