summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--SConscript4
-rwxr-xr-xarch/isa_parser.py3
-rw-r--r--cpu/static_inst.hh7
3 files changed, 14 insertions, 0 deletions
diff --git a/SConscript b/SConscript
index a41680ed4..a2b1c44fa 100644
--- a/SConscript
+++ b/SConscript
@@ -46,6 +46,7 @@ base_sources = Split('''
arch/alpha/decoder.cc
arch/alpha/fast_cpu_exec.cc
arch/alpha/simple_cpu_exec.cc
+ arch/alpha/inorder_cpu_exec.cc
arch/alpha/full_cpu_exec.cc
arch/alpha/faults.cc
arch/alpha/isa_traits.cc
@@ -127,6 +128,7 @@ base_sources = Split('''
cpu/full_cpu/iq/standard/iq_standard.cc
cpu/sampling_cpu/sampling_cpu.cc
cpu/simple_cpu/simple_cpu.cc
+ cpu/inorder_cpu/inorder_cpu.cc
cpu/trace/reader/mem_trace_reader.cc
cpu/trace/reader/ibm_reader.cc
cpu/trace/reader/itx_reader.cc
@@ -210,6 +212,7 @@ base_obj_desc_files = Split('''
cpu/full_cpu/PipeTrace.od
cpu/sampling_cpu/SamplingCPU.od
cpu/simple_cpu/SimpleCPU.od
+ cpu/inorder_cpu/InorderCPU.od
cpu/BaseCPU.od
cpu/IntrControl.od
mem/bus/Bus.od
@@ -437,6 +440,7 @@ env.Command(Split('''arch/alpha/decoder.cc
arch/alpha/decoder.hh
arch/alpha/fast_cpu_exec.cc
arch/alpha/simple_cpu_exec.cc
+ arch/alpha/inorder_cpu_exec.cc
arch/alpha/full_cpu_exec.cc'''),
Split('''arch/alpha/isa_desc
arch/isa_parser.py'''),
diff --git a/arch/isa_parser.py b/arch/isa_parser.py
index 011ce7623..c0b5131de 100755
--- a/arch/isa_parser.py
+++ b/arch/isa_parser.py
@@ -627,6 +627,9 @@ class CpuModel:
# Define CPU models. The following lines should contain the only
# CPU-model-specific information in this file. Note that the ISA
# description itself should have *no* CPU-model-specific content.
+CpuModel('InorderCPU', 'inorder_cpu_exec.cc',
+ '#include "cpu/inorder_cpu/inorder_cpu.hh"',
+ { 'CPU_exec_context': 'InorderCPU' })
CpuModel('SimpleCPU', 'simple_cpu_exec.cc',
'#include "cpu/simple_cpu/simple_cpu.hh"',
{ 'CPU_exec_context': 'SimpleCPU' })
diff --git a/cpu/static_inst.hh b/cpu/static_inst.hh
index 0315ab7a9..46b2e4b19 100644
--- a/cpu/static_inst.hh
+++ b/cpu/static_inst.hh
@@ -44,6 +44,7 @@ class ExecContext;
class DynInst;
class FastCPU;
class SimpleCPU;
+class InorderCPU;
class SymbolTable;
namespace Trace {
@@ -312,6 +313,12 @@ class StaticInst : public StaticInstBase
*/
virtual Fault execute(SimpleCPU *xc, Trace::InstRecord *traceData) = 0;
+ /**
+ * Execute this instruction under InorderCPU model.
+ */
+ virtual Fault execute(InorderCPU *xc, Trace::InstRecord *traceData) = 0;
+
+
/**
* Execute this instruction under FastCPU model.
*/