summaryrefslogtreecommitdiff
path: root/cpu/o3/alpha_dyn_inst.hh
diff options
context:
space:
mode:
Diffstat (limited to 'cpu/o3/alpha_dyn_inst.hh')
-rw-r--r--cpu/o3/alpha_dyn_inst.hh30
1 files changed, 14 insertions, 16 deletions
diff --git a/cpu/o3/alpha_dyn_inst.hh b/cpu/o3/alpha_dyn_inst.hh
index 24774bd0a..1c5b738aa 100644
--- a/cpu/o3/alpha_dyn_inst.hh
+++ b/cpu/o3/alpha_dyn_inst.hh
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2004-2005 The Regents of The University of Michigan
+ * Copyright (c) 2004-2006 The Regents of The University of Michigan
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -35,14 +35,11 @@
#include "cpu/o3/alpha_impl.hh"
/**
- * Mostly implementation & ISA specific AlphaDynInst. As with most other classes
- * in the new CPU model, it is templated on the Impl to allow for passing in of
- * all types, such as the CPU type and the ISA type. The AlphaDynInst serves
- * as the primary interface to the CPU; it plays the role that the ExecContext
- * does for the old CPU and the SimpleCPU. The goal is to abstract ExecContext
- * purely into an interface, and have it forward calls to the appropriate
- * CPU interface, which in the new CPU model's case would be this AlphaDynInst,
- * or any other high level implementation specific DynInst.
+ * Mostly implementation & ISA specific AlphaDynInst. As with most
+ * other classes in the new CPU model, it is templated on the Impl to
+ * allow for passing in of all types, such as the CPU type and the ISA
+ * type. The AlphaDynInst serves as the primary interface to the CPU
+ * for instructions that are executing.
*/
template <class Impl>
class AlphaDynInst : public BaseDynInst<Impl>
@@ -78,8 +75,10 @@ class AlphaDynInst : public BaseDynInst<Impl>
/** Executes the instruction.*/
Fault execute();
+ /** Initiates the access. Only valid for memory operations. */
Fault initiateAcc();
+ /** Completes the access. Only valid for memory operations. */
Fault completeAcc();
private:
@@ -100,6 +99,7 @@ class AlphaDynInst : public BaseDynInst<Impl>
Fault setMiscReg(int misc_reg, const MiscReg &val)
{
+ this->instResult.integer = val;
return this->cpu->setMiscReg(misc_reg, val, this->threadNumber);
}
@@ -126,8 +126,6 @@ class AlphaDynInst : public BaseDynInst<Impl>
void syscall();
#endif
-
-
private:
/** Physical register index of the destination registers of this
* instruction.
@@ -247,9 +245,9 @@ class AlphaDynInst : public BaseDynInst<Impl>
}
public:
- /** Calculates EA part of a memory instruction. Currently unused, though
- * it may be useful in the future when memory instructions aren't
- * executed with the EA calculation and the memory access being atomic.
+ /** Calculates EA part of a memory instruction. Currently unused,
+ * though it may be useful in the future if we want to split
+ * memory operations into EA calculation and memory access parts.
*/
Fault calcEA()
{
@@ -257,8 +255,8 @@ class AlphaDynInst : public BaseDynInst<Impl>
}
/** Does the memory access part of a memory instruction. Currently unused,
- * though it may be useful in the future when memory instructions aren't
- * executed with the EA calculation and the memory access being atomic.
+ * though it may be useful in the future if we want to split
+ * memory operations into EA calculation and memory access parts.
*/
Fault memAccess()
{