Files
wasmtime/meta/gen_instr.py
Jakob Stoklund Olesen 15f39c776c Begin source generation.
Start out easy by emiting an opcodes.rs file containing an opcode enumeration.
2016-04-06 12:22:56 -07:00

32 lines
744 B
Python

"""
Generate sources with instruction info.
"""
import srcgen
def collect_instr_groups(targets):
seen = set()
groups = []
for t in targets:
for g in t.instruction_groups:
if g not in seen:
groups.append(g)
seen.add(g)
return groups
def gen_opcodes(groups, out_dir):
"""Generate opcode enumerations."""
fmt = srcgen.Formatter()
fmt.line('enum Opcode {')
fmt.indent_push()
for g in groups:
for i in g.instructions:
fmt.line(i.camel_name + ',')
fmt.indent_pop()
fmt.line('}')
fmt.update_file('opcodes.rs', out_dir)
def generate(targets, out_dir):
groups = collect_instr_groups(targets)
gen_opcodes(groups, out_dir)