private IrOp loadDefine(IrOp op) { IrField field = op.argToField(); // in the end a Log definition becomes a // normal static field if (field.type.isLog()) { op.opcode = SCode.LoadConstStatic; return op; } // array literals use an internal bytecode which actually // gets written as LoadBuf (to maintain compatibility with // older SVMs); we stash the literal instance on the op itself if (field.type.isArray()) { op.opcode = SCode.LoadArrayLiteral; op.resolvedArg = field.define(); return op; } return CodeAsm.loadLiteral(field.define); }
private void predefine(String qname, int value) { IrField f = (IrField) ns.resolveSlot(qname); f.define = new Expr.Literal(new Location("synthetic"), ns, Expr.INT_LITERAL, new Integer(value)); }