[m5-dev] changeset in m5: CPU: Prepare CPU models for the new in-order CP...

2009-02-10 Thread Korey Sewell
changeset 54ed46881217 in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=54ed46881217
description:
CPU: Prepare CPU models for the new in-order CPU model.
Some new functions and forward declarations are necessary to make 
things work

diffstat:

3 files changed, 17 insertions(+), 7 deletions(-)
src/cpu/SConscript |   10 ++
src/cpu/o3/ras.hh  |3 +++
src/cpu/static_inst.hh |   11 ---

diffs (71 lines):

diff -r 780dd1bead5c -r 54ed46881217 src/cpu/SConscript
--- a/src/cpu/SConscriptMon Feb 09 20:10:15 2009 -0800
+++ b/src/cpu/SConscriptTue Feb 10 15:49:29 2009 -0800
@@ -48,12 +48,14 @@
 
 # Template for execute() signature.
 exec_sig_template = '''
-virtual Fault execute(%s *xc, Trace::InstRecord *traceData) const = 0;
-virtual Fault initiateAcc(%s *xc, Trace::InstRecord *traceData) const
+virtual Fault execute(%(type)s *xc, Trace::InstRecord *traceData) const = 0;
+virtual Fault initiateAcc(%(type)s *xc, Trace::InstRecord *traceData) const
 { panic(initiateAcc not defined!); M5_DUMMY_RETURN };
-virtual Fault completeAcc(Packet *pkt, %s *xc,
+virtual Fault completeAcc(Packet *pkt, %(type)s *xc,
   Trace::InstRecord *traceData) const
 { panic(completeAcc not defined!); M5_DUMMY_RETURN };
+virtual int memAccSize(%(type)s *xc)
+{ panic(memAccSize not defined!); M5_DUMMY_RETURN };
 '''
 
 mem_ini_sig_template = '''
@@ -82,7 +84,7 @@
 '''
 for cpu in temp_cpu_list:
 xc_type = CpuModel.dict[cpu].strings['CPU_exec_context']
-print  f, exec_sig_template % (xc_type, xc_type, xc_type)
+print  f, exec_sig_template % { 'type' : xc_type }
 print  f, '''
 #endif  // __CPU_STATIC_INST_EXEC_SIGS_HH__
 '''
diff -r 780dd1bead5c -r 54ed46881217 src/cpu/o3/ras.hh
--- a/src/cpu/o3/ras.hh Mon Feb 09 20:10:15 2009 -0800
+++ b/src/cpu/o3/ras.hh Tue Feb 10 15:49:29 2009 -0800
@@ -71,6 +71,9 @@
  */
 void restore(unsigned top_entry_idx, const Addr restored_target);
 
+ bool empty() { return usedEntries == 0; }
+
+ bool full() { return usedEntries == numEntries; }
   private:
 /** Increments the top of stack index. */
 inline void incrTos()
diff -r 780dd1bead5c -r 54ed46881217 src/cpu/static_inst.hh
--- a/src/cpu/static_inst.hhMon Feb 09 20:10:15 2009 -0800
+++ b/src/cpu/static_inst.hhTue Feb 10 15:49:29 2009 -0800
@@ -56,9 +56,8 @@
 class O3CPUImpl;
 template class Impl class BaseO3DynInst;
 typedef BaseO3DynInstO3CPUImpl O3DynInst;
-
-template class Impl
-class OzoneDynInst;
+template class Impl class OzoneDynInst;
+class InOrderDynInst;
 
 class CheckerCPU;
 class FastCPU;
@@ -434,6 +433,12 @@
  */
 bool hasBranchTarget(Addr pc, ThreadContext *tc, Addr tgt) const;
 
+virtual Request::Flags memAccFlags()
+{
+panic(StaticInst::memAccFlags called on non-memory instruction);
+return 0;
+};
+
 /**
  * Return string representation of disassembled instruction.
  * The default version of this function will call the internal
___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] changeset in m5: CPU: Prepare CPU models for the new in-order CP...

2009-02-10 Thread Steve Reinhardt
Thanks Korey!  Nice to see all this get in.

Just one little nit to pick: this function definition here should be in
static_inst.cc and not static_inst.hh.  It certainly doesn't need to be
inlined for performance reasons, and since it's virtual it won't get inlined
anyway, so there's no point in cluttering the header file with it.

Steve

@@ -434,6 +433,12 @@
  */
 bool hasBranchTarget(Addr pc, ThreadContext *tc, Addr tgt) const;

 +virtual Request::Flags memAccFlags()
 +{
 +panic(StaticInst::memAccFlags called on non-memory instruction);
 +return 0;
 +};
 +
 /**
  * Return string representation of disassembled instruction.
  * The default version of this function will call the internal
___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev


Re: [m5-dev] changeset in m5: CPU: Prepare CPU models for the new in-order CP...

2009-02-10 Thread nathan binkert
 Just one little nit to pick: this function definition here should be in
 static_inst.cc and not static_inst.hh.  It certainly doesn't need to be
 inlined for performance reasons, and since it's virtual it won't get inlined
 anyway, so there's no point in cluttering the header file with it.

That was totally my bad.
___
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev