示例#1
0
文件: fixup.py 项目: fuzzie/slcore
def filter(fbegin, finner, fcinner, fend, *args):
    """ 
    Transform compiler output (invalid, raw asm) to good-looking
    .s files that can be assembled by an external assembler.
    """

    opts = makestageopts([fbegin, finner, fcinner, fend], args)
    fname = opts.resolved.output
    if fname == "-":
        outf = sys.stdout
    else:
        try:
            outf = file(fname, "w")
        except Exception, e:
            die('%s: %r' % (fname, e))
示例#2
0
文件: enhance.py 项目: fuzzie/slcore
def filter(fbegin, fstages, fend, *args):
    """
    Enhance already valid assembly.
    """

    opts = makestageopts([fbegin, fstages, fend], args)
    filter_stagenames = [s.__name__ for s in fstages]

    # parse flags
    sel = dict(((s,True) for s in filter_stagenames))
    
    for f in opts.resolved.selection:
        if f == 'no-all' or f == 'none':
            for k in sel.keys(): sel[k] = False
        elif f == 'all':
            for k in sel.keys(): sel[k] = True
        else:
            if f.startswith('no-'):
                name = f[3:]
                value = False
            else:
                name = f
                value = True
            if name not in filter_stagenames:
                die('error: unrecognized command line option "-f%s-%s"' %
                     (value and "asmopt" or "no-asmopt", name))
            sel[name] = value

    verbose = opts.resolved.verbose

    if verbose: log('asmsel: %r' % sel)

    fname = opts.resolved.output
    if fname == "-":
        outf = sys.stdout
    else:
        try:
            outf = file(fname, "w")
        except Exception, e:
            die('%s: %r' % (fname, e))