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;
import org.rascalmpl.library.experiments.Compiler.RVM.Interpreter.MuPrimitive;
public class PushCallMuPrim2 extends Instruction {
MuPrimitive muprim;
public PushCallMuPrim2(CodeBlock ins, MuPrimitive muprim) {
super(ins, Opcode.PUSHCALLMUPRIM2);
this.muprim = muprim;
}
public String toString() {
return "PUSHCALLMUPRIM2 " + muprim;
}
public void generate() {
codeblock.addCode1(opcode.getOpcode(), muprim.ordinal());
}
public void generateByteCode(BytecodeGenerator codeEmittor, boolean debug) {
if ( debug )
codeEmittor.emitDebugCall1(opcode.name(), muprim.ordinal());
codeEmittor.emitInlinePushCallMuPrim2(muprim, debug);
}
}