def visitReturn(self, n, funcName): if(funcName == None): raise Exception("Return must have a valid function name") instrs = [] instrs += [Move86(arg_select(n.value), EAX)] instrs += [Jump86(generate_return_label(funcName))] return instrs
def addClosing(instrs, funcName): closing = [Label86(generate_return_label(funcName))] saveregs = CALLEESAVE[:] saveregs.reverse() for reg in saveregs: closing += [Pop86(reg)] closing += [Leave86()] closing += [Ret86()] return instrs + closing