summaryrefslogtreecommitdiff
path: root/src/arch/arm/faults.cc
diff options
context:
space:
mode:
authorGiacomo Travaglini <giacomo.travaglini@arm.com>2017-10-20 14:18:00 +0100
committerAndreas Sandberg <andreas.sandberg@arm.com>2017-11-15 14:16:57 +0000
commit053bb85b3220986f56fbbd24bd5bc7c04dea4ce6 (patch)
treee77da701e5f245253b48b9f4ac9fae4d6e35e802 /src/arch/arm/faults.cc
parentef0490081fa7ebcda2e1c7adccb05b3a14014cf1 (diff)
downloadgem5-053bb85b3220986f56fbbd24bd5bc7c04dea4ce6.tar.xz
arch-arm: Removing FlushPipe fault, using SquashAfter
This Patch is removing the FlushPipe ArmFault, which was used for flushing the pipeline in favour of the general IsSquashAfter StaticInstr flag. Using a fault was preventing tracers from tracing barriers like ISB and from adding them to the instruction count Change-Id: I176e9254eca904694f2f611eb486c55e50ec61ff Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com> Reviewed-by: Giacomo Gabrielli <giacomo.gabrielli@arm.com> Reviewed-on: https://gem5-review.googlesource.com/5361 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
Diffstat (limited to 'src/arch/arm/faults.cc')
-rw-r--r--src/arch/arm/faults.cc21
1 files changed, 1 insertions, 20 deletions
diff --git a/src/arch/arm/faults.cc b/src/arch/arm/faults.cc
index 740d71d02..ef9d05a13 100644
--- a/src/arch/arm/faults.cc
+++ b/src/arch/arm/faults.cc
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010, 2012-2014, 2016 ARM Limited
+ * Copyright (c) 2010, 2012-2014, 2016-2017 ARM Limited
* All rights reserved
*
* The license below extends only to copyright in the software and shall
@@ -278,11 +278,6 @@ template<> ArmFault::FaultVals ArmFaultVals<SystemError>::vals = {
"SError", 0x000, 0x180, 0x380, 0x580, 0x780, MODE_SVC,
0, 0, 0, 0, false, true, true, EC_SERROR, FaultStat()
};
-template<> ArmFault::FaultVals ArmFaultVals<FlushPipe>::vals = {
- // Some dummy values
- "Pipe Flush", 0x000, 0x000, 0x000, 0x000, 0x000, MODE_SVC,
- 0, 0, 0, 0, false, true, true, EC_UNKNOWN, FaultStat()
-};
template<> ArmFault::FaultVals ArmFaultVals<ArmSev>::vals = {
// Some dummy values
"ArmSev Flush", 0x000, 0x000, 0x000, 0x000, 0x000, MODE_SVC,
@@ -1399,19 +1394,6 @@ SystemError::routeToHyp(ThreadContext *tc) const
}
void
-FlushPipe::invoke(ThreadContext *tc, const StaticInstPtr &inst) {
- DPRINTF(Faults, "Invoking FlushPipe Fault\n");
-
- // Set the PC to the next instruction of the faulting instruction.
- // Net effect is simply squashing all instructions behind and
- // start refetching from the next instruction.
- PCState pc = tc->pcState();
- assert(inst);
- inst->advancePC(pc);
- tc->pcState(pc);
-}
-
-void
ArmSev::invoke(ThreadContext *tc, const StaticInstPtr &inst) {
DPRINTF(Faults, "Invoking ArmSev Fault\n");
if (!FullSystem)
@@ -1443,7 +1425,6 @@ template class ArmFaultVals<SecureMonitorTrap>;
template class ArmFaultVals<PCAlignmentFault>;
template class ArmFaultVals<SPAlignmentFault>;
template class ArmFaultVals<SystemError>;
-template class ArmFaultVals<FlushPipe>;
template class ArmFaultVals<ArmSev>;
template class AbortFault<PrefetchAbort>;
template class AbortFault<DataAbort>;