[Avida-cvs] [avida-svn] r936 - in development: Avida.xcodeproj source/cpu

brysonda at myxo.css.msu.edu brysonda at myxo.css.msu.edu
Sat Sep 9 14:53:49 PDT 2006


Author: brysonda
Date: 2006-09-09 17:53:48 -0400 (Sat, 09 Sep 2006)
New Revision: 936

Removed:
   development/source/cpu/cHardwareCPU_Thread.cc
   development/source/cpu/cHardwareCPU_Thread.h
   development/source/cpu/nHardwareCPU.h
Modified:
   development/Avida.xcodeproj/project.pbxproj
   development/source/cpu/CMakeLists.txt
   development/source/cpu/SConscript
   development/source/cpu/cCodeLabel.cc
   development/source/cpu/cHardwareCPU.cc
   development/source/cpu/cHardwareCPU.h
Log:
Internalize cHardwareCPU implementation details.

Modified: development/Avida.xcodeproj/project.pbxproj
===================================================================
--- development/Avida.xcodeproj/project.pbxproj	2006-09-09 21:32:09 UTC (rev 935)
+++ development/Avida.xcodeproj/project.pbxproj	2006-09-09 21:53:48 UTC (rev 936)
@@ -208,10 +208,8 @@
 		70C1EF7208C3968700F50912 /* cCPUTestInfo.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70C1EF7108C3968700F50912 /* cCPUTestInfo.cc */; };
 		70C1EF7308C3968700F50912 /* cCPUTestInfo.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70C1EF7108C3968700F50912 /* cCPUTestInfo.cc */; };
 		70C1EFA808C39F2100F50912 /* cHardwareBase.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70C1EFA308C39F2100F50912 /* cHardwareBase.cc */; };
-		70C1EFA908C39F2100F50912 /* cHardwareCPU_Thread.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70C1EFA408C39F2100F50912 /* cHardwareCPU_Thread.cc */; };
 		70C1EFAA08C39F2100F50912 /* cHardwareCPU.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70C1EFA508C39F2100F50912 /* cHardwareCPU.cc */; };
 		70C1EFAD08C39F2100F50912 /* cHardwareBase.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70C1EFA308C39F2100F50912 /* cHardwareBase.cc */; };
-		70C1EFAE08C39F2100F50912 /* cHardwareCPU_Thread.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70C1EFA408C39F2100F50912 /* cHardwareCPU_Thread.cc */; };
 		70C1EFAF08C39F2100F50912 /* cHardwareCPU.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70C1EFA508C39F2100F50912 /* cHardwareCPU.cc */; };
 		70C1F02B08C3C71300F50912 /* cHardwareSMT.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70C1F02308C3C71300F50912 /* cHardwareSMT.cc */; };
 		70C1F02C08C3C71300F50912 /* cHardwareStatusPrinter.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70C1F02408C3C71300F50912 /* cHardwareStatusPrinter.cc */; };
@@ -267,7 +265,6 @@
 		70DCACA6097AF7CC002F8733 /* cCPUStack.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70C1EF6108C3954700F50912 /* cCPUStack.cc */; };
 		70DCACA7097AF7CC002F8733 /* cCPUTestInfo.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70C1EF7108C3968700F50912 /* cCPUTestInfo.cc */; };
 		70DCACAA097AF7CC002F8733 /* cHardwareBase.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70C1EFA308C39F2100F50912 /* cHardwareBase.cc */; };
-		70DCACAB097AF7CC002F8733 /* cHardwareCPU_Thread.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70C1EFA408C39F2100F50912 /* cHardwareCPU_Thread.cc */; };
 		70DCACAC097AF7CC002F8733 /* cHardwareCPU.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70C1EFA508C39F2100F50912 /* cHardwareCPU.cc */; };
 		70DCACAE097AF7CC002F8733 /* cHardwareSMT.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70C1F02308C3C71300F50912 /* cHardwareSMT.cc */; };
 		70DCACAF097AF7CC002F8733 /* cHardwareStatusPrinter.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70C1F02408C3C71300F50912 /* cHardwareStatusPrinter.cc */; };
@@ -779,10 +776,8 @@
 		70C1EF6E08C3967700F50912 /* cCPUTestInfo.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cCPUTestInfo.h; sourceTree = "<group>"; };
 		70C1EF7108C3968700F50912 /* cCPUTestInfo.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cCPUTestInfo.cc; sourceTree = "<group>"; };
 		70C1EF9E08C39F0E00F50912 /* cHardwareBase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cHardwareBase.h; sourceTree = "<group>"; };
-		70C1EF9F08C39F0E00F50912 /* cHardwareCPU_Thread.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cHardwareCPU_Thread.h; sourceTree = "<group>"; };
 		70C1EFA008C39F0E00F50912 /* cHardwareCPU.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cHardwareCPU.h; sourceTree = "<group>"; };
 		70C1EFA308C39F2100F50912 /* cHardwareBase.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cHardwareBase.cc; sourceTree = "<group>"; };
-		70C1EFA408C39F2100F50912 /* cHardwareCPU_Thread.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cHardwareCPU_Thread.cc; sourceTree = "<group>"; };
 		70C1EFA508C39F2100F50912 /* cHardwareCPU.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cHardwareCPU.cc; sourceTree = "<group>"; };
 		70C1F01408C3C6FC00F50912 /* cHardwareSMT.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cHardwareSMT.h; sourceTree = "<group>"; };
 		70C1F01508C3C6FC00F50912 /* cHardwareStatusPrinter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cHardwareStatusPrinter.h; sourceTree = "<group>"; };
@@ -797,7 +792,6 @@
 		70C1F02808C3C71300F50912 /* cTestCPU.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cTestCPU.cc; sourceTree = "<group>"; };
 		70C1F02908C3C71300F50912 /* cTestUtil.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cTestUtil.cc; sourceTree = "<group>"; };
 		70C1F0A808C3FF1800F50912 /* nHardware.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = nHardware.h; sourceTree = "<group>"; };
-		70C1F0FC08C40B1B00F50912 /* nHardwareCPU.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = nHardwareCPU.h; sourceTree = "<group>"; };
 		70C1F18608C6A0FA00F50912 /* cEvent.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cEvent.h; sourceTree = "<group>"; };
 		70C1F18808C6A0FA00F50912 /* cEventList.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cEventList.h; sourceTree = "<group>"; };
 		70C1F18908C6A0FA00F50912 /* cEventListEntry.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cEventListEntry.h; sourceTree = "<group>"; };
@@ -1373,8 +1367,6 @@
 				70C1EF9E08C39F0E00F50912 /* cHardwareBase.h */,
 				70C1EFA508C39F2100F50912 /* cHardwareCPU.cc */,
 				70C1EFA008C39F0E00F50912 /* cHardwareCPU.h */,
-				70C1EFA408C39F2100F50912 /* cHardwareCPU_Thread.cc */,
-				70C1EF9F08C39F0E00F50912 /* cHardwareCPU_Thread.h */,
 				70C5BD690905CE5F0028A785 /* cHardwareManager.cc */,
 				70C5BD6A0905CE5F0028A785 /* cHardwareManager.h */,
 				70C1F02308C3C71300F50912 /* cHardwareSMT.cc */,
@@ -1392,7 +1384,6 @@
 				70C1F02908C3C71300F50912 /* cTestUtil.cc */,
 				70C1F02008C3C6FC00F50912 /* cTestUtil.h */,
 				70C1F0A808C3FF1800F50912 /* nHardware.h */,
-				70C1F0FC08C40B1B00F50912 /* nHardwareCPU.h */,
 				70C1EF6708C395D300F50912 /* sCPUStats.h */,
 				706D30CC0852328F00D7DC8F /* tInstLib.h */,
 				DCC30FA90762539D008F7A48 /* CMakeLists.txt */,
@@ -1904,7 +1895,6 @@
 				70C1EF6308C3954700F50912 /* cCPUStack.cc in Sources */,
 				70C1EF7308C3968700F50912 /* cCPUTestInfo.cc in Sources */,
 				70C1EFAD08C39F2100F50912 /* cHardwareBase.cc in Sources */,
-				70C1EFAE08C39F2100F50912 /* cHardwareCPU_Thread.cc in Sources */,
 				70C1EFAF08C39F2100F50912 /* cHardwareCPU.cc in Sources */,
 				70C1F03308C3C71300F50912 /* cHardwareSMT.cc in Sources */,
 				70C1F03408C3C71300F50912 /* cHardwareStatusPrinter.cc in Sources */,
@@ -2043,7 +2033,6 @@
 				70DCACA6097AF7CC002F8733 /* cCPUStack.cc in Sources */,
 				70DCACA7097AF7CC002F8733 /* cCPUTestInfo.cc in Sources */,
 				70DCACAA097AF7CC002F8733 /* cHardwareBase.cc in Sources */,
