package org.rascalmpl.library.experiments.Compiler.RVM.Interpreter.Instructions; import org.rascalmpl.library.experiments.Compiler.RVM.Interpreter.BytecodeGenerator; import org.rascalmpl.library.experiments.Compiler.RVM.Interpreter.CodeBlock; public class PushCon extends Instruction { int constant; public PushCon(CodeBlock cb, int constant) { super(cb, Opcode.PUSHCON); this.constant = constant; } public String toString() { return "PUSHCON " + constant + "[" + codeblock.getConstantValue(constant) + "]"; } public void generate() { codeblock.addCode1(opcode.getOpcode(), constant); } public void generateByteCode(BytecodeGenerator codeEmittor, boolean debug) { if (debug) { String val = codeblock.getConstantValue(constant).toString(); codeEmittor.emitDebugCall2(opcode.name(), val, constant); } codeEmittor.emitInlinePushConOrType(constant,true,debug); } }