You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
810 B
27 lines
810 B
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);
|
|
}
|
|
|
|
}
|
|
|