20 lines
681 B
Java
20 lines
681 B
Java
package cd.backend.codegen;
|
|
|
|
import cd.backend.ExitCode;
|
|
import cd.backend.codegen.RegisterManager.Register;
|
|
|
|
public class Interrupts {
|
|
protected static final int INTERRUPT_EXIT = 1;
|
|
|
|
/**
|
|
* Generates a exit interrupt with the code provided
|
|
* @param cg AstCodeGenerator to print instructions
|
|
* @param exitCode Number to use as exit code (can use constants in this class)
|
|
*/
|
|
protected static void exit(AstCodeGenerator cg, ExitCode exitCode) {
|
|
cg.emit.emitMove(AssemblyEmitter.constant(INTERRUPT_EXIT), Register.EAX);
|
|
cg.emit.emitMove(AssemblyEmitter.constant(exitCode.value), Register.EBX);
|
|
cg.emit.emit("int", 0x80);
|
|
}
|
|
}
|