-				70DCACAB097AF7CC002F8733 /* cHardwareCPU_Thread.cc in Sources */,
 				70DCACAC097AF7CC002F8733 /* cHardwareCPU.cc in Sources */,
 				70DCACAE097AF7CC002F8733 /* cHardwareSMT.cc in Sources */,
 				70DCACAF097AF7CC002F8733 /* cHardwareStatusPrinter.cc in Sources */,
@@ -2161,7 +2150,6 @@
 				70C1EF6208C3954700F50912 /* cCPUStack.cc in Sources */,
 				70C1EF7208C3968700F50912 /* cCPUTestInfo.cc in Sources */,
 				70C1EFA808C39F2100F50912 /* cHardwareBase.cc in Sources */,
-				70C1EFA908C39F2100F50912 /* cHardwareCPU_Thread.cc in Sources */,
 				70C1EFAA08C39F2100F50912 /* cHardwareCPU.cc in Sources */,
 				70C1F02B08C3C71300F50912 /* cHardwareSMT.cc in Sources */,
 				70C1F02C08C3C71300F50912 /* cHardwareStatusPrinter.cc in Sources */,

Modified: development/source/cpu/CMakeLists.txt
===================================================================
--- development/source/cpu/CMakeLists.txt	2006-09-09 21:32:09 UTC (rev 935)
+++ development/source/cpu/CMakeLists.txt	2006-09-09 21:53:48 UTC (rev 936)
@@ -5,7 +5,6 @@
   cCPUTestInfo.cc
   cHardwareBase.cc
   cHardwareCPU.cc
-  cHardwareCPU_Thread.cc
   cHardwareManager.cc
   cHardwareSMT.cc
   cHardwareStatusPrinter.cc

Modified: development/source/cpu/SConscript
===================================================================
--- development/source/cpu/SConscript	2006-09-09 21:32:09 UTC (rev 935)
+++ development/source/cpu/SConscript	2006-09-09 21:53:48 UTC (rev 936)
@@ -10,7 +10,6 @@
   'cCPUTestInfo.h',
   'cHardwareBase.h',
   'cHardwareCPU.h',
-  'cHardwareCPU_Thread.h',
   'cHardwareManager.h',
   'cHardwareSMT.h',
   'cHardwareStatusPrinter.h',
@@ -22,7 +21,6 @@
   'cTestCPUInterface.h',
   'cTestUtil.h',
   'nHardware.h',
-  'nHardwareCPU.h',
   'sCPUStats.h',
   'tInstLib.h',
 ]
@@ -34,7 +32,6 @@
   'cCPUTestInfo.cc',
   'cHardwareBase.cc',
   'cHardwareCPU.cc',
-  'cHardwareCPU_Thread.cc',
   'cHardwareManager.cc',
   'cHardwareSMT.cc',
   'cHardwareStatusPrinter.cc',

Modified: development/source/cpu/cCodeLabel.cc
===================================================================
--- development/source/cpu/cCodeLabel.cc	2006-09-09 21:32:09 UTC (rev 935)
+++ development/source/cpu/cCodeLabel.cc	2006-09-09 21:53:48 UTC (rev 936)
@@ -11,7 +11,6 @@
 #include "cCodeLabel.h"
 
 #include "cTools.h"
-#include "nHardwareCPU.h"
 
 #include <cmath>
 #include <vector>
@@ -112,8 +111,7 @@
     if(oddCount % 2 == 0) {
       value += m_nops[i];
     } else {
-      // @DMB - this should not be relying on hardware specific NUM_NOPS
-      value += (nHardwareCPU::NUM_NOPS - 1) - m_nops[i];
+      value += (base - 1) - m_nops[i];
     }
 
     if(m_nops[i] % 2 == 1) {

Modified: development/source/cpu/cHardwareCPU.cc
===================================================================
--- development/source/cpu/cHardwareCPU.cc	2006-09-09 21:32:09 UTC (rev 935)
+++ development/source/cpu/cHardwareCPU.cc	2006-09-09 21:53:48 UTC (rev 936)
@@ -50,12 +50,12 @@
       : name(name), nop_mod(nop_mod) {}
   };
   static const cNOPEntryCPU s_n_array[] = {
-    cNOPEntryCPU("nop-A", nHardwareCPU::REG_AX),
-    cNOPEntryCPU("nop-B", nHardwareCPU::REG_BX),
-    cNOPEntryCPU("nop-C", nHardwareCPU::REG_CX),
-    cNOPEntryCPU("nop-D", nHardwareCPU::REG_DX),
-    cNOPEntryCPU("nop-E", nHardwareCPU::REG_EX),
-    cNOPEntryCPU("nop-F", nHardwareCPU::REG_FX)
+    cNOPEntryCPU("nop-A", REG_AX),
+    cNOPEntryCPU("nop-B", REG_BX),
+    cNOPEntryCPU("nop-C", REG_CX),
+    cNOPEntryCPU("nop-D", REG_DX),
+    cNOPEntryCPU("nop-E", REG_EX),
+    cNOPEntryCPU("nop-F", REG_FX)
   };
   
   struct cInstEntryCPU { 
@@ -349,7 +349,7 @@
   
   static cString n_names[n_size];
   static int nop_mods[n_size];
-  for (int i = 0; i < n_size && i < nHardwareCPU::NUM_REGISTERS; i++) {
+  for (int i = 0; i < n_size && i < NUM_REGISTERS; i++) {
     n_names[i] = s_n_array[i].name;
     nop_mods[i] = s_n_array[i].nop_mod;
   }
@@ -430,7 +430,30 @@
   
 }
 
+void cHardwareCPU::cLocalThread::operator=(const cLocalThread& in_thread)
+{
+  m_id = in_thread.m_id;
+  for (int i = 0; i < NUM_REGISTERS; i++) reg[i] = in_thread.reg[i];
+  for (int i = 0; i < nHardware::NUM_HEADS; i++) heads[i] = in_thread.heads[i];
+  stack = in_thread.stack;
+}
 
+void cHardwareCPU::cLocalThread::Reset(cHardwareBase* in_hardware, int in_id)
+{
+  m_id = in_id;
+  
+  for (int i = 0; i < NUM_REGISTERS; i++) reg[i] = 0;
+  for (int i = 0; i < nHardware::NUM_HEADS; i++) heads[i].Reset(in_hardware);
+  
+  stack.Clear();
+  cur_stack = 0;
+  cur_head = nHardware::HEAD_IP;
+  read_label.Clear();
+  next_label.Clear();
+}
+
+
+
 // This function processes the very next command in the genome, and is made
 // to be as optimized as possible.  This is the heart of avida.
 
@@ -595,14 +618,14 @@
   fp << organism->GetPhenotype().GetTimeUsed() << " "
   << "IP:" << IP().GetPosition() << "    "
   
-  << "AX:" << GetRegister(nHardwareCPU::REG_AX) << " "
-  << setbase(16) << "[0x" << GetRegister(nHardwareCPU::REG_AX) << "]  " << setbase(10)
+  << "AX:" << GetRegister(REG_AX) << " "
+  << setbase(16) << "[0x" << GetRegister(REG_AX) << "]  " << setbase(10)
   
-  << "BX:" << GetRegister(nHardwareCPU::REG_BX) << " "
-  << setbase(16) << "[0x" << GetRegister(nHardwareCPU::REG_BX) << "]  " << setbase(10)
+  << "BX:" << GetRegister(REG_BX) << " "
+  << setbase(16) << "[0x" << GetRegister(REG_BX) << "]  " << setbase(10)
   
-  << "CX:" << GetRegister(nHardwareCPU::REG_CX) << " "
-  << setbase(16) << "[0x" << GetRegister(nHardwareCPU::REG_CX) << "]" << setbase(10)
+  << "CX:" << GetRegister(REG_CX) << " "
+  << setbase(16) << "[0x" << GetRegister(REG_CX) << "]" << setbase(10)
   
   << endl;
   
@@ -1010,7 +1033,7 @@
 
 inline int cHardwareCPU::FindModifiedRegister(int default_register)
 {
-  assert(default_register < nHardwareCPU::NUM_REGISTERS);  // Reg ID too high.
+  assert(default_register < NUM_REGISTERS);  // Reg ID too high.
   
   if (m_inst_set->IsNop(IP().GetNextInst())) {
     IP().Advance();
@@ -1037,7 +1060,7 @@
 inline int cHardwareCPU::FindComplementRegister(int base_reg)
 {
   const int comp_reg = base_reg + 1;
-  return (comp_reg  == nHardwareCPU::NUM_REGISTERS) ? 0 : comp_reg;
+  return (comp_reg  == NUM_REGISTERS) ? 0 : comp_reg;
 }
 
 
@@ -1275,21 +1298,21 @@
 
 bool cHardwareCPU::Inst_If0(cAvidaContext& ctx)          // Execute next if ?bx? ==0.
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_BX);
+  const int reg_used = FindModifiedRegister(REG_BX);
   if (GetRegister(reg_used) != 0)  IP().Advance();
   return true; 
 }
 
 bool cHardwareCPU::Inst_IfNot0(cAvidaContext& ctx)       // Execute next if ?bx? != 0.
 { 
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_BX);
+  const int reg_used = FindModifiedRegister(REG_BX);
   if (GetRegister(reg_used) == 0)  IP().Advance();
   return true;
 }
 
 bool cHardwareCPU::Inst_IfEqu(cAvidaContext& ctx)      // Execute next if bx == ?cx?
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_BX);
+  const int reg_used = FindModifiedRegister(REG_BX);
   const int reg_used2 = FindComplementRegister(reg_used);
   if (GetRegister(reg_used) != GetRegister(reg_used2))  IP().Advance();
   return true;
