[Avida-SVN] r2178 - branches/dkdev/source/cpu

dknoester at myxo.css.msu.edu dknoester at myxo.css.msu.edu
Sat Nov 3 06:21:46 PDT 2007


Author: dknoester
Date: 2007-11-03 09:21:46 -0400 (Sat, 03 Nov 2007)
New Revision: 2178

Modified:
   branches/dkdev/source/cpu/cHardwareCPU.cc
   branches/dkdev/source/cpu/cHardwareCPU.h
Log:
Added if->=.endif/else variant.

Modified: branches/dkdev/source/cpu/cHardwareCPU.cc
===================================================================
--- branches/dkdev/source/cpu/cHardwareCPU.cc	2007-11-03 13:11:34 UTC (rev 2177)
+++ branches/dkdev/source/cpu/cHardwareCPU.cc	2007-11-03 13:21:46 UTC (rev 2178)
@@ -392,6 +392,7 @@
     cInstEntryCPU("sorted?", &cHardwareCPU::Inst_Sorted),
     cInstEntryCPU("if-less.end", &cHardwareCPU::Inst_IfLessEnd),
     cInstEntryCPU("if-n-equ.end", &cHardwareCPU::Inst_IfNotEqualEnd),
+    cInstEntryCPU("if->=.end", &cHardwareCPU::Inst_IfGrtEquEnd),
 //    cInstEntryCPU("if-less.else", &cHardwareCPU::Inst_IfLessElse),
     cInstEntryCPU("else", &cHardwareCPU::Inst_Else),
     cInstEntryCPU("end-if", &cHardwareCPU::Inst_EndIf),
@@ -3975,6 +3976,14 @@
 }
 
 
+bool cHardwareCPU::Inst_IfGrtEquEnd(cAvidaContext& ctx) {
+  const int x = FindModifiedRegister(REG_BX);
+  const int y = FindNextRegister(x);
+  
+  if(GetRegister(x) < GetRegister(y)) { Else_TopHalf(); }
+  return true;
+}
+
 void cHardwareCPU::Else_TopHalf() {
   cHeadCPU else_head = Find("else");
   cHeadCPU endif_head = Find("endif");  

Modified: branches/dkdev/source/cpu/cHardwareCPU.h
===================================================================
--- branches/dkdev/source/cpu/cHardwareCPU.h	2007-11-03 13:11:34 UTC (rev 2177)
+++ branches/dkdev/source/cpu/cHardwareCPU.h	2007-11-03 13:21:46 UTC (rev 2178)
@@ -514,6 +514,7 @@
   void Else_TopHalf();
   bool Inst_IfLessEnd(cAvidaContext& ctx);
   bool Inst_IfNotEqualEnd(cAvidaContext& ctx);
+  bool Inst_IfGrtEquEnd(cAvidaContext& ctx);
   bool Inst_Else(cAvidaContext& ctx);
   bool Inst_EndIf(cAvidaContext& ctx);
 };




More information about the Avida-cvs mailing list