add safety check to Instruction.Shift() constructor
authoradam <adam@megacz.com>
Mon, 3 Nov 2008 09:52:15 +0000 (10:52 +0100)
committeradam <adam@megacz.com>
Mon, 3 Nov 2008 09:52:15 +0000 (10:52 +0100)
src/edu/berkeley/fleet/api/Instruction.java

index eb7a83e..eee2480 100644 (file)
@@ -218,6 +218,10 @@ public abstract class Instruction {
             super(dock, looping, predicate);
             this.immediate = immediate;
             this.immediate.setImmutable();
+            if (immediate.length() != dock.getShip().getFleet().getShiftWidth())
+                throw new RuntimeException("attempt to create a Shift instruction with a "+immediate.length()+
+                                           "-bit immediate on a Fleet that uses "+dock.getShip().getFleet().getShiftWidth()+
+                                           "-bit shift instructions");
         }
         public String toString() { return super.toString()+"shift "+immediate; }
     }