public static final long newAccessEdge(State src, State dst, boolean write, Object d) { long srcNum = src.getNumber(); long dstNum = dst.getNumber(); long dNum = SymbolNumberer.getNumber(d); checkState(srcNum); checkState(dstNum); checkSymbol(dNum); return 1L << 63 | (write ? 1L : 0L) << 62 | srcNum << 41 | dstNum << 20 | dNum; }
public static final long newLoadEdge(State src, Object d) { long srcNum = src.getNumber(); long dNum = SymbolNumberer.getNumber(d); checkState(srcNum); checkSymbol(dNum); return srcNum << 41 | dNum; }
private static void outputFields(long e, boolean write, State src, State dst, Object d) { System.out.println(); System.out.println("e: " + long2BitStr(e)); System.out.println("access: " + isAccess(e)); System.out.println("kill: " + isKill(e)); System.out.println("id: " + isId(e)); System.out.println("write: " + isWrite(e)); System.out.println("write (real): " + write); System.out.println("src: " + getSrc(e)); System.out.println("src (real): " + (src == null ? 0 : src.getNumber())); System.out.println("dst: " + getDst(e)); System.out.println("dst (real): " + (dst == null ? 0 : dst.getNumber())); System.out.println("d: " + getD(e)); System.out.println("d (real): " + (d == null ? 0 : SymbolNumberer.getNumber(d))); System.out.println(); }