fix Move.toString() to print a Path (includes signal bit(s)) rather than a Destination
authormegacz <adam@megacz.com>
Mon, 6 Apr 2009 18:25:56 +0000 (11:25 -0700)
committermegacz <adam@megacz.com>
Mon, 6 Apr 2009 18:25:56 +0000 (11:25 -0700)
src/edu/berkeley/fleet/api/Instruction.java

index e41c0fe..145459f 100644 (file)
@@ -317,13 +317,22 @@ public abstract class Instruction {
                 else                             ret.append(!dock.isInputDock() ? ", collect nothing" : ", recv nothing");
             }
             if (dataOut && dock.isInputDock())  ret.append(", deliver");
-            if (dataOut && !dock.isInputDock()) ret.append(path==null ? ", send"  : ", send to "  + path.getDestination());
-            if (tokenOut)                       ret.append(path==null ? ", token" : ", send token to " + path.getDestination());
+            if (dataOut && !dock.isInputDock()) ret.append(path==null ? ", send"  : ", send to "  + pathToString(path));
+            if (tokenOut)                       ret.append(path==null ? ", token" : ", send token to " + pathToString(path));
             String s = ret.toString();
             s = s.equals("") ? "nop" : s.substring(2);
             if (interruptible) s = "[T] " + s;
             return super.toString()+s+";";
         }
+
+        private String pathToString(Path path) {
+            BitVector signal = path.getSignal();
+            if (signal!=null)
+                for(int i=0; i<signal.length(); i++)
+                    if (signal.get(i))
+                        return (path.getDestination()+":"+signal.toLong());
+            return (path.getDestination()+"");
+        }
     }
 
     /** a flush instruction */