summaryrefslogtreecommitdiff
path: root/arch/alpha
diff options
context:
space:
mode:
Diffstat (limited to 'arch/alpha')
-rw-r--r--arch/alpha/ev5.cc4
-rw-r--r--arch/alpha/regfile.hh12
2 files changed, 10 insertions, 6 deletions
diff --git a/arch/alpha/ev5.cc b/arch/alpha/ev5.cc
index fed2f5358..a5a8851c2 100644
--- a/arch/alpha/ev5.cc
+++ b/arch/alpha/ev5.cc
@@ -542,10 +542,10 @@ AlphaISA::MiscRegFile::setIpr(int idx, uint64_t val, ExecContext *xc)
}
void
-AlphaISA::MiscRegFile::copyIprs(ExecContext *xc)
+AlphaISA::copyIprs(ExecContext *src, ExecContext *dest)
{
for (int i = IPR_Base_DepTag; i < NumInternalProcRegs; ++i) {
- ipr[i] = xc->readMiscReg(i);
+ dest->setMiscReg(i, src->readMiscReg(i));
}
}
diff --git a/arch/alpha/regfile.hh b/arch/alpha/regfile.hh
index 13288e087..8a11a8eb6 100644
--- a/arch/alpha/regfile.hh
+++ b/arch/alpha/regfile.hh
@@ -34,6 +34,7 @@
#include "sim/faults.hh"
class Checkpoint;
+class ExecContext;
namespace AlphaISA
{
@@ -121,8 +122,6 @@ namespace AlphaISA
Fault setRegWithEffect(int misc_reg, const MiscReg &val,
ExecContext *xc);
- void copyMiscRegs(ExecContext *xc);
-
#if FULL_SYSTEM
protected:
typedef uint64_t InternalProcReg;
@@ -133,8 +132,6 @@ namespace AlphaISA
InternalProcReg readIpr(int idx, Fault &fault, ExecContext *xc);
Fault setIpr(int idx, InternalProcReg val, ExecContext *xc);
-
- void copyIprs(ExecContext *xc);
#endif
friend class RegFile;
};
@@ -159,6 +156,13 @@ namespace AlphaISA
void unserialize(Checkpoint *cp, const std::string &section);
};
+ void copyRegs(ExecContext *src, ExecContext *dest);
+
+ void copyMiscRegs(ExecContext *src, ExecContext *dest);
+
+#if FULL_SYSTEM
+ void copyIprs(ExecContext *src, ExecContext *dest);
+#endif
} // namespace AlphaISA
#endif