summaryrefslogtreecommitdiff
path: root/src/arch/mips/isa.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/arch/mips/isa.cc')
-rw-r--r--src/arch/mips/isa.cc20
1 files changed, 16 insertions, 4 deletions
diff --git a/src/arch/mips/isa.cc b/src/arch/mips/isa.cc
index f6de102cd..891ed5e2f 100644
--- a/src/arch/mips/isa.cc
+++ b/src/arch/mips/isa.cc
@@ -36,6 +36,7 @@
#include "cpu/base.hh"
#include "cpu/thread_context.hh"
#include "debug/MipsPRA.hh"
+#include "params/MipsISA.hh"
namespace MipsISA
{
@@ -87,11 +88,10 @@ ISA::miscRegNames[NumMiscRegs] =
"LLFlag"
};
-ISA::ISA(uint8_t num_threads, uint8_t num_vpes)
+ISA::ISA(Params *p)
+ : SimObject(p),
+ numThreads(p->num_threads), numVpes(p->num_vpes)
{
- numThreads = num_threads;
- numVpes = num_vpes;
-
miscRegFile.resize(NumMiscRegs);
bankType.resize(NumMiscRegs);
@@ -142,6 +142,12 @@ ISA::ISA(uint8_t num_threads, uint8_t num_vpes)
clear();
}
+const MipsISAParams *
+ISA::params() const
+{
+ return dynamic_cast<const Params *>(_params);
+}
+
void
ISA::clear()
{
@@ -586,3 +592,9 @@ ISA::CP0Event::unscheduleEvent()
}
}
+
+MipsISA::ISA *
+MipsISAParams::create()
+{
+ return new MipsISA::ISA(this);
+}