[Avida-SVN] r1424 - in branches/energy/source: cpu main

beckma24 at myxo.css.msu.edu beckma24 at myxo.css.msu.edu
Fri Mar 23 10:00:25 PDT 2007


Author: beckma24
Date: 2007-03-23 13:00:24 -0400 (Fri, 23 Mar 2007)
New Revision: 1424

Modified:
   branches/energy/source/cpu/cHardwareCPU.cc
   branches/energy/source/cpu/cHardwareCPU.h
   branches/energy/source/main/cOrganism.cc
   branches/energy/source/main/cPhenotype.cc
Log:
Added extra sleep instructions and a time instructions which returns the current update.

Modified: branches/energy/source/cpu/cHardwareCPU.cc
===================================================================
--- branches/energy/source/cpu/cHardwareCPU.cc	2007-03-23 14:46:37 UTC (rev 1423)
+++ branches/energy/source/cpu/cHardwareCPU.cc	2007-03-23 17:00:24 UTC (rev 1424)
@@ -328,6 +328,11 @@
     tInstLibEntry<tMethod>("die", &cHardwareCPU::Inst_Die),
     
     tInstLibEntry<tMethod>("sleep", &cHardwareCPU::Inst_Sleep),
+    tInstLibEntry<tMethod>("sleep1", &cHardwareCPU::Inst_Sleep),
+    tInstLibEntry<tMethod>("sleep2", &cHardwareCPU::Inst_Sleep),
+    tInstLibEntry<tMethod>("sleep3", &cHardwareCPU::Inst_Sleep),
+    tInstLibEntry<tMethod>("sleep4", &cHardwareCPU::Inst_Sleep),
+    tInstLibEntry<tMethod>("time", &cHardwareCPU::Inst_GetUpdate),
     
     // Placebo instructions
     tInstLibEntry<tMethod>("skip", &cHardwareCPU::Inst_Skip)
@@ -3617,7 +3622,13 @@
   return true;
 }
 
+bool cHardwareCPU::Inst_GetUpdate(cAvidaContext& ctx) {
+  const int reg_used = FindModifiedRegister(REG_BX);
+  GetRegister(reg_used) = m_world->GetStats().GetUpdate();
+  return true;
+}
 
+
 //// Placebo insts ////
 bool cHardwareCPU::Inst_Skip(cAvidaContext& ctx)
 {

Modified: branches/energy/source/cpu/cHardwareCPU.h
===================================================================
--- branches/energy/source/cpu/cHardwareCPU.h	2007-03-23 14:46:37 UTC (rev 1423)
+++ branches/energy/source/cpu/cHardwareCPU.h	2007-03-23 17:00:24 UTC (rev 1424)
@@ -516,6 +516,7 @@
   bool Inst_HeadDivide0_001(cAvidaContext& ctx);
 
   bool Inst_Sleep(cAvidaContext& ctx);
+  bool Inst_GetUpdate(cAvidaContext& ctx);
   //// Placebo ////
   bool Inst_Skip(cAvidaContext& ctx);
 };

Modified: branches/energy/source/main/cOrganism.cc
===================================================================
--- branches/energy/source/main/cOrganism.cc	2007-03-23 14:46:37 UTC (rev 1423)
+++ branches/energy/source/main/cOrganism.cc	2007-03-23 17:00:24 UTC (rev 1424)
@@ -212,7 +212,7 @@
   if(m_world->GetConfig().ENERGY_ENABLED.Get()) {
     double newMerit = m_phenotype.RefreshEnergy();
     if(newMerit != -1) {
-      std::cerr<<GetCellID()<<" "<<newMerit<<std::endl;
+//      std::cerr<<GetCellID()<<" "<<newMerit<<std::endl;
       m_world->GetPopulation().UpdateMerit(GetCellID(), newMerit);
     }
   }

Modified: branches/energy/source/main/cPhenotype.cc
===================================================================
--- branches/energy/source/main/cPhenotype.cc	2007-03-23 14:46:37 UTC (rev 1423)
+++ branches/energy/source/main/cPhenotype.cc	2007-03-23 17:00:24 UTC (rev 1424)
@@ -831,7 +831,7 @@
   if(cur_energy_bonus > 0) {
     energy_store += cur_energy_bonus;
     cur_energy_bonus = 0;
-    std::cerr<<energy_store<<"/"<<m_world->GetConfig().NUM_INST_EXC_BEFORE_0_ENERGY.Get()<<std::endl;
+//    std::cerr<<energy_store<<"/"<<m_world->GetConfig().NUM_INST_EXC_BEFORE_0_ENERGY.Get()<<std::endl;
     return 100 * energy_store / (m_world->GetConfig().NUM_INST_EXC_BEFORE_0_ENERGY.Get());
   }
   return -1;




More information about the Avida-cvs mailing list