Example #1
0
def generate(isas, out_dir):
    # Generate shared settings.
    fmt = srcgen.Formatter()
    settings.group.qual_mod = 'settings'
    gen_group(settings.group, fmt)
    fmt.update_file('settings.rs', out_dir)

    # Generate ISA-specific settings.
    for isa in isas:
        isa.settings.qual_mod = 'isa::{}::settings'.format(isa.settings.name)
        fmt = srcgen.Formatter()
        gen_group(isa.settings, fmt)
        fmt.update_file('settings-{}.rs'.format(isa.name), out_dir)
Example #2
0
def generate(isas, out_dir):
    groups = collect_instr_groups(isas)

    # opcodes.rs
    fmt = srcgen.Formatter()
    gen_formats(fmt)
    gen_instruction_data_impl(fmt)
    instrs = gen_opcodes(groups, fmt)
    gen_type_constraints(fmt, instrs)
    fmt.update_file('opcodes.rs', out_dir)

    # builder.rs
    fmt = srcgen.Formatter()
    gen_builder(instrs, fmt)
    fmt.update_file('builder.rs', out_dir)
Example #3
0
def generate(isas, out_dir):
    # type: (Sequence[TargetISA], str) -> None
    groups = collect_instr_groups(isas)

    # opcodes.rs
    fmt = srcgen.Formatter()
    gen_formats(fmt)
    gen_instruction_data_impl(fmt)
    fmt.line()
    instrs = gen_opcodes(groups, fmt)
    gen_type_constraints(fmt, instrs)
    fmt.update_file('opcodes.rs', out_dir)

    # builder.rs
    fmt = srcgen.Formatter()
    gen_builder(instrs, fmt)
    fmt.update_file('builder.rs', out_dir)
Example #4
0
def generate(isas, out_dir):
    # type: (Sequence[TargetISA], str) -> None
    for isa in isas:
        fmt = srcgen.Formatter()
        gen_isa(isa, fmt)
        fmt.update_file('binemit-{}.rs'.format(isa.name), out_dir)
Example #5
0
def generate(out_dir):
    fmt = srcgen.Formatter()
    emit_types(fmt)
    fmt.update_file('types.rs', out_dir)
Example #6
0
def generate(isas, out_dir):
    for isa in isas:
        fmt = srcgen.Formatter()
        gen_isa(isa, fmt)
        fmt.update_file('encoding-{}.rs'.format(isa.name), out_dir)