cleaner implementation of Shift instruction in InterpreterDock
authoradam <adam@megacz.com>
Thu, 21 Aug 2008 10:26:16 +0000 (11:26 +0100)
committeradam <adam@megacz.com>
Thu, 21 Aug 2008 10:26:16 +0000 (11:26 +0100)
src/edu/berkeley/fleet/interpreter/InterpreterDock.java

index 1610d19..2ff5213 100644 (file)
@@ -5,6 +5,7 @@ import edu.berkeley.fleet.two.*;
 import edu.berkeley.fleet.api.*;
 import edu.berkeley.fleet.api.Instruction;
 import static edu.berkeley.fleet.api.Predicate.*;
+import static edu.berkeley.fleet.two.FleetTwoFleet.SHIFT;
 
 /** anything that has a source (instruction horn) address on the switch fabric */
 class InterpreterDock extends FleetTwoDock {
@@ -160,9 +161,9 @@ class InterpreterDock extends FleetTwoDock {
 
         if (executing instanceof Instruction.Shift) {
             Instruction.Shift shift = (Instruction.Shift)executing;
-            for(int i=dataLatch.length()-1; i>=19; i--)
-                dataLatch.set(i, dataLatch.get(i-19));
-            for(int i=18; i>=0; i--)
+            for(int i=dataLatch.length()-1; i>=SHIFT.valmaskwidth; i--)
+                dataLatch.set(i, dataLatch.get(i-SHIFT.valmaskwidth));
+            for(int i=SHIFT.valmaskwidth-1; i>=0; i--)
                 dataLatch.set(i, shift.immediate.get(i));
             executing = null;
             return;