import static edu.berkeley.fleet.api.Instruction.Set.*;
import static edu.berkeley.fleet.api.Predicate.*;
import edu.berkeley.fleet.two.*;
+import static edu.berkeley.fleet.two.FleetTwoFleet.SHIFT;
import edu.berkeley.fleet.fpga.*;
import edu.berkeley.fleet.interpreter.*;
import java.util.*;
if (FleetTwoFleet.isSmallEnoughToFit(literal)) {
cb.add(new Set(dock, looping, predicate, SetDest.DataLatch, (literal)));
} else {
- // FIXME bitwidth hardwired!
- cb.add(new Shift(dock, looping, predicate, new BitVector(37).set(getField(36, 19, literal))));
- cb.add(new Shift(dock, looping, predicate, new BitVector(37).set(getField(18, 0, literal))));
+ int counter = 0;
+ while(counter < dock.getShip().getFleet().getWordWidth()) counter += SHIFT.valmaskwidth;
+ while(counter > 0) {
+ cb.add(new Shift(dock, looping, predicate,
+ new BitVector(dock.getShip().getFleet().getWordWidth())
+ .set(getField(counter-1, counter-SHIFT.valmaskwidth, literal))));
+ counter -= SHIFT.valmaskwidth;
+ }
}
continue;