/* * Emit assembly instructions now * this flushes the istream */ public void LIST() { IAsm a = iroot; IAsm p; Asm x = new Asm(io); while (a != null) { switch (a.getIType()) { case IAsm.I_INSN: x.Insn(a); break; case IAsm.I_LABEL: x.Label(a); break; case IAsm.I_BRANCH: x.Branch(a); break; case IAsm.I_INSN_STORE: x.Store(a); break; case IAsm.I_INSN_LOAD: x.Load(a); break; case IAsm.I_INSN_LOAD_CONST: x.LoadConst(a); break; case IAsm.I_FUNC_BEGIN: x.FuncBegin(a); /* Emit function beginning */ break; case IAsm.I_FUNC_END: x.FuncEnd(); break; case IAsm.I_CALL: x.Call(a); break; case IAsm.I_RET: x.Ret(a); break; case IAsm.I_COMMENT: x.Comment(a); break; case IAsm.I_FIELD: x.FieldDef(a); break; case IAsm.I_LOCALDEF: x.LocalVars(localvars); break; default: io.Abort("Unhandled instruction type " + a.getIType()); break; } p = a; a = a.getNext(); } }