feat: 新增引用控制命令

- 添加 RPushCommand、RLoadCommand 和 RStoreCommand 三个引用控制命令类
- 在 CommandFactory 中注册这三个命令
This commit is contained in:
Luke 2025-07-21 16:48:50 +08:00
parent c6067a8758
commit 2cb428ed9b

View File

@ -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();