summaryrefslogtreecommitdiff
path: root/src/arch/sparc/faults.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/arch/sparc/faults.hh')
-rw-r--r--src/arch/sparc/faults.hh8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/arch/sparc/faults.hh b/src/arch/sparc/faults.hh
index 86f8c5b7d..88826bf61 100644
--- a/src/arch/sparc/faults.hh
+++ b/src/arch/sparc/faults.hh
@@ -57,13 +57,19 @@ class SparcFaultBase : public FaultBase
SH = -1,
ShouldntHappen = SH
};
+ using PrivilegeLevelSpec = std::array<PrivilegeLevel, NumLevels>;
struct FaultVals
{
const FaultName name;
const TrapType trapType;
const FaultPriority priority;
- const PrivilegeLevel nextPrivilegeLevel[NumLevels];
+ const PrivilegeLevelSpec nextPrivilegeLevel;
FaultStat count;
+ FaultVals(const FaultName& name_, const TrapType& trapType_,
+ const FaultPriority& priority_, const PrivilegeLevelSpec& il)
+ : name(name_), trapType(trapType_), priority(priority_),
+ nextPrivilegeLevel(il)
+ {}
};
void invoke(ThreadContext * tc, const StaticInstPtr &inst =
StaticInst::nullStaticInstPtr);