used signed fields when readInstruction()ing a literal instruction
authoradam <adam@megacz.com>
Wed, 2 Jan 2008 06:41:29 +0000 (07:41 +0100)
committeradam <adam@megacz.com>
Wed, 2 Jan 2008 06:41:29 +0000 (07:41 +0100)
src/edu/berkeley/fleet/ies44/InstructionEncoder.java

index b687df2..6a33b5b 100644 (file)
@@ -15,7 +15,11 @@ public abstract class InstructionEncoder {
     public static final int OFFSET_MASK_LITERAL    = 24;
     public static final int WIDTH_MASK_LITERAL     = 2;
     public static final int MASK_LITERAL           = 1;
-
+    /*
+    public static final int OFFSET_MASK_LITERAL    = 20;
+    public static final int WIDTH_MASK_LITERAL     = 6;
+    public static final int MASK_LITERAL           = 13;
+    */
     public static final int OFFSET_MASK_KILL       = 21;
     public static final int WIDTH_MASK_KILL        = 5;
     public static final int MASK_KILL              = 5;
@@ -96,7 +100,7 @@ public abstract class InstructionEncoder {
         boolean dataOutDest = name.isOutbox() && dataOut && tokenOut;
         boolean isLiteral   = getIntField(OFFSET_MASK_LITERAL+WIDTH_MASK_LITERAL-1, OFFSET_MASK_LITERAL, inst)==MASK_LITERAL;
         if (isLiteral)
-            return new Instruction.LocalLiteral(name, getIntField(OFFSET_LITERAL+WIDTH_LITERAL-1, OFFSET_LITERAL, inst), count);
+            return new Instruction.LocalLiteral(name, getSignedField(OFFSET_LITERAL+WIDTH_LITERAL-1, OFFSET_LITERAL, inst), count);
         if (dataOutDest) tokenOut = false;
         return new Instruction.Move(name,
                                     dest,