Mercurial > lcfOS
diff python/ppci/codegen/canon.py @ 354:5477e499b039
Added some sort of string functionality
author | Windel Bouwman |
---|---|
date | Thu, 13 Mar 2014 18:59:06 +0100 |
parents | e609d5296ee9 |
children | c49459768aaa |
line wrap: on
line diff
--- a/python/ppci/codegen/canon.py Sun Mar 09 18:49:10 2014 +0100 +++ b/python/ppci/codegen/canon.py Thu Mar 13 18:59:06 2014 +0100 @@ -64,13 +64,16 @@ elif isinstance(exp, ir.Mem): exp.e = rewriteExp(exp.e, frame) return exp + elif isinstance(exp, ir.Addr): + exp.e = rewriteExp(exp.e, frame) + return exp elif isinstance(exp, ir.Call): exp.arguments = [rewriteExp(p, frame) for p in exp.arguments] # Rewrite call into eseq: t = newTemp() return ir.Eseq(ir.Move(t, exp), t) else: - raise NotImplementedError('NI: {}'.format(exp)) + raise NotImplementedError('NI: {}, {}'.format(exp, type(exp))) # The flatten functions pull out seq instructions to the sequence list. @@ -86,6 +89,9 @@ elif isinstance(exp, ir.Mem): exp.e, s = flattenExp(exp.e) return exp, s + elif isinstance(exp, ir.Addr): + exp.e, s = flattenExp(exp.e) + return exp, s elif isinstance(exp, ir.Eseq): s = flattenStmt(exp.stmt) exp.e, se = flattenExp(exp.e)