@@ -1297,7 +1320,7 @@
 
 bool cHardwareCPU::Inst_IfNEqu(cAvidaContext& ctx)     // Execute next if bx != ?cx?
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_BX);
+  const int reg_used = FindModifiedRegister(REG_BX);
   const int reg_used2 = FindComplementRegister(reg_used);
   if (GetRegister(reg_used) == GetRegister(reg_used2))  IP().Advance();
   return true;
@@ -1305,14 +1328,14 @@
 
 bool cHardwareCPU::Inst_IfGr0(cAvidaContext& ctx)       // Execute next if ?bx? ! < 0.
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_BX);
+  const int reg_used = FindModifiedRegister(REG_BX);
   if (GetRegister(reg_used) <= 0)  IP().Advance();
   return true;
 }
 
 bool cHardwareCPU::Inst_IfGr(cAvidaContext& ctx)       // Execute next if bx > ?cx?
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_BX);
+  const int reg_used = FindModifiedRegister(REG_BX);
   const int reg_used2 = FindComplementRegister(reg_used);
   if (GetRegister(reg_used) <= GetRegister(reg_used2))  IP().Advance();
   return true;
@@ -1320,14 +1343,14 @@
 
 bool cHardwareCPU::Inst_IfGrEqu0(cAvidaContext& ctx)       // Execute next if ?bx? != 0.
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_BX);
+  const int reg_used = FindModifiedRegister(REG_BX);
   if (GetRegister(reg_used) < 0)  IP().Advance();
   return true;
 }
 
 bool cHardwareCPU::Inst_IfGrEqu(cAvidaContext& ctx)       // Execute next if bx > ?cx?
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_BX);
+  const int reg_used = FindModifiedRegister(REG_BX);
   const int reg_used2 = FindComplementRegister(reg_used);
   if (GetRegister(reg_used) < GetRegister(reg_used2)) IP().Advance();
   return true;
@@ -1335,14 +1358,14 @@
 
 bool cHardwareCPU::Inst_IfLess0(cAvidaContext& ctx)       // Execute next if ?bx? != 0.
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_BX);
+  const int reg_used = FindModifiedRegister(REG_BX);
   if (GetRegister(reg_used) >= 0)  IP().Advance();
   return true;
 }
 
 bool cHardwareCPU::Inst_IfLess(cAvidaContext& ctx)       // Execute next if ?bx? < ?cx?
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_BX);
+  const int reg_used = FindModifiedRegister(REG_BX);
   const int reg_used2 = FindComplementRegister(reg_used);
   if (GetRegister(reg_used) >=  GetRegister(reg_used2))  IP().Advance();
   return true;
@@ -1350,14 +1373,14 @@
 
 bool cHardwareCPU::Inst_IfLsEqu0(cAvidaContext& ctx)       // Execute next if ?bx? != 0.
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_BX);
+  const int reg_used = FindModifiedRegister(REG_BX);
   if (GetRegister(reg_used) > 0) IP().Advance();
   return true;
 }
 
 bool cHardwareCPU::Inst_IfLsEqu(cAvidaContext& ctx)       // Execute next if bx > ?cx?
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_BX);
+  const int reg_used = FindModifiedRegister(REG_BX);
   const int reg_used2 = FindComplementRegister(reg_used);
   if (GetRegister(reg_used) >  GetRegister(reg_used2))  IP().Advance();
   return true;
@@ -1365,37 +1388,37 @@
 
 bool cHardwareCPU::Inst_IfBit1(cAvidaContext& ctx)
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_BX);
+  const int reg_used = FindModifiedRegister(REG_BX);
   if ((GetRegister(reg_used) & 1) == 0)  IP().Advance();
 return true;
 }
 
 bool cHardwareCPU::Inst_IfANotEqB(cAvidaContext& ctx)     // Execute next if AX != BX
 {
-  if (GetRegister(nHardwareCPU::REG_AX) == GetRegister(nHardwareCPU::REG_BX) )  IP().Advance();
+  if (GetRegister(REG_AX) == GetRegister(REG_BX) )  IP().Advance();
   return true;
 }
 
 bool cHardwareCPU::Inst_IfBNotEqC(cAvidaContext& ctx)     // Execute next if BX != CX
 {
-  if (GetRegister(nHardwareCPU::REG_BX) == GetRegister(nHardwareCPU::REG_CX) )  IP().Advance();
+  if (GetRegister(REG_BX) == GetRegister(REG_CX) )  IP().Advance();
   return true;
 }
 
 bool cHardwareCPU::Inst_IfANotEqC(cAvidaContext& ctx)     // Execute next if AX != BX
 {
-  if (GetRegister(nHardwareCPU::REG_AX) == GetRegister(nHardwareCPU::REG_CX) )  IP().Advance();
+  if (GetRegister(REG_AX) == GetRegister(REG_CX) )  IP().Advance();
   return true;
 }
 
 bool cHardwareCPU::Inst_JumpF(cAvidaContext& ctx)
 {
   ReadLabel();
-  GetLabel().Rotate(1, nHardwareCPU::NUM_NOPS);
+  GetLabel().Rotate(1, NUM_NOPS);
   
   // If there is no label, jump BX steps.
   if (GetLabel().GetSize() == 0) {
-    GetActiveHead().Jump(GetRegister(nHardwareCPU::REG_BX));
+    GetActiveHead().Jump(GetRegister(REG_BX));
     return true;
   }
   
@@ -1416,11 +1439,11 @@
 bool cHardwareCPU::Inst_JumpB(cAvidaContext& ctx)
 {
   ReadLabel();
-  GetLabel().Rotate(1, nHardwareCPU::NUM_NOPS);
+  GetLabel().Rotate(1, NUM_NOPS);
   
   // If there is no label, jump BX steps.
   if (GetLabel().GetSize() == 0) {
-    GetActiveHead().Jump(GetRegister(nHardwareCPU::REG_BX));
+    GetActiveHead().Jump(GetRegister(REG_BX));
     return true;
   }
   
@@ -1458,11 +1481,11 @@
 //  cHardwareCPU & other_hardware = (cHardwareCPU &) other_organism->GetHardware();
 //  
 //  ReadLabel();
-//  GetLabel().Rotate(1, nHardwareCPU::NUM_NOPS);
+//  GetLabel().Rotate(1, NUM_NOPS);
 //  
 //  // If there is no label, jump to line BX in creature.
 //  if (GetLabel().GetSize() == 0) {
-//    const int new_pos = GetRegister(nHardwareCPU::REG_BX);
+//    const int new_pos = GetRegister(REG_BX);
 //    IP().Set(new_pos);
 //    organism->GetPhenotype().IsParasite() = true;
 //    return true;
@@ -1489,11 +1512,11 @@
 //bool cHardwareCPU::Inst_JumpSelf(cAvidaContext& ctx)
 //{
 //  ReadLabel();
-//  GetLabel().Rotate(1, nHardwareCPU::NUM_NOPS);
+//  GetLabel().Rotate(1, NUM_NOPS);
 //  
 //  // If there is no label, jump to line BX in creature.
 //  if (GetLabel().GetSize() == 0) {
-//    IP().Set(GetRegister(nHardwareCPU::REG_BX));
+//    IP().Set(GetRegister(REG_BX));
 //    return true;
 //  }
 //  
@@ -1518,10 +1541,10 @@
   
   // Jump to the compliment label (or by the ammount in the bx register)
   ReadLabel();
-  GetLabel().Rotate(1, nHardwareCPU::NUM_NOPS);
+  GetLabel().Rotate(1, NUM_NOPS);
   
   if (GetLabel().GetSize() == 0) {
-    IP().Jump(GetRegister(nHardwareCPU::REG_BX));
+    IP().Jump(GetRegister(REG_BX));
     return true;
   }
   
@@ -1545,14 +1568,14 @@
 
 bool cHardwareCPU::Inst_Pop(cAvidaContext& ctx)
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_BX);
+  const int reg_used = FindModifiedRegister(REG_BX);
   GetRegister(reg_used) = StackPop();
   return true;
 }
 
 bool cHardwareCPU::Inst_Push(cAvidaContext& ctx)
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_BX);
+  const int reg_used = FindModifiedRegister(REG_BX);
   StackPush(GetRegister(reg_used));
   return true;
 }
