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 LoadType extends Instruction { final int type; public LoadType(CodeBlock ins, int type) { super(ins, Opcode.LOADTYPE); this.type = type; } public String toString() { return "LOADTYPE " + type + "[" + codeblock.getConstantType(type) + "]"; } public void generate(){ codeblock.addCode1(opcode.getOpcode(), type); } public void generateByteCode(BytecodeGenerator codeEmittor, boolean debug){ if (debug) codeEmittor.emitDebugCall1(opcode.name(), type); codeEmittor.emitInlineLoadConOrType(type, false, debug); } }