#!/usr/bin/python3 "Simulate move-to-front coding for callq instructions from objdump -d." import sys def mtfcall(inlines): addrs = [] for line in inlines: if line.endswith('\n'): line = line[:-1] addr = line.split()[-2] if addr in addrs: n = addrs.index(addr) yield line, n addrs[n:n+1] = [] else: yield line, len(addrs) addrs[0:0] = [addr] if __name__ == '__main__': sys.stdout.writelines('%-80s %d\n' % (t, n) for t, n in mtfcall(sys.stdin))