diff --git a/src/main/java/org/jcnc/snow/vm/factories/CommandFactory.java b/src/main/java/org/jcnc/snow/vm/factories/CommandFactory.java index dbdab0f..71479a3 100644 --- a/src/main/java/org/jcnc/snow/vm/factories/CommandFactory.java +++ b/src/main/java/org/jcnc/snow/vm/factories/CommandFactory.java @@ -6,6 +6,9 @@ import org.jcnc.snow.vm.commands.type.control.double64.*; import org.jcnc.snow.vm.commands.type.control.float32.*; import org.jcnc.snow.vm.commands.type.control.int32.*; import org.jcnc.snow.vm.commands.type.control.long64.*; +import org.jcnc.snow.vm.commands.type.control.ref.RLoadCommand; +import org.jcnc.snow.vm.commands.type.control.ref.RPushCommand; +import org.jcnc.snow.vm.commands.type.control.ref.RStoreCommand; import org.jcnc.snow.vm.commands.type.control.short16.*; import org.jcnc.snow.vm.commands.type.control.byte8.BAndCommand; import org.jcnc.snow.vm.commands.type.control.byte8.BOrCommand; @@ -62,6 +65,7 @@ public class CommandFactory { static { + // region Type Control (0x0000-0x00BF) // region Byte8 (0x0000-0x001F) COMMANDS[VMOpCode.B_ADD] = new BAddCommand(); @@ -205,6 +209,7 @@ public class CommandFactory { COMMANDS[VMOpCode.D_CL] = new DCLCommand(); COMMANDS[VMOpCode.D_CLE] = new DCLECommand(); // endregion + // endregion // region Type Conversion (0x00C0-0x00DF) @@ -245,6 +250,12 @@ public class CommandFactory { COMMANDS[VMOpCode.D2F] = new D2FCommand(); // endregion + // region Reference Control (0x00E0-0x00EF) + COMMANDS[VMOpCode.R_PUSH] = new RPushCommand(); + COMMANDS[VMOpCode.R_LOAD] = new RLoadCommand(); + COMMANDS[VMOpCode.R_STORE] = new RStoreCommand(); + // endregion + // region Stack Control (0x0100-0x01FF) COMMANDS[VMOpCode.POP] = new PopCommand(); COMMANDS[VMOpCode.DUP] = new DupCommand();