28 lines
810 B
Java
28 lines
810 B
Java
package triangle.codeGenerator.entities;
|
|
|
|
import triangle.abstractMachine.Machine;
|
|
import triangle.abstractMachine.OpCode;
|
|
import triangle.abstractMachine.Primitive;
|
|
import triangle.abstractMachine.Register;
|
|
import triangle.codeGenerator.Emitter;
|
|
import triangle.codeGenerator.Frame;
|
|
|
|
public class BarPrimitiveRoutine extends RuntimeEntity implements RoutineEntity {
|
|
|
|
public BarPrimitiveRoutine() {
|
|
super(Machine.closureSize);
|
|
}
|
|
|
|
public void encodeCall(Emitter emitter, Frame frame) {
|
|
//push the literal value of 100 onto the stack
|
|
emitter.emit(OpCode.LOADL, 0, 100);
|
|
emitter.emit(OpCode.CALL, Register.PB, Primitive.MULT);
|
|
}
|
|
|
|
public void encodeFetch(Emitter emitter, Frame frame) {
|
|
emitter.emit(OpCode.LOADA, 0, Register.SB, 0);
|
|
emitter.emit(OpCode.LOADA, Register.PB, Primitive.MULT);
|
|
}
|
|
|
|
}
|