public BitVector getDestAddr(Path path) {
long ret = ((InterpreterDestination)path.getDestination()).addr;
- BitVector bv = path.getSignal();
- if (bv != null) {
- if (bv.length() > 1) throw new RuntimeException("signal was " + bv.length() + " bits long!");
- if (bv.length() > 0 && bv.get(0)) ret |= 1;
+ BitVector sig = path.getSignal();
+ BitVector bv = new BitVector(DISPATCH_PATH.valmaskwidth+1);
+ bv.set(ret);
+ if (sig != null) {
+ if (sig.length() > 1) throw new RuntimeException("signal was " + sig.length() + " bits long!");
+ if (sig.length() > 0 && sig.get(0)) bv.set(bv.length()-1,true);
}
- throw new RuntimeException("fixme");
+ return bv;
}