From: megacz Date: Sat, 14 Mar 2009 22:04:19 +0000 (-0700) Subject: remove OS bit from encoding X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=72853776b143367770f8b2b49e0b5c2421014a8f;p=fleet.git remove OS bit from encoding --- diff --git a/src/edu/berkeley/fleet/two/FleetTwoFleet.java b/src/edu/berkeley/fleet/two/FleetTwoFleet.java index 8f54036..c868ded 100644 --- a/src/edu/berkeley/fleet/two/FleetTwoFleet.java +++ b/src/edu/berkeley/fleet/two/FleetTwoFleet.java @@ -25,7 +25,6 @@ public abstract class FleetTwoFleet extends Fleet { public final Mask DISPATCH_PATH; public final Mask DISPATCH_INSTR; public final Mask NOT_INTERRUPTIBLE; - public final Mask OS; public final Mask P; public final Mask P_NOT_A; public final Mask P_A; @@ -114,8 +113,6 @@ public abstract class FleetTwoFleet extends Fleet { ABORT = new Mask("........1............................"); TAIL = new Mask(".........1..........................."); - OS = new Mask(".......1............................."); - // actually "is interruptible" NOT_INTERRUPTIBLE = new Mask("...........1....1...................."); @@ -156,7 +153,6 @@ public abstract class FleetTwoFleet extends Fleet { DISPATCH_PATH = new Mask("vvvvvvvvvvv.........................."); DISPATCH_INSTR = new Mask("...........vvvvvvvvvvvvvvvvvvvvvvvvvv"); NOT_INTERRUPTIBLE = new Mask("...........1........................."); - OS = new Mask("............1........................"); P = new Mask(".............vvv....................."); P_NOT_A = new Mask(".............000....................."); P_A = new Mask(".............001....................."); @@ -273,31 +269,30 @@ public abstract class FleetTwoFleet extends Fleet { if (P_NOT_A.get(inst)) predicate = NotFlagA; if (P_NOT_B.get(inst)) predicate = NotFlagB; - boolean looping = !OS.get(inst); if (FLUSH.get(inst)) - return new Flush(dock, looping, predicate); + return new Flush(dock, false, predicate); if (ABORT.get(inst)) return new Abort(dock, predicate); - if (SHIFT.get(inst)) return new Shift(dock, looping, predicate, new BitVector(dock.getShip().getFleet().getShiftWidth()).set(SHIFT.getval(inst))); + if (SHIFT.get(inst)) return new Shift(dock, false, predicate, new BitVector(dock.getShip().getFleet().getShiftWidth()).set(SHIFT.getval(inst))); if (SET_IMMEDIATE.get(inst)) { boolean extend = SET_IMMEDIATE_EXTEND.getval(inst) != 0; long immediate = SET_IMMEDIATE.getval(inst); if (extend) immediate |= (-1L << DataLatch_WIDTH); - return new Set(dock, looping, predicate, SetDest.DataLatch, (immediate)); + return new Set(dock, false, predicate, SetDest.DataLatch, (immediate)); } if (SET_OLC_FROM_OLC_MINUS_ONE.get(inst)) - return new Set(dock, looping, predicate, SetDest.OuterLoopCounter, SetSource.Decrement); + return new Set(dock, false, predicate, SetDest.OuterLoopCounter, SetSource.Decrement); if (SET_OLC_FROM_IMMEDIATE.get(inst)) - return new Set(dock, looping, predicate, SetDest.OuterLoopCounter, (SET_OLC_FROM_IMMEDIATE.getval(inst))); + return new Set(dock, false, predicate, SetDest.OuterLoopCounter, (SET_OLC_FROM_IMMEDIATE.getval(inst))); if (SET_ILC_FROM_IMMEDIATE.get(inst)) - return new Set(dock, looping, predicate, SetDest.InnerLoopCounter, (SET_ILC_FROM_IMMEDIATE.getval(inst))); + return new Set(dock, false, predicate, SetDest.InnerLoopCounter, (SET_ILC_FROM_IMMEDIATE.getval(inst))); if (SET_OLC_FROM_DATA_LATCH.get(inst)) - return new Set(dock, looping, predicate, SetDest.OuterLoopCounter, SetSource.DataLatch); + return new Set(dock, false, predicate, SetDest.OuterLoopCounter, SetSource.DataLatch); if (SET_ILC_FROM_DATA_LATCH.get(inst)) - return new Set(dock, looping, predicate, SetDest.InnerLoopCounter, SetSource.DataLatch); + return new Set(dock, false, predicate, SetDest.InnerLoopCounter, SetSource.DataLatch); if (SET_ILC_FROM_INFINITY.get(inst)) - return new Set(dock, looping, predicate, SetDest.InnerLoopCounter, SetSource.Infinity); + return new Set(dock, false, predicate, SetDest.InnerLoopCounter, SetSource.Infinity); if (SET_FLAGS.get(inst)) { long flag_a = SET_FLAGS_A.getval(inst); long flag_b = SET_FLAGS_B.getval(inst); @@ -315,11 +310,11 @@ public abstract class FleetTwoFleet extends Fleet { if (SET_FLAGS_VALUE_NOT_B.get(flag_b)) bp = bp.add(NotFlagB ); if (SET_FLAGS_VALUE_C .get(flag_b)) bp = bp.add(FlagC ); if (SET_FLAGS_VALUE_NOT_C.get(flag_b)) bp = bp.add(NotFlagC ); - return new Set(dock, looping, predicate, ap, bp); + return new Set(dock, false, predicate, ap, bp); } if (MOVE.get(inst)) return new Move(dock, - looping, + false, predicate, !NOT_INTERRUPTIBLE.get(inst), PATH_DATA.get(inst)?null:getPathByAddr(dock, PATH_IMMEDIATE.getvalAsBitVector(inst)), @@ -347,7 +342,6 @@ public abstract class FleetTwoFleet extends Fleet { boolean dl = false; Instruction pi = d; - if (!pi.looping) instr = OS.set(instr); switch(pi.predicate) { case IgnoreFlagD: instr = P_ALWAYS.set(instr); break; case FlagD: instr = P_OLC_ZERO.set(instr); break;