Example #1
0
def self_eval(expr, target, link, env, ctable):
    "Generate code that evaluates expr and places the result in target."
    if type(expr) == 'sym':
        return symbol(expr, target, link, env)
    elif type(expr) == 'char':
        return char(expr, target, link)
    else:
        return const(expr, target, link, ctable)
Example #2
0
def const(expr, target, link, ctable):
    "Generate code that places a reference to a copy of expr in target."
    c = Code(clobbers=[target])
    id = ctable.id(expr)
    c.tack_on('mov_%s r%s, #%s' % (type(expr), target, id))
    return end_with_link(c, link)