@@ -1576,20 +1599,20 @@
 }
 
 
-bool cHardwareCPU::Inst_PopA(cAvidaContext& ctx) { GetRegister(nHardwareCPU::REG_AX) = StackPop(); return true;}
-bool cHardwareCPU::Inst_PopB(cAvidaContext& ctx) { GetRegister(nHardwareCPU::REG_BX) = StackPop(); return true;}
-bool cHardwareCPU::Inst_PopC(cAvidaContext& ctx) { GetRegister(nHardwareCPU::REG_CX) = StackPop(); return true;}
+bool cHardwareCPU::Inst_PopA(cAvidaContext& ctx) { GetRegister(REG_AX) = StackPop(); return true;}
+bool cHardwareCPU::Inst_PopB(cAvidaContext& ctx) { GetRegister(REG_BX) = StackPop(); return true;}
+bool cHardwareCPU::Inst_PopC(cAvidaContext& ctx) { GetRegister(REG_CX) = StackPop(); return true;}
 
-bool cHardwareCPU::Inst_PushA(cAvidaContext& ctx) { StackPush(GetRegister(nHardwareCPU::REG_AX)); return true;}
-bool cHardwareCPU::Inst_PushB(cAvidaContext& ctx) { StackPush(GetRegister(nHardwareCPU::REG_BX)); return true;}
-bool cHardwareCPU::Inst_PushC(cAvidaContext& ctx) { StackPush(GetRegister(nHardwareCPU::REG_CX)); return true;}
+bool cHardwareCPU::Inst_PushA(cAvidaContext& ctx) { StackPush(GetRegister(REG_AX)); return true;}
+bool cHardwareCPU::Inst_PushB(cAvidaContext& ctx) { StackPush(GetRegister(REG_BX)); return true;}
+bool cHardwareCPU::Inst_PushC(cAvidaContext& ctx) { StackPush(GetRegister(REG_CX)); return true;}
 
 bool cHardwareCPU::Inst_SwitchStack(cAvidaContext& ctx) { SwitchStack(); return true;}
 bool cHardwareCPU::Inst_FlipStack(cAvidaContext& ctx)   { StackFlip(); return true;}
 
 bool cHardwareCPU::Inst_Swap(cAvidaContext& ctx)
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_BX);
+  const int reg_used = FindModifiedRegister(REG_BX);
   const int other_reg = FindComplementRegister(reg_used);
   nFunctions::Swap(GetRegister(reg_used), GetRegister(other_reg));
   return true;
@@ -1597,20 +1620,20 @@
 
 bool cHardwareCPU::Inst_SwapAB(cAvidaContext& ctx)\
 {
-  nFunctions::Swap(GetRegister(nHardwareCPU::REG_AX), GetRegister(nHardwareCPU::REG_BX)); return true;
+  nFunctions::Swap(GetRegister(REG_AX), GetRegister(REG_BX)); return true;
 }
 bool cHardwareCPU::Inst_SwapBC(cAvidaContext& ctx)
 {
-  nFunctions::Swap(GetRegister(nHardwareCPU::REG_BX), GetRegister(nHardwareCPU::REG_CX)); return true;
+  nFunctions::Swap(GetRegister(REG_BX), GetRegister(REG_CX)); return true;
 }
 bool cHardwareCPU::Inst_SwapAC(cAvidaContext& ctx)
 {
-  nFunctions::Swap(GetRegister(nHardwareCPU::REG_AX), GetRegister(nHardwareCPU::REG_CX)); return true;
+  nFunctions::Swap(GetRegister(REG_AX), GetRegister(REG_CX)); return true;
 }
 
 bool cHardwareCPU::Inst_CopyReg(cAvidaContext& ctx)
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_BX);
+  const int reg_used = FindModifiedRegister(REG_BX);
   const int other_reg = FindComplementRegister(reg_used);
   GetRegister(other_reg) = GetRegister(reg_used);
   return true;
@@ -1618,55 +1641,55 @@
 
 bool cHardwareCPU::Inst_CopyRegAB(cAvidaContext& ctx)
 {
-  GetRegister(nHardwareCPU::REG_AX) = GetRegister(nHardwareCPU::REG_BX);   return true;
+  GetRegister(REG_AX) = GetRegister(REG_BX);   return true;
 }
 bool cHardwareCPU::Inst_CopyRegAC(cAvidaContext& ctx)
 {
-  GetRegister(nHardwareCPU::REG_AX) = GetRegister(nHardwareCPU::REG_CX);   return true;
+  GetRegister(REG_AX) = GetRegister(REG_CX);   return true;
 }
 bool cHardwareCPU::Inst_CopyRegBA(cAvidaContext& ctx)
 {
-  GetRegister(nHardwareCPU::REG_BX) = GetRegister(nHardwareCPU::REG_AX);   return true;
+  GetRegister(REG_BX) = GetRegister(REG_AX);   return true;
 }
 bool cHardwareCPU::Inst_CopyRegBC(cAvidaContext& ctx)
 {
-  GetRegister(nHardwareCPU::REG_BX) = GetRegister(nHardwareCPU::REG_CX);   return true;
+  GetRegister(REG_BX) = GetRegister(REG_CX);   return true;
 }
 bool cHardwareCPU::Inst_CopyRegCA(cAvidaContext& ctx)
 {
-  GetRegister(nHardwareCPU::REG_CX) = GetRegister(nHardwareCPU::REG_AX);   return true;
+  GetRegister(REG_CX) = GetRegister(REG_AX);   return true;
 }
 bool cHardwareCPU::Inst_CopyRegCB(cAvidaContext& ctx)
 {
-  GetRegister(nHardwareCPU::REG_CX) = GetRegister(nHardwareCPU::REG_BX);   return true;
+  GetRegister(REG_CX) = GetRegister(REG_BX);   return true;
 }
 
 bool cHardwareCPU::Inst_Reset(cAvidaContext& ctx)
 {
-  GetRegister(nHardwareCPU::REG_AX) = 0;
-  GetRegister(nHardwareCPU::REG_BX) = 0;
-  GetRegister(nHardwareCPU::REG_CX) = 0;
+  GetRegister(REG_AX) = 0;
+  GetRegister(REG_BX) = 0;
+  GetRegister(REG_CX) = 0;
   StackClear();
   return true;
 }
 
 bool cHardwareCPU::Inst_ShiftR(cAvidaContext& ctx)
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_BX);
+  const int reg_used = FindModifiedRegister(REG_BX);
   GetRegister(reg_used) >>= 1;
   return true;
 }
 
 bool cHardwareCPU::Inst_ShiftL(cAvidaContext& ctx)
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_BX);
+  const int reg_used = FindModifiedRegister(REG_BX);
   GetRegister(reg_used) <<= 1;
   return true;
 }
 
 bool cHardwareCPU::Inst_Bit1(cAvidaContext& ctx)
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_BX);
+  const int reg_used = FindModifiedRegister(REG_BX);
   GetRegister(reg_used) |=  1;
   return true;
 }
