Mercurial > lcfOS
diff python/codegenarm.py @ 234:83781bd10fdb
wip
author | Windel Bouwman |
---|---|
date | Sun, 14 Jul 2013 19:29:21 +0200 |
parents | e621e3ba78d2 |
children | ff40407c0240 |
line wrap: on
line diff
--- a/python/codegenarm.py Sun Jul 14 12:28:23 2013 +0200 +++ b/python/codegenarm.py Sun Jul 14 19:29:21 2013 +0200 @@ -1,5 +1,5 @@ import ir -from asmnodes import ALabel, AComment +from target import Label, Comment import cortexm3 as arm from ppci import CompilerError @@ -37,18 +37,18 @@ pass #self.imms.append(( self.stack_frame = [] - self.emit(ALabel(f.name)) + self.emit(Label(f.name)) # Save some registers: self.emit(arm.push_ins(arm.RegisterSet({arm.r4, arm.r5, arm.r6,arm.r7,arm.lr}))) for bb in f.BasicBlocks: - self.emit(ALabel(bb.name)) + self.emit(Label(bb.name)) for ins in bb.Instructions: self.generateInstruction(ins) self.outs.align(4) while self.imms: l, v = self.imms.pop() - self.emit(ALabel(l)) + self.emit(Label(l)) self.emit(arm.dcd_ins(v)) self.outs.align(4) @@ -65,16 +65,16 @@ def loadStack(self, reg, val): self.emit(arm.ldr_sprel(reg, arm.MemSpRel(self.getStack(val)))) def comment(self, txt): - self.emit(AComment(txt)) + self.emit(Comment(txt)) def generateInstruction(self, ins): self.comment(str(ins)) if type(ins) is ir.Branch: - tgt = ALabel(ins.target.name) + tgt = Label(ins.target.name) self.emit(arm.jmp_ins(tgt)) elif type(ins) is ir.ImmLoad: lname = ins.target.name + '_ivalue' - self.emit(arm.ldr_pcrel(arm.r0, ALabel(lname))) + self.emit(arm.ldr_pcrel(arm.r0, Label(lname))) self.imms.append((lname, ins.value)) self.emit(arm.str_sprel(arm.r0, arm.MemSpRel(self.addStack(ins.target)))) elif type(ins) is ir.Store: