mirror of
https://github.com/data61/MP-SPDZ.git
synced 2026-01-08 21:18:03 -05:00
36 lines
931 B
Python
Executable File
36 lines
931 B
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
import sys, os, csv
|
|
sys.path.insert(0, os.path.abspath('..'))
|
|
|
|
from Compiler import instructions_base as base
|
|
from Compiler import instructions
|
|
from Compiler.GC import instructions as gc
|
|
from itertools import chain
|
|
import re
|
|
|
|
desc = {}
|
|
|
|
for x in chain(instructions.__dict__.values(), gc.__dict__.values()):
|
|
try:
|
|
desc[x.code] = x.__doc__, x.__module__ + '.' + x.__name__
|
|
except:
|
|
pass
|
|
|
|
out = csv.writer(open('instructions.csv', 'w'))
|
|
|
|
items = list(chain(base.opcodes.items(), gc.opcodes.items()))
|
|
|
|
for name, opcode in sorted(items, key=lambda x: x[1]):
|
|
d, n = desc.get(opcode, (None, None))
|
|
if d and '$' not in d and '|' not in d and opcode not in \
|
|
(0x65, 0x6a) :
|
|
m = re.split(r'\.\s', d)
|
|
if m:
|
|
d = m[0]
|
|
d = d.replace('\n', '')
|
|
d = d.strip()
|
|
out.writerow([':py:class:`%s <%s>`' % (name, n), hex(opcode), d])
|
|
|
|
del out
|