@@ -1674,78 +1697,78 @@
 bool cHardwareCPU::Inst_SetNum(cAvidaContext& ctx)
 {
   ReadLabel();
-  GetRegister(nHardwareCPU::REG_BX) = GetLabel().AsInt(nHardwareCPU::NUM_NOPS);
+  GetRegister(REG_BX) = GetLabel().AsInt(NUM_NOPS);
   return true;
 }
 
 bool cHardwareCPU::Inst_ValGrey(cAvidaContext& ctx) {
   ReadLabel();
-  GetRegister(nHardwareCPU::REG_BX) = GetLabel().AsIntGreyCode(nHardwareCPU::NUM_NOPS);
+  GetRegister(REG_BX) = GetLabel().AsIntGreyCode(NUM_NOPS);
   return true;
 }
 
 bool cHardwareCPU::Inst_ValDir(cAvidaContext& ctx) {
   ReadLabel();
-  GetRegister(nHardwareCPU::REG_BX) = GetLabel().AsIntDirect(nHardwareCPU::NUM_NOPS);
+  GetRegister(REG_BX) = GetLabel().AsIntDirect(NUM_NOPS);
   return true;
 }
 
 bool cHardwareCPU::Inst_ValAddP(cAvidaContext& ctx) {
   ReadLabel();
-  GetRegister(nHardwareCPU::REG_BX) = GetLabel().AsIntAdditivePolynomial(nHardwareCPU::NUM_NOPS);
+  GetRegister(REG_BX) = GetLabel().AsIntAdditivePolynomial(NUM_NOPS);
   return true;
 }
 
 bool cHardwareCPU::Inst_ValFib(cAvidaContext& ctx) {
   ReadLabel();
-  GetRegister(nHardwareCPU::REG_BX) = GetLabel().AsIntFib(nHardwareCPU::NUM_NOPS);
+  GetRegister(REG_BX) = GetLabel().AsIntFib(NUM_NOPS);
   return true;
 }
 
 bool cHardwareCPU::Inst_ValPolyC(cAvidaContext& ctx) {
   ReadLabel();
-  GetRegister(nHardwareCPU::REG_BX) = GetLabel().AsIntPolynomialCoefficent(nHardwareCPU::NUM_NOPS);
+  GetRegister(REG_BX) = GetLabel().AsIntPolynomialCoefficent(NUM_NOPS);
   return true;
 }
 
 bool cHardwareCPU::Inst_Inc(cAvidaContext& ctx)
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_BX);
+  const int reg_used = FindModifiedRegister(REG_BX);
   GetRegister(reg_used) += 1;
   return true;
 }
 
 bool cHardwareCPU::Inst_Dec(cAvidaContext& ctx)
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_BX);
+  const int reg_used = FindModifiedRegister(REG_BX);
   GetRegister(reg_used) -= 1;
   return true;
 }
 
 bool cHardwareCPU::Inst_Zero(cAvidaContext& ctx)
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_BX);
+  const int reg_used = FindModifiedRegister(REG_BX);
   GetRegister(reg_used) = 0;
   return true;
 }
 
 bool cHardwareCPU::Inst_Neg(cAvidaContext& ctx)
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_BX);
+  const int reg_used = FindModifiedRegister(REG_BX);
   GetRegister(reg_used) = 0 - GetRegister(reg_used);
   return true;
 }
 
 bool cHardwareCPU::Inst_Square(cAvidaContext& ctx)
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_BX);
+  const int reg_used = FindModifiedRegister(REG_BX);
   GetRegister(reg_used) = GetRegister(reg_used) * GetRegister(reg_used);
   return true;
 }
 
 bool cHardwareCPU::Inst_Sqrt(cAvidaContext& ctx)
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_BX);
+  const int reg_used = FindModifiedRegister(REG_BX);
   const int value = GetRegister(reg_used);
   if (value > 1) GetRegister(reg_used) = (int) sqrt((double) value);
   else if (value < 0) {
@@ -1757,7 +1780,7 @@
 
 bool cHardwareCPU::Inst_Log(cAvidaContext& ctx)
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_BX);
+  const int reg_used = FindModifiedRegister(REG_BX);
   const int value = GetRegister(reg_used);
   if (value >= 1) GetRegister(reg_used) = (int) log((double) value);
   else if (value < 0) {
@@ -1769,7 +1792,7 @@
 
 bool cHardwareCPU::Inst_Log10(cAvidaContext& ctx)
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_BX);
+  const int reg_used = FindModifiedRegister(REG_BX);
   const int value = GetRegister(reg_used);
   if (value >= 1) GetRegister(reg_used) = (int) log10((double) value);
   else if (value < 0) {
@@ -1781,40 +1804,40 @@
 
 bool cHardwareCPU::Inst_Minus17(cAvidaContext& ctx)
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_BX);
+  const int reg_used = FindModifiedRegister(REG_BX);
   GetRegister(reg_used) -= 17;
   return true;
 }
 
 bool cHardwareCPU::Inst_Add(cAvidaContext& ctx)
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_BX);
-  GetRegister(reg_used) = GetRegister(nHardwareCPU::REG_BX) + GetRegister(nHardwareCPU::REG_CX);
+  const int reg_used = FindModifiedRegister(REG_BX);
+  GetRegister(reg_used) = GetRegister(REG_BX) + GetRegister(REG_CX);
   return true;
 }
 
 bool cHardwareCPU::Inst_Sub(cAvidaContext& ctx)
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_BX);
-  GetRegister(reg_used) = GetRegister(nHardwareCPU::REG_BX) - GetRegister(nHardwareCPU::REG_CX);
+  const int reg_used = FindModifiedRegister(REG_BX);
+  GetRegister(reg_used) = GetRegister(REG_BX) - GetRegister(REG_CX);
   return true;
 }
 
 bool cHardwareCPU::Inst_Mult(cAvidaContext& ctx)
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_BX);
-  GetRegister(reg_used) = GetRegister(nHardwareCPU::REG_BX) * GetRegister(nHardwareCPU::REG_CX);
+  const int reg_used = FindModifiedRegister(REG_BX);
+  GetRegister(reg_used) = GetRegister(REG_BX) * GetRegister(REG_CX);
   return true;
 }
 
 bool cHardwareCPU::Inst_Div(cAvidaContext& ctx)
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_BX);
-  if (GetRegister(nHardwareCPU::REG_CX) != 0) {
-    if (0-INT_MAX > GetRegister(nHardwareCPU::REG_BX) && GetRegister(nHardwareCPU::REG_CX) == -1)
+  const int reg_used = FindModifiedRegister(REG_BX);
+  if (GetRegister(REG_CX) != 0) {
+    if (0-INT_MAX > GetRegister(REG_BX) && GetRegister(REG_CX) == -1)
       organism->Fault(FAULT_LOC_MATH, FAULT_TYPE_ERROR, "div: Float exception");
     else
-      GetRegister(reg_used) = GetRegister(nHardwareCPU::REG_BX) / GetRegister(nHardwareCPU::REG_CX);
+      GetRegister(reg_used) = GetRegister(REG_BX) / GetRegister(REG_CX);
   } else {
     organism->Fault(FAULT_LOC_MATH, FAULT_TYPE_ERROR, "div: dividing by 0");
     return false;
@@ -1824,9 +1847,9 @@
 
 bool cHardwareCPU::Inst_Mod(cAvidaContext& ctx)
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_BX);
-  if (GetRegister(nHardwareCPU::REG_CX) != 0) {
-    GetRegister(reg_used) = GetRegister(nHardwareCPU::REG_BX) % GetRegister(nHardwareCPU::REG_CX);
+  const int reg_used = FindModifiedRegister(REG_BX);
+  if (GetRegister(REG_CX) != 0) {
+    GetRegister(reg_used) = GetRegister(REG_BX) % GetRegister(REG_CX);
   } else {
     organism->Fault(FAULT_LOC_MATH, FAULT_TYPE_ERROR, "mod: modding by 0");
     return false;
@@ -1837,51 +1860,51 @@
 
 bool cHardwareCPU::Inst_Nand(cAvidaContext& ctx)
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_BX);
-  GetRegister(reg_used) = ~(GetRegister(nHardwareCPU::REG_BX) & GetRegister(nHardwareCPU::REG_CX));
+  const int reg_used = FindModifiedRegister(REG_BX);
+  GetRegister(reg_used) = ~(GetRegister(REG_BX) & GetRegister(REG_CX));
   return true;
 }
 
 bool cHardwareCPU::Inst_Nor(cAvidaContext& ctx)
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_BX);
-  GetRegister(reg_used) = ~(GetRegister(nHardwareCPU::REG_BX) | GetRegister(nHardwareCPU::REG_CX));
+  const int reg_used = FindModifiedRegister(REG_BX);
+  GetRegister(reg_used) = ~(GetRegister(REG_BX) | GetRegister(REG_CX));
   return true;
 }
 
 bool cHardwareCPU::Inst_And(cAvidaContext& ctx)
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_BX);
-  GetRegister(reg_used) = (GetRegister(nHardwareCPU::REG_BX) & GetRegister(nHardwareCPU::REG_CX));
+  const int reg_used = FindModifiedRegister(REG_BX);
+  GetRegister(reg_used) = (GetRegister(REG_BX) & GetRegister(REG_CX));
   return true;
 }
 
 bool cHardwareCPU::Inst_Not(cAvidaContext& ctx)
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_BX);
+  const int reg_used = FindModifiedRegister(REG_BX);
   GetRegister(reg_used) = ~(GetRegister(reg_used));
   return true;
 }
 
 bool cHardwareCPU::Inst_Order(cAvidaContext& ctx)
 {
-  if (GetRegister(nHardwareCPU::REG_BX) > GetRegister(nHardwareCPU::REG_CX)) {
-    nFunctions::Swap(GetRegister(nHardwareCPU::REG_BX), GetRegister(nHardwareCPU::REG_CX));
+  if (GetRegister(REG_BX) > GetRegister(REG_CX)) {
+    nFunctions::Swap(GetRegister(REG_BX), GetRegister(REG_CX));
   }
   return true;
 }
 
 bool cHardwareCPU::Inst_Xor(cAvidaContext& ctx)
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_BX);
-  GetRegister(reg_used) = GetRegister(nHardwareCPU::REG_BX) ^ GetRegister(nHardwareCPU::REG_CX);
+  const int reg_used = FindModifiedRegister(REG_BX);
+  GetRegister(reg_used) = GetRegister(REG_BX) ^ GetRegister(REG_CX);
   return true;
 }
 
 bool cHardwareCPU::Inst_Copy(cAvidaContext& ctx)
 {
-  const cHeadCPU from(this, GetRegister(nHardwareCPU::REG_BX));
-  cHeadCPU to(this, GetRegister(nHardwareCPU::REG_AX) + GetRegister(nHardwareCPU::REG_BX));
+  const cHeadCPU from(this, GetRegister(REG_BX));
+  cHeadCPU to(this, GetRegister(REG_AX) + GetRegister(REG_BX));
   sCPUStats & cpu_stats = organism->CPUStats();
   
   if (organism->TestCopyMut(ctx)) {
@@ -1903,8 +1926,8 @@
 
 bool cHardwareCPU::Inst_ReadInst(cAvidaContext& ctx)
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_CX);
-  const cHeadCPU from(this,GetRegister(nHardwareCPU::REG_BX));
+  const int reg_used = FindModifiedRegister(REG_CX);
+  const cHeadCPU from(this,GetRegister(REG_BX));
   
   // Dis-allowing mutations on read, for the moment (write only...)
   // @CAO This allows perfect error-correction...
@@ -1914,8 +1937,8 @@
 
 bool cHardwareCPU::Inst_WriteInst(cAvidaContext& ctx)
 {
-  cHeadCPU to(this, GetRegister(nHardwareCPU::REG_AX) + GetRegister(nHardwareCPU::REG_BX));
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_CX);
+  cHeadCPU to(this, GetRegister(REG_AX) + GetRegister(REG_BX));
+  const int reg_used = FindModifiedRegister(REG_CX);
   const int value = Mod(GetRegister(reg_used), m_inst_set->GetSize());
   sCPUStats & cpu_stats = organism->CPUStats();
 
@@ -1939,7 +1962,7 @@
 
 bool cHardwareCPU::Inst_StackReadInst(cAvidaContext& ctx)
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_CX);
+  const int reg_used = FindModifiedRegister(REG_CX);
   cHeadCPU from(this, GetRegister(reg_used));
   StackPush(from.GetInst().GetOp());
   return true;
@@ -1947,8 +1970,8 @@
 
 bool cHardwareCPU::Inst_StackWriteInst(cAvidaContext& ctx)
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_BX);
-  cHeadCPU to(this, GetRegister(nHardwareCPU::REG_AX) + GetRegister(reg_used));
+  const int reg_used = FindModifiedRegister(REG_BX);
+  cHeadCPU to(this, GetRegister(REG_AX) + GetRegister(reg_used));
   const int value = Mod(StackPop(), m_inst_set->GetSize());
   sCPUStats & cpu_stats = organism->CPUStats();
   
@@ -1972,9 +1995,9 @@
 
 bool cHardwareCPU::Inst_Compare(cAvidaContext& ctx)
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_CX);
-  cHeadCPU from(this, GetRegister(nHardwareCPU::REG_BX));
-  cHeadCPU to(this, GetRegister(nHardwareCPU::REG_AX) + GetRegister(nHardwareCPU::REG_BX));
+  const int reg_used = FindModifiedRegister(REG_CX);
+  cHeadCPU from(this, GetRegister(REG_BX));
+  cHeadCPU to(this, GetRegister(REG_AX) + GetRegister(REG_BX));
   
   // Compare is dangerous -- it can cause mutations!
   if (organism->TestCopyMut(ctx)) {
@@ -1991,8 +2014,8 @@
 
 bool cHardwareCPU::Inst_IfNCpy(cAvidaContext& ctx)
 {
-  const cHeadCPU from(this, GetRegister(nHardwareCPU::REG_BX));
-  const cHeadCPU to(this, GetRegister(nHardwareCPU::REG_AX) + GetRegister(nHardwareCPU::REG_BX));
+  const cHeadCPU from(this, GetRegister(REG_BX));
+  const cHeadCPU to(this, GetRegister(REG_AX) + GetRegister(REG_BX));
   
   // Allow for errors in this test...
   if (organism->TestCopyMut(ctx)) {
@@ -2006,15 +2029,15 @@
 bool cHardwareCPU::Inst_Allocate(cAvidaContext& ctx)   // Allocate bx more space...
 {
   const int size = GetMemory().GetSize();
-  if( Allocate_Main(ctx, GetRegister(nHardwareCPU::REG_BX)) ) {
-  GetRegister(nHardwareCPU::REG_AX) = size;
+  if( Allocate_Main(ctx, GetRegister(REG_BX)) ) {
+  GetRegister(REG_AX) = size;
   return true;
 } else return false;
 }
 
 bool cHardwareCPU::Inst_Divide(cAvidaContext& ctx)  
 { 
-  return Divide_Main(ctx, GetRegister(nHardwareCPU::REG_AX));    
+  return Divide_Main(ctx, GetRegister(REG_AX));    
 }
 
 /*
@@ -2027,7 +2050,7 @@
 
 bool cHardwareCPU::Inst_DivideRS(cAvidaContext& ctx)  
 { 
-  return Divide_MainRS(ctx, GetRegister(nHardwareCPU::REG_AX));    
+  return Divide_MainRS(ctx, GetRegister(REG_AX));    
 }
 
 
@@ -2047,7 +2070,7 @@
   const int alloc_size = Min((int) (m_world->GetConfig().CHILD_SIZE_RANGE.Get() * cur_size),
                              MAX_CREATURE_SIZE - cur_size);
   if( Allocate_Main(ctx, alloc_size) ) {
-    GetRegister(nHardwareCPU::REG_AX) = cur_size;
+    GetRegister(REG_AX) = cur_size;
     return true;
   } else return false;
 }
@@ -2099,7 +2122,7 @@
 
 bool cHardwareCPU::Inst_Kazi(cAvidaContext& ctx)
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_AX);
+  const int reg_used = FindModifiedRegister(REG_AX);
   double percentProb = ((double) (GetRegister(reg_used) % 100)) / 100.0;
   if ( ctx.GetRandom().P(percentProb) ) organism->Kaboom(0);
   return true;
@@ -2107,7 +2130,7 @@
 
 bool cHardwareCPU::Inst_Kazi5(cAvidaContext& ctx)
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_AX);
+  const int reg_used = FindModifiedRegister(REG_AX);
   double percentProb = ((double) (GetRegister(reg_used) % 100)) / 100.0;
   if ( ctx.GetRandom().P(percentProb) ) organism->Kaboom(0);
   return true;
@@ -2163,7 +2186,7 @@
   }
   
   // Search for the label in the host...
-  GetLabel().Rotate(1, nHardwareCPU::NUM_NOPS);
+  GetLabel().Rotate(1, NUM_NOPS);
   
   const bool inject_signal = host_organism->GetHardware().InjectHost(GetLabel(), inject_code);
   if (inject_signal) {
@@ -2230,7 +2253,7 @@
   }
   
   // Search for the label in the host...
-  GetLabel().Rotate(1, nHardwareCPU::NUM_NOPS);
+  GetLabel().Rotate(1, NUM_NOPS);
   
   if (host_organism->GetHardware().InjectHost(GetLabel(), inject_code)) {
     if (ForkThread()) organism->GetPhenotype().IsMultiThread() = true;
@@ -2244,7 +2267,7 @@
 
 bool cHardwareCPU::Inst_TaskGet(cAvidaContext& ctx)
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_CX);
+  const int reg_used = FindModifiedRegister(REG_CX);
   const int value = organism->GetNextInput();
   GetRegister(reg_used) = value;
   organism->DoInput(value);
@@ -2268,7 +2291,7 @@
 
 bool cHardwareCPU::Inst_TaskPut(cAvidaContext& ctx)
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_BX);
+  const int reg_used = FindModifiedRegister(REG_BX);
   const int value = GetRegister(reg_used);
   GetRegister(reg_used) = 0;
   organism->DoOutput(ctx, value);
@@ -2277,7 +2300,7 @@
 
 bool cHardwareCPU::Inst_TaskIO(cAvidaContext& ctx)
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_BX);
+  const int reg_used = FindModifiedRegister(REG_BX);
   
   // Do the "put" component
   const int value_out = GetRegister(reg_used);
@@ -2301,7 +2324,7 @@
 
 bool cHardwareCPU::Inst_Send(cAvidaContext& ctx)
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_BX);
+  const int reg_used = FindModifiedRegister(REG_BX);
   organism->SendValue(GetRegister(reg_used));
   GetRegister(reg_used) = 0;
   return true;
@@ -2309,7 +2332,7 @@
 
 bool cHardwareCPU::Inst_Receive(cAvidaContext& ctx)
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_BX);
+  const int reg_used = FindModifiedRegister(REG_BX);
   GetRegister(reg_used) = organism->ReceiveValue();
   return true;
 }
@@ -2317,7 +2340,7 @@
 bool cHardwareCPU::Inst_Sense(cAvidaContext& ctx)
 {
   const tArray<double> & res_count = organism->GetOrgInterface().GetResources();
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_BX);
+  const int reg_used = FindModifiedRegister(REG_BX);
   
   // If there are no resources to measure, this instruction fails.
   if (res_count.GetSize() == 0) return false;
@@ -2485,26 +2508,26 @@
 bool cHardwareCPU::Inst_SearchF(cAvidaContext& ctx)
 {
   ReadLabel();
-  GetLabel().Rotate(1, nHardwareCPU::NUM_NOPS);
+  GetLabel().Rotate(1, NUM_NOPS);
   const int search_size = FindLabel(1).GetPosition() - IP().GetPosition();
-  GetRegister(nHardwareCPU::REG_BX) = search_size;
-  GetRegister(nHardwareCPU::REG_CX) = GetLabel().GetSize();
+  GetRegister(REG_BX) = search_size;
+  GetRegister(REG_CX) = GetLabel().GetSize();
   return true;
 }
 
 bool cHardwareCPU::Inst_SearchB(cAvidaContext& ctx)
 {
   ReadLabel();
-  GetLabel().Rotate(1, nHardwareCPU::NUM_NOPS);
+  GetLabel().Rotate(1, NUM_NOPS);
   const int search_size = IP().GetPosition() - FindLabel(-1).GetPosition();
-  GetRegister(nHardwareCPU::REG_BX) = search_size;
-  GetRegister(nHardwareCPU::REG_CX) = GetLabel().GetSize();
+  GetRegister(REG_BX) = search_size;
+  GetRegister(REG_CX) = GetLabel().GetSize();
   return true;
 }
 
 bool cHardwareCPU::Inst_MemSize(cAvidaContext& ctx)
 {
-  GetRegister(FindModifiedRegister(nHardwareCPU::REG_BX)) = GetMemory().GetSize();
+  GetRegister(FindModifiedRegister(REG_BX)) = GetMemory().GetSize();
   return true;
 }
 
@@ -2525,7 +2548,7 @@
   if (!GetLabel().GetSize()) return true;
   
   // Rotate until a complement label is found (or all have been checked).
-  GetLabel().Rotate(1, nHardwareCPU::NUM_NOPS);
+  GetLabel().Rotate(1, NUM_NOPS);
   for (int i = 1; i < num_neighbors; i++) {
     cOrganism* neighbor = organism->GetNeighbor();
     
@@ -2553,7 +2576,7 @@
   if (!GetLabel().GetSize()) return true;
   
   // Rotate until a complement label is found (or all have been checked).
-  GetLabel().Rotate(1, nHardwareCPU::NUM_NOPS);
+  GetLabel().Rotate(1, NUM_NOPS);
   for (int i = 1; i < num_neighbors; i++) {
     cOrganism* neighbor = organism->GetNeighbor();
     
@@ -2567,7 +2590,7 @@
 
 bool cHardwareCPU::Inst_SetCopyMut(cAvidaContext& ctx)
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_BX);
+  const int reg_used = FindModifiedRegister(REG_BX);
   const int new_mut_rate = Max(GetRegister(reg_used), 1 );
   organism->SetCopyMutProb(((double) new_mut_rate) / 10000.0);
   return true;
@@ -2575,7 +2598,7 @@
 
 bool cHardwareCPU::Inst_ModCopyMut(cAvidaContext& ctx)
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_BX);
+  const int reg_used = FindModifiedRegister(REG_BX);
   const double new_mut_rate = organism->GetCopyMutProb() +
     ((double)GetRegister(reg_used)) / 10000.0;
   if (new_mut_rate > 0.0) organism->SetCopyMutProb(new_mut_rate);
@@ -2601,7 +2624,7 @@
 
 bool cHardwareCPU::Inst_ThreadID(cAvidaContext& ctx)
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_BX);
+  const int reg_used = FindModifiedRegister(REG_BX);
   GetRegister(reg_used) = GetCurThreadID();
   return true;
 }
@@ -2634,21 +2657,21 @@
 bool cHardwareCPU::Inst_JumpHead(cAvidaContext& ctx)
 {
   const int head_used = FindModifiedHead(nHardware::HEAD_IP);
-  GetHead(head_used).Jump(GetRegister(nHardwareCPU::REG_CX) );
+  GetHead(head_used).Jump(GetRegister(REG_CX) );
   return true;
 }
 
 bool cHardwareCPU::Inst_GetHead(cAvidaContext& ctx)
 {
   const int head_used = FindModifiedHead(nHardware::HEAD_IP);
-  GetRegister(nHardwareCPU::REG_CX) = GetHead(head_used).GetPosition();
+  GetRegister(REG_CX) = GetHead(head_used).GetPosition();
   return true;
 }
 
 bool cHardwareCPU::Inst_IfLabel(cAvidaContext& ctx)
 {
   ReadLabel();
-  GetLabel().Rotate(1, nHardwareCPU::NUM_NOPS);
+  GetLabel().Rotate(1, NUM_NOPS);
   if (GetLabel() != GetReadLabel())  IP().Advance();
   return true;
 }
@@ -2658,7 +2681,7 @@
 bool cHardwareCPU::Inst_IfLabel2(cAvidaContext& ctx)
 {
   ReadLabel();
-  GetLabel().Rotate(1, nHardwareCPU::NUM_NOPS);
+  GetLabel().Rotate(1, NUM_NOPS);
   if (GetLabel() != GetReadLabel()) {
     IP().Advance();
     if (m_inst_set->IsNop( IP().GetNextInst() ))  IP().Advance();
@@ -2728,7 +2751,7 @@
   // Take the label that follows this divide and use it as the ID for which
   // other organisms this one is willing to mate with.
   ReadLabel();
-  organism->GetPhenotype().SetMateSelectID( GetLabel().AsInt(nHardwareCPU::NUM_NOPS) );
+  organism->GetPhenotype().SetMateSelectID( GetLabel().AsInt(NUM_NOPS) );
   
   // Proceed as normal with the rest of mate selection.
   organism->GetPhenotype().SetDivideSex(true);
@@ -2775,7 +2798,7 @@
   } else {
     read_inst = GetHead(head_id).GetInst().GetOp();
   }
-  GetRegister(nHardwareCPU::REG_BX) = read_inst;
+  GetRegister(REG_BX) = read_inst;
   ReadInst(read_inst);
   
   cpu_stats.mut_stats.copies_exec++;  // @CAO, this too..
@@ -2790,7 +2813,7 @@
   
   active_head.Adjust();
   
-  int value = GetRegister(nHardwareCPU::REG_BX);
+  int value = GetRegister(REG_BX);
   if (value < 0 || value >= m_inst_set->GetSize()) value = 0;
   
   active_head.SetInst(cInstruction(value));
@@ -2875,11 +2898,11 @@
 bool cHardwareCPU::Inst_HeadSearch(cAvidaContext& ctx)
 {
   ReadLabel();
-  GetLabel().Rotate(1, nHardwareCPU::NUM_NOPS);
+  GetLabel().Rotate(1, NUM_NOPS);
   cHeadCPU found_pos = FindLabel(0);
   const int search_size = found_pos.GetPosition() - IP().GetPosition();
-  GetRegister(nHardwareCPU::REG_BX) = search_size;
-  GetRegister(nHardwareCPU::REG_CX) = GetLabel().GetSize();
+  GetRegister(REG_BX) = search_size;
+  GetRegister(REG_CX) = GetLabel().GetSize();
   GetHead(nHardware::HEAD_FLOW).Set(found_pos);
   GetHead(nHardware::HEAD_FLOW).Advance();
   return true; 
@@ -2887,7 +2910,7 @@
 
 bool cHardwareCPU::Inst_SetFlow(cAvidaContext& ctx)
 {
-  const int reg_used = FindModifiedRegister(nHardwareCPU::REG_CX);
+  const int reg_used = FindModifiedRegister(REG_CX);
   GetHead(nHardware::HEAD_FLOW).Set(GetRegister(reg_used));
 return true; 
 }

Modified: development/source/cpu/cHardwareCPU.h
===================================================================
--- development/source/cpu/cHardwareCPU.h	2006-09-09 21:32:09 UTC (rev 935)
+++ development/source/cpu/cHardwareCPU.h	2006-09-09 21:53:48 UTC (rev 936)
@@ -23,9 +23,6 @@
 #ifndef nHardware_h
 #include "nHardware.h"
 #endif
-#ifndef nHardwareCPU_h
-#include "nHardwareCPU.h"
-#endif
 #ifndef cHeadCPU_h
 #include "cHeadCPU.h"
 #endif
@@ -38,9 +35,6 @@
 #ifndef cHardwareBase_h
 #include "cHardwareBase.h"
 #endif
-#ifndef cHardwareCPU_Thread_h
-#include "cHardwareCPU_Thread.h"
-#endif
 #ifndef cString_h
 #include "cString.h"
 #endif
@@ -71,16 +65,52 @@
   typedef bool (cHardwareCPU::*tHardwareCPUMethod)(cAvidaContext& ctx);
 
 protected:
+  // --------  Structure Constants  --------
+  static const int NUM_REGISTERS = 3;  
+  enum tRegisters { REG_AX = 0, REG_BX, REG_CX, REG_DX, REG_EX, REG_FX };
+  static const int NUM_NOPS = 3;
+  
+  // --------  Data Structures  --------
+  struct cLocalThread
+  {
+  private:
+    int m_id;
+    
+  public:
+    int reg[NUM_REGISTERS];
+    cHeadCPU heads[nHardware::NUM_HEADS];
+    cCPUStack stack;
+    unsigned char cur_stack;              // 0 = local stack, 1 = global stack.
+    unsigned char cur_head;
+    
+    cCodeLabel read_label;
+    cCodeLabel next_label;
+    
+    
+    cLocalThread(cHardwareBase* in_hardware = NULL, int in_id = -1) { Reset(in_hardware, in_id); }
+    ~cLocalThread() { ; }
+    
+    void operator=(const cLocalThread& in_thread);
+    
+    void Reset(cHardwareBase* in_hardware, int in_id);
+    int GetID() const { return m_id; }
+    void SetID(int in_id) { m_id = in_id; }
+  };
+
+    
+  // --------  Static Variables  --------
   static cInstLibCPU* s_inst_slib;
   static cInstLibCPU* initInstLib(void);
 
+
+  // --------  Member Variables  --------
   tHardwareCPUMethod* m_functions;
 
   cCPUMemory memory;          // Memory...
   cCPUStack global_stack;     // A stack that all threads share.
   int thread_time_used;
 
-  tArray<cHardwareCPU_Thread> threads;
+  tArray<cLocalThread> threads;
   int thread_id_chart;
   int cur_thread;
 
@@ -205,7 +235,7 @@
   // --------  Register Manipulation  --------
   const int GetRegister(int reg_id) const { return threads[cur_thread].reg[reg_id]; }
   int& GetRegister(int reg_id) { return threads[cur_thread].reg[reg_id]; }
-  int GetNumRegisters() const { return nHardwareCPU::NUM_REGISTERS; }
+  int GetNumRegisters() const { return NUM_REGISTERS; }
 
   
   // --------  Thread Manipulation  --------

Deleted: development/source/cpu/cHardwareCPU_Thread.cc
===================================================================
--- development/source/cpu/cHardwareCPU_Thread.cc	2006-09-09 21:32:09 UTC (rev 935)
+++ development/source/cpu/cHardwareCPU_Thread.cc	2006-09-09 21:53:48 UTC (rev 936)
@@ -1,59 +0,0 @@
-/*
- *  cHardwareCPU_Thread.cc
- *  Avida
- *
- *  Called "hardware_cpu_thread.cc" prior to 11/30/05.
- *  Copyright 2005-2006 Michigan State University. All rights reserved.
- *  Copyright 1999-2003 California Institute of Technology.
- *
- */
-
-#include "cHardwareCPU_Thread.h"
-
-using namespace std;
-
-cHardwareCPU_Thread::cHardwareCPU_Thread(cHardwareBase * in_hardware, int _id)
-{
-  Reset(in_hardware, _id);
-}
-
-cHardwareCPU_Thread::cHardwareCPU_Thread(const cHardwareCPU_Thread & in_thread, int _id)
-{
-   id = _id;
-   if (id == -1) id = in_thread.id;
-   for (int i = 0; i < nHardwareCPU::NUM_REGISTERS; i++) {
-     reg[i] = in_thread.reg[i];
-   }
-   for (int i = 0; i < nHardware::NUM_HEADS; i++) {
-     heads[i] = in_thread.heads[i];
-   }
-   stack = in_thread.stack;
-}
-
-cHardwareCPU_Thread::~cHardwareCPU_Thread() {}
-
-void cHardwareCPU_Thread::operator=(const cHardwareCPU_Thread & in_thread)
-{
-  id = in_thread.id;
-  for (int i = 0; i < nHardwareCPU::NUM_REGISTERS; i++) {
-    reg[i] = in_thread.reg[i];
-  }
-  for (int i = 0; i < nHardware::NUM_HEADS; i++) {
-    heads[i] = in_thread.heads[i];
-  }
-  stack = in_thread.stack;
-}
-
-void cHardwareCPU_Thread::Reset(cHardwareBase * in_hardware, int _id)
-{
-  id = _id;
-
-  for (int i = 0; i < nHardwareCPU::NUM_REGISTERS; i++) reg[i] = 0;
-  for (int i = 0; i < nHardware::NUM_HEADS; i++) heads[i].Reset(in_hardware);
-
-  stack.Clear();
-  cur_stack = 0;
-  cur_head = nHardware::HEAD_IP;
-  read_label.Clear();
-  next_label.Clear();
-}

Deleted: development/source/cpu/cHardwareCPU_Thread.h
===================================================================
--- development/source/cpu/cHardwareCPU_Thread.h	2006-09-09 21:32:09 UTC (rev 935)
+++ development/source/cpu/cHardwareCPU_Thread.h	2006-09-09 21:53:48 UTC (rev 936)
@@ -1,77 +0,0 @@
-/*
- *  cHardwareCPU_Thread.h
- *  Avida
- *
- *  Called "hardware_cpu_thread.hh" prior to 11/30/05.
- *  Copyright 2005-2006 Michigan State University. All rights reserved.
- *  Copyright 1999-2003 California Institute of Technology.
- *
- */
-
-#ifndef cHardwareCPU_Thread_h
-#define cHardwareCPU_Thread_h
-
-#include <iostream>
-
-#ifndef cCodeLabel_h
-#include "cCodeLabel.h"
-#endif
-#ifndef nHardware_h
-#include "nHardware.h"
-#endif
-#ifndef nHardwareCPU_h
-#include "nHardwareCPU.h"
-#endif
-#ifndef cHeadCPU_h
-#include "cHeadCPU.h"
-#endif
-#ifndef cCPUStack_h
-#include "cCPUStack.h"
-#endif
-
-/**
- * This class is needed to run several threads on a single genome.
- *
- * @see cCPUStack, cHeadCPU, cHardwareCPU
- **/
-
-struct cHardwareCPU_Thread
-{
-private:
-  int id;
-
-public:
-  int reg[nHardwareCPU::NUM_REGISTERS];
-  cHeadCPU heads[nHardware::NUM_HEADS];
-  cCPUStack stack;
-  unsigned char cur_stack;              // 0 = local stack, 1 = global stack.
-  unsigned char cur_head;
-
-  cCodeLabel read_label;
-  cCodeLabel next_label;
-
-  
-  cHardwareCPU_Thread(cHardwareBase* in_hardware = NULL, int _id = -1);
-  cHardwareCPU_Thread(const cHardwareCPU_Thread& in_thread, int _id = -1);
-  ~cHardwareCPU_Thread();
-
-  void operator=(const cHardwareCPU_Thread& in_thread);
-
-  void Reset(cHardwareBase* in_hardware, int _id);
-  int GetID() const { return id; }
-  void SetID(int _id) { id = _id; }
-};
-
-
-#ifdef ENABLE_UNIT_TESTS
-namespace nHardwareCPU_Thread {
-  /**
-   * Run unit tests
-   *
-   * @param full Run full test suite; if false, just the fast tests.
-   **/
-  void UnitTests(bool full = false);
-}
-#endif  
-
-#endif

Deleted: development/source/cpu/nHardwareCPU.h
===================================================================
--- development/source/cpu/nHardwareCPU.h	2006-09-09 21:32:09 UTC (rev 935)
+++ development/source/cpu/nHardwareCPU.h	2006-09-09 21:53:48 UTC (rev 936)
@@ -1,26 +0,0 @@
-/*
- *  nHardwareCPU.h
- *  Avida
- *
- *  Created by David on 11/30/05.
- *  Copyright 2005-2006 Michigan State University. All rights reserved.
- *  Copyright 1999-2003 California Institute of Technology.
- *
- */
-
-#ifndef nHardwareCPU_h
-#define nHardwareCPU_h
-
-// The following defines setup the structure of the CPU.  Changing them
-// (especially the number of registers) could have effects in other parts
-// of the code!
-
-namespace nHardwareCPU {
-  static const int NUM_REGISTERS = 3;
-  
-  enum tRegisters { REG_AX = 0, REG_BX, REG_CX, REG_DX, REG_EX, REG_FX };
-
-  static const int NUM_NOPS = 3;
-}
-
-#endif




More information about the Avida-cvs mailing list