!22 feat: SnowVM 扩容至 16位,并且支持更多指令

Merge pull request !22 from Luke/feature/refactor-opcode
This commit is contained in:
zhangxun 2025-06-28 06:37:15 +00:00 committed by Gitee
commit 5bd7dd3c9c
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
145 changed files with 2746 additions and 1793 deletions

View File

@ -3,7 +3,7 @@
<option name="ALTERNATIVE_JRE_PATH" value="graalvm-ce-23" /> <option name="ALTERNATIVE_JRE_PATH" value="graalvm-ce-23" />
<option name="MAIN_CLASS_NAME" value="org.jcnc.snow.cli.SnowCLI" /> <option name="MAIN_CLASS_NAME" value="org.jcnc.snow.cli.SnowCLI" />
<module name="Snow" /> <module name="Snow" />
<option name="PROGRAM_PARAMETERS" value="compile run -d playground/Demo1" /> <option name="PROGRAM_PARAMETERS" value="compile run -d playground/Demo1 -o target/Demo1" />
<extension name="coverage"> <extension name="coverage">
<pattern> <pattern>
<option name="PATTERN" value="org.jcnc.snow.compiler.parser.preprocessor.lexer.impl.api.*" /> <option name="PATTERN" value="org.jcnc.snow.compiler.parser.preprocessor.lexer.impl.api.*" />

View File

@ -3,7 +3,7 @@
<option name="ALTERNATIVE_JRE_PATH" value="graalvm-ce-23" /> <option name="ALTERNATIVE_JRE_PATH" value="graalvm-ce-23" />
<option name="MAIN_CLASS_NAME" value="org.jcnc.snow.cli.SnowCLI" /> <option name="MAIN_CLASS_NAME" value="org.jcnc.snow.cli.SnowCLI" />
<module name="Snow" /> <module name="Snow" />
<option name="PROGRAM_PARAMETERS" value="compile run -d playground/Demo10" /> <option name="PROGRAM_PARAMETERS" value="compile run -d playground/Demo10 -o target/Demo10" />
<extension name="coverage"> <extension name="coverage">
<pattern> <pattern>
<option name="PATTERN" value="org.jcnc.snow.compiler.parser.preprocessor.lexer.impl.api.*" /> <option name="PATTERN" value="org.jcnc.snow.compiler.parser.preprocessor.lexer.impl.api.*" />

View File

@ -3,7 +3,7 @@
<option name="ALTERNATIVE_JRE_PATH" value="graalvm-ce-23" /> <option name="ALTERNATIVE_JRE_PATH" value="graalvm-ce-23" />
<option name="MAIN_CLASS_NAME" value="org.jcnc.snow.cli.SnowCLI" /> <option name="MAIN_CLASS_NAME" value="org.jcnc.snow.cli.SnowCLI" />
<module name="Snow" /> <module name="Snow" />
<option name="PROGRAM_PARAMETERS" value="compile run -d playground/Demo2" /> <option name="PROGRAM_PARAMETERS" value="compile run -d playground/Demo2 -o target/Demo2" />
<extension name="coverage"> <extension name="coverage">
<pattern> <pattern>
<option name="PATTERN" value="org.jcnc.snow.compiler.parser.preprocessor.lexer.impl.api.*" /> <option name="PATTERN" value="org.jcnc.snow.compiler.parser.preprocessor.lexer.impl.api.*" />

View File

@ -3,7 +3,7 @@
<option name="ALTERNATIVE_JRE_PATH" value="graalvm-ce-23" /> <option name="ALTERNATIVE_JRE_PATH" value="graalvm-ce-23" />
<option name="MAIN_CLASS_NAME" value="org.jcnc.snow.cli.SnowCLI" /> <option name="MAIN_CLASS_NAME" value="org.jcnc.snow.cli.SnowCLI" />
<module name="Snow" /> <module name="Snow" />
<option name="PROGRAM_PARAMETERS" value="compile run -d playground/Demo3" /> <option name="PROGRAM_PARAMETERS" value="compile run -d playground/Demo3 -o target/Demo3" />
<extension name="coverage"> <extension name="coverage">
<pattern> <pattern>
<option name="PATTERN" value="org.jcnc.snow.compiler.parser.preprocessor.lexer.impl.api.*" /> <option name="PATTERN" value="org.jcnc.snow.compiler.parser.preprocessor.lexer.impl.api.*" />

View File

@ -3,7 +3,7 @@
<option name="ALTERNATIVE_JRE_PATH" value="graalvm-ce-23" /> <option name="ALTERNATIVE_JRE_PATH" value="graalvm-ce-23" />
<option name="MAIN_CLASS_NAME" value="org.jcnc.snow.cli.SnowCLI" /> <option name="MAIN_CLASS_NAME" value="org.jcnc.snow.cli.SnowCLI" />
<module name="Snow" /> <module name="Snow" />
<option name="PROGRAM_PARAMETERS" value="compile run -d playground/Demo4" /> <option name="PROGRAM_PARAMETERS" value="compile run -d playground/Demo4 -o target/Demo4" />
<extension name="coverage"> <extension name="coverage">
<pattern> <pattern>
<option name="PATTERN" value="org.jcnc.snow.compiler.parser.preprocessor.lexer.impl.api.*" /> <option name="PATTERN" value="org.jcnc.snow.compiler.parser.preprocessor.lexer.impl.api.*" />

View File

@ -3,7 +3,7 @@
<option name="ALTERNATIVE_JRE_PATH" value="graalvm-ce-23" /> <option name="ALTERNATIVE_JRE_PATH" value="graalvm-ce-23" />
<option name="MAIN_CLASS_NAME" value="org.jcnc.snow.cli.SnowCLI" /> <option name="MAIN_CLASS_NAME" value="org.jcnc.snow.cli.SnowCLI" />
<module name="Snow" /> <module name="Snow" />
<option name="PROGRAM_PARAMETERS" value="compile run -d playground/Demo5" /> <option name="PROGRAM_PARAMETERS" value="compile run -d playground/Demo5 -o target/Demo5" />
<extension name="coverage"> <extension name="coverage">
<pattern> <pattern>
<option name="PATTERN" value="org.jcnc.snow.compiler.parser.preprocessor.lexer.impl.api.*" /> <option name="PATTERN" value="org.jcnc.snow.compiler.parser.preprocessor.lexer.impl.api.*" />

View File

@ -3,7 +3,7 @@
<option name="ALTERNATIVE_JRE_PATH" value="graalvm-ce-23" /> <option name="ALTERNATIVE_JRE_PATH" value="graalvm-ce-23" />
<option name="MAIN_CLASS_NAME" value="org.jcnc.snow.cli.SnowCLI" /> <option name="MAIN_CLASS_NAME" value="org.jcnc.snow.cli.SnowCLI" />
<module name="Snow" /> <module name="Snow" />
<option name="PROGRAM_PARAMETERS" value="compile run -d playground/Demo6" /> <option name="PROGRAM_PARAMETERS" value="compile run -d playground/Demo6 -o target/Demo6" />
<extension name="coverage"> <extension name="coverage">
<pattern> <pattern>
<option name="PATTERN" value="org.jcnc.snow.compiler.parser.preprocessor.lexer.impl.api.*" /> <option name="PATTERN" value="org.jcnc.snow.compiler.parser.preprocessor.lexer.impl.api.*" />

View File

@ -3,7 +3,7 @@
<option name="ALTERNATIVE_JRE_PATH" value="graalvm-ce-23" /> <option name="ALTERNATIVE_JRE_PATH" value="graalvm-ce-23" />
<option name="MAIN_CLASS_NAME" value="org.jcnc.snow.cli.SnowCLI" /> <option name="MAIN_CLASS_NAME" value="org.jcnc.snow.cli.SnowCLI" />
<module name="Snow" /> <module name="Snow" />
<option name="PROGRAM_PARAMETERS" value="compile run -d playground/Demo7" /> <option name="PROGRAM_PARAMETERS" value="compile run -d playground/Demo7 -o target/Demo7" />
<extension name="coverage"> <extension name="coverage">
<pattern> <pattern>
<option name="PATTERN" value="org.jcnc.snow.compiler.parser.preprocessor.lexer.impl.api.*" /> <option name="PATTERN" value="org.jcnc.snow.compiler.parser.preprocessor.lexer.impl.api.*" />

View File

@ -3,7 +3,7 @@
<option name="ALTERNATIVE_JRE_PATH" value="graalvm-ce-23" /> <option name="ALTERNATIVE_JRE_PATH" value="graalvm-ce-23" />
<option name="MAIN_CLASS_NAME" value="org.jcnc.snow.cli.SnowCLI" /> <option name="MAIN_CLASS_NAME" value="org.jcnc.snow.cli.SnowCLI" />
<module name="Snow" /> <module name="Snow" />
<option name="PROGRAM_PARAMETERS" value="compile run -d playground/Demo8" /> <option name="PROGRAM_PARAMETERS" value="compile run -d playground/Demo8 -o target/Demo8" />
<extension name="coverage"> <extension name="coverage">
<pattern> <pattern>
<option name="PATTERN" value="org.jcnc.snow.compiler.parser.preprocessor.lexer.impl.api.*" /> <option name="PATTERN" value="org.jcnc.snow.compiler.parser.preprocessor.lexer.impl.api.*" />

View File

@ -3,7 +3,7 @@
<option name="ALTERNATIVE_JRE_PATH" value="graalvm-ce-23" /> <option name="ALTERNATIVE_JRE_PATH" value="graalvm-ce-23" />
<option name="MAIN_CLASS_NAME" value="org.jcnc.snow.cli.SnowCLI" /> <option name="MAIN_CLASS_NAME" value="org.jcnc.snow.cli.SnowCLI" />
<module name="Snow" /> <module name="Snow" />
<option name="PROGRAM_PARAMETERS" value="compile run -d playground/Demo9" /> <option name="PROGRAM_PARAMETERS" value="compile run -d playground/Demo9 -o target/Demo9" />
<extension name="coverage"> <extension name="coverage">
<pattern> <pattern>
<option name="PATTERN" value="org.jcnc.snow.compiler.parser.preprocessor.lexer.impl.api.*" /> <option name="PATTERN" value="org.jcnc.snow.compiler.parser.preprocessor.lexer.impl.api.*" />

View File

@ -94,18 +94,18 @@ public final class OpHelper {
map.put("L_OR", Integer.toString(VMOpCode.L_OR)); map.put("L_OR", Integer.toString(VMOpCode.L_OR));
map.put("L_XOR", Integer.toString(VMOpCode.L_XOR)); map.put("L_XOR", Integer.toString(VMOpCode.L_XOR));
map.put("JUMP", Integer.toString(VMOpCode.JUMP)); map.put("JUMP", Integer.toString(VMOpCode.JUMP));
map.put("IC_E", Integer.toString(VMOpCode.IC_E)); map.put("IC_E", Integer.toString(VMOpCode.I_CE));
map.put("IC_NE", Integer.toString(VMOpCode.IC_NE)); map.put("IC_NE", Integer.toString(VMOpCode.I_CNE));
map.put("IC_G", Integer.toString(VMOpCode.IC_G)); map.put("IC_G", Integer.toString(VMOpCode.I_CG));
map.put("IC_GE", Integer.toString(VMOpCode.IC_GE)); map.put("IC_GE", Integer.toString(VMOpCode.I_CGE));
map.put("IC_L", Integer.toString(VMOpCode.IC_L)); map.put("IC_L", Integer.toString(VMOpCode.I_CL));
map.put("IC_LE", Integer.toString(VMOpCode.IC_LE)); map.put("IC_LE", Integer.toString(VMOpCode.I_CLE));
map.put("LC_E", Integer.toString(VMOpCode.LC_E)); map.put("LC_E", Integer.toString(VMOpCode.L_CE));
map.put("LC_NE", Integer.toString(VMOpCode.LC_NE)); map.put("LC_NE", Integer.toString(VMOpCode.L_CNE));
map.put("LC_G", Integer.toString(VMOpCode.LC_G)); map.put("LC_G", Integer.toString(VMOpCode.L_CG));
map.put("LC_GE", Integer.toString(VMOpCode.LC_GE)); map.put("LC_GE", Integer.toString(VMOpCode.L_CGE));
map.put("LC_L", Integer.toString(VMOpCode.LC_L)); map.put("LC_L", Integer.toString(VMOpCode.L_CL));
map.put("LC_LE", Integer.toString(VMOpCode.LC_LE)); map.put("LC_LE", Integer.toString(VMOpCode.L_CLE));
map.put("I_PUSH", Integer.toString(VMOpCode.I_PUSH)); map.put("I_PUSH", Integer.toString(VMOpCode.I_PUSH));
map.put("L_PUSH", Integer.toString(VMOpCode.L_PUSH)); map.put("L_PUSH", Integer.toString(VMOpCode.L_PUSH));
map.put("S_PUSH", Integer.toString(VMOpCode.S_PUSH)); map.put("S_PUSH", Integer.toString(VMOpCode.S_PUSH));

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.function; package org.jcnc.snow.vm.commands.flow.control;
import org.jcnc.snow.vm.engine.VMMode; import org.jcnc.snow.vm.engine.VMMode;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.control.all; package org.jcnc.snow.vm.commands.flow.control;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.utils.LoggingUtils; import org.jcnc.snow.vm.utils.LoggingUtils;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.function; package org.jcnc.snow.vm.commands.flow.control;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.*; import org.jcnc.snow.vm.module.*;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.memory.all; package org.jcnc.snow.vm.commands.register.control;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.stack.all; package org.jcnc.snow.vm.commands.stack.control;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.stack.all; package org.jcnc.snow.vm.commands.stack.control;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.stack.all; package org.jcnc.snow.vm.commands.stack.control;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.vm; package org.jcnc.snow.vm.commands.system.control;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.utils.LoggingUtils; import org.jcnc.snow.vm.utils.LoggingUtils;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.arithmetic.byte8; package org.jcnc.snow.vm.commands.type.control.byte8;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -0,0 +1,56 @@
package org.jcnc.snow.vm.commands.type.control.byte8;
import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack;
import org.jcnc.snow.vm.module.LocalVariableStore;
import org.jcnc.snow.vm.module.OperandStack;
/**
* The BAndCommand class implements the {@link Command} interface and represents the byte8 bitwise AND (`&`) operation command.
* This class performs a byte8 bitwise AND operation in the virtual machine by popping the top two values from the stack,
* computing their byte8 bitwise AND operation, and then pushing the result back onto the stack. It is a basic operation command within the virtual machine.
*
* <p>Specific behavior:</p>
* <ul>
* <li>Pops two operands from the virtual machine stack.</li>
* <li>Performs the byte8 bitwise AND (`&`) operation.</li>
* <li>Pushes the result back onto the virtual machine stack.</li>
* </ul>
*/
public class BAndCommand implements Command {
/**
* Default constructor for creating an instance of {@code BAndCommand}.
* This constructor is empty as no specific initialization is required.
*/
public BAndCommand() {
// Empty constructor
}
/**
* Executes the virtual machine instruction's operation.
*
* @param parts The array of instruction parameters, which usually includes the operator and related arguments.
* @param currentPC The current program counter-value, indicating the address of the instruction being executed.
* @param operandStack The virtual machine's operand stack manager, responsible for pushing and popping values.
* @param localVariableStore The local variable store, typically used to manage method-local variables.
* @param callStack The virtual machine's call stack, used for managing method calls and returns.
* @return The updated program counter-value, typically `currentPC + 1` unless a control flow instruction is executed.
* @throws IllegalStateException if there are not enough operands on the stack to perform the operation.
*/
@Override
public int execute(String[] parts, int currentPC, OperandStack operandStack, LocalVariableStore localVariableStore, CallStack callStack) {
// Ensure the stack has at least two operands
if (operandStack.size() < 2) {
throw new IllegalStateException("Not enough operands on the stack for BAND operation.");
}
// Pop the top two operands from the stack
final byte b = (byte) operandStack.pop();
final byte a = (byte) operandStack.pop();
// Perform the byte8 bitwise AND operation and push the result back onto the stack
operandStack.push((byte)(a & b));
return currentPC + 1;
}
}

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.control.byte8; package org.jcnc.snow.vm.commands.type.control.byte8;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.control.byte8; package org.jcnc.snow.vm.commands.type.control.byte8;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.control.byte8; package org.jcnc.snow.vm.commands.type.control.byte8;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.control.byte8; package org.jcnc.snow.vm.commands.type.control.byte8;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.control.byte8; package org.jcnc.snow.vm.commands.type.control.byte8;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.control.byte8; package org.jcnc.snow.vm.commands.type.control.byte8;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.arithmetic.byte8; package org.jcnc.snow.vm.commands.type.control.byte8;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.arithmetic.byte8; package org.jcnc.snow.vm.commands.type.control.byte8;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.memory.byte8; package org.jcnc.snow.vm.commands.type.control.byte8;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.arithmetic.byte8; package org.jcnc.snow.vm.commands.type.control.byte8;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.arithmetic.byte8; package org.jcnc.snow.vm.commands.type.control.byte8;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.arithmetic.byte8; package org.jcnc.snow.vm.commands.type.control.byte8;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -0,0 +1,56 @@
package org.jcnc.snow.vm.commands.type.control.byte8;
import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack;
import org.jcnc.snow.vm.module.LocalVariableStore;
import org.jcnc.snow.vm.module.OperandStack;
/**
* The {@code BOrCommand} class implements the {@link Command} interface and represents the byte8 bitwise OR (`|`) operation command.
* This class performs a byte8 bitwise OR operation in the virtual machine by popping the top two values from the stack,
* computing their OR, and then pushing the result back onto the stack. It is a basic operation command within the virtual machine.
*
* <p><b>Operation details:</b></p>
* <ul>
* <li>Pops two operands from the virtual machine stack.</li>
* <li>Performs the byte8 bitwise OR (`|`) operation.</li>
* <li>Pushes the result back onto the virtual machine stack.</li>
* </ul>
*/
public class BOrCommand implements Command {
/**
* Default constructor for creating an instance of {@code BOrCommand}.
* This constructor is empty as no specific initialization is required.
*/
public BOrCommand() {
// Empty constructor
}
/**
* Executes the virtual machine instruction's operation.
*
* @param parts The array of instruction parameters, which usually includes the operator and related arguments.
* @param currentPC The current program counter-value, indicating the address of the instruction being executed.
* @param operandStack The virtual machine's operand stack manager, responsible for performing stack operations.
* @param localVariableStore The local variable store, typically used to manage method-local variables.
* @param callStack The virtual machine's call stack, which keeps track of method invocations.
* @return The updated program counter-value, typically {@code currentPC + 1}, unless a control flow instruction is executed.
* @throws IllegalStateException if there are not enough operands on the stack to perform the operation.
*/
@Override
public int execute(String[] parts, int currentPC, OperandStack operandStack, LocalVariableStore localVariableStore, CallStack callStack) {
// Ensure the stack has at least two operands
if (operandStack.size() < 2) {
throw new IllegalStateException("Not enough operands on the stack for BOR operation.");
}
// Pop the top two operands from the stack
final byte b = (byte) operandStack.pop();
final byte a = (byte) operandStack.pop();
// Perform the byte8 bitwise OR operation and push the result back onto the stack
operandStack.push((byte)(a | b));
return currentPC + 1;
}
}

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.stack.byte8; package org.jcnc.snow.vm.commands.type.control.byte8;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.memory.byte8; package org.jcnc.snow.vm.commands.type.control.byte8;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.arithmetic.byte8; package org.jcnc.snow.vm.commands.type.control.byte8;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -0,0 +1,56 @@
package org.jcnc.snow.vm.commands.type.control.byte8;
import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack;
import org.jcnc.snow.vm.module.LocalVariableStore;
import org.jcnc.snow.vm.module.OperandStack;
/**
* The {@code BXorCommand} class implements the {@link Command} interface and represents the byte8 bitwise XOR (`^`) operation command.
* This class performs a byte8 bitwise XOR operation in the virtual machine by popping the top two values from the stack,
* computing their XOR, and then pushing the result back onto the stack. It is a basic operation command within the virtual machine.
*
* <p><b>Operation details:</b></p>
* <ul>
* <li>Pops two operands from the virtual machine stack.</li>
* <li>Performs the byte8 bitwise XOR (`^`) operation.</li>
* <li>Pushes the result back onto the virtual machine stack.</li>
* </ul>
*/
public class BXorCommand implements Command {
/**
* Default constructor for creating an instance of {@code BXorCommand}.
* This constructor is empty as no specific initialization is required.
*/
public BXorCommand() {
// Empty constructor
}
/**
* Executes the virtual machine instruction's operation.
*
* @param parts The array of instruction parameters, which usually includes the operator and related arguments.
* @param currentPC The current program counter-value, indicating the address of the instruction being executed.
* @param operandStack The virtual machine's operand stack manager, responsible for performing stack operations.
* @param localVariableStore The local variable store, typically used to manage method-local variables.
* @param callStack The virtual machine's call stack, which keeps track of method invocations.
* @return The updated program counter-value, typically {@code currentPC + 1}, unless a control flow instruction is executed.
* @throws IllegalStateException if there are not enough operands on the stack to perform the operation.
*/
@Override
public int execute(String[] parts, int currentPC, OperandStack operandStack, LocalVariableStore localVariableStore, CallStack callStack) {
// Ensure the stack has at least two operands
if (operandStack.size() < 2) {
throw new IllegalStateException("Not enough operands on the stack for BXOR operation.");
}
// Pop the top two operands from the stack
final byte b = (byte) operandStack.pop();
final byte a = (byte) operandStack.pop();
// Perform the byte8 bitwise XOR operation and push the result back onto the stack
operandStack.push((byte)(a ^ b));
return currentPC + 1;
}
}

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.arithmetic.double64; package org.jcnc.snow.vm.commands.type.control.double64;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.control.double64; package org.jcnc.snow.vm.commands.type.control.double64;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.control.double64; package org.jcnc.snow.vm.commands.type.control.double64;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.control.double64; package org.jcnc.snow.vm.commands.type.control.double64;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.control.double64; package org.jcnc.snow.vm.commands.type.control.double64;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.control.double64; package org.jcnc.snow.vm.commands.type.control.double64;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.control.double64; package org.jcnc.snow.vm.commands.type.control.double64;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.arithmetic.double64; package org.jcnc.snow.vm.commands.type.control.double64;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.arithmetic.double64; package org.jcnc.snow.vm.commands.type.control.double64;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.memory.double64; package org.jcnc.snow.vm.commands.type.control.double64;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.arithmetic.double64; package org.jcnc.snow.vm.commands.type.control.double64;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.arithmetic.double64; package org.jcnc.snow.vm.commands.type.control.double64;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.arithmetic.double64; package org.jcnc.snow.vm.commands.type.control.double64;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.stack.double64; package org.jcnc.snow.vm.commands.type.control.double64;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.memory.double64; package org.jcnc.snow.vm.commands.type.control.double64;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.arithmetic.double64; package org.jcnc.snow.vm.commands.type.control.double64;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.arithmetic.float32; package org.jcnc.snow.vm.commands.type.control.float32;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.control.float32; package org.jcnc.snow.vm.commands.type.control.float32;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.control.float32; package org.jcnc.snow.vm.commands.type.control.float32;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.control.float32; package org.jcnc.snow.vm.commands.type.control.float32;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.control.float32; package org.jcnc.snow.vm.commands.type.control.float32;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.control.float32; package org.jcnc.snow.vm.commands.type.control.float32;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.control.float32; package org.jcnc.snow.vm.commands.type.control.float32;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.arithmetic.float32; package org.jcnc.snow.vm.commands.type.control.float32;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.arithmetic.float32; package org.jcnc.snow.vm.commands.type.control.float32;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.memory.float32; package org.jcnc.snow.vm.commands.type.control.float32;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.arithmetic.float32; package org.jcnc.snow.vm.commands.type.control.float32;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.arithmetic.float32; package org.jcnc.snow.vm.commands.type.control.float32;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.arithmetic.float32; package org.jcnc.snow.vm.commands.type.control.float32;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.stack.float32; package org.jcnc.snow.vm.commands.type.control.float32;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.memory.float32; package org.jcnc.snow.vm.commands.type.control.float32;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.arithmetic.float32; package org.jcnc.snow.vm.commands.type.control.float32;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.arithmetic.int32; package org.jcnc.snow.vm.commands.type.control.int32;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.bitwise.int32; package org.jcnc.snow.vm.commands.type.control.int32;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.control.int32; package org.jcnc.snow.vm.commands.type.control.int32;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.utils.LoggingUtils; import org.jcnc.snow.vm.utils.LoggingUtils;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.control.int32; package org.jcnc.snow.vm.commands.type.control.int32;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.utils.LoggingUtils; import org.jcnc.snow.vm.utils.LoggingUtils;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.control.int32; package org.jcnc.snow.vm.commands.type.control.int32;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.utils.LoggingUtils; import org.jcnc.snow.vm.utils.LoggingUtils;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.control.int32; package org.jcnc.snow.vm.commands.type.control.int32;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.utils.LoggingUtils; import org.jcnc.snow.vm.utils.LoggingUtils;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.control.int32; package org.jcnc.snow.vm.commands.type.control.int32;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.utils.LoggingUtils; import org.jcnc.snow.vm.utils.LoggingUtils;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.control.int32; package org.jcnc.snow.vm.commands.type.control.int32;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.utils.LoggingUtils; import org.jcnc.snow.vm.utils.LoggingUtils;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.arithmetic.int32; package org.jcnc.snow.vm.commands.type.control.int32;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.arithmetic.int32; package org.jcnc.snow.vm.commands.type.control.int32;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.memory.int32; package org.jcnc.snow.vm.commands.type.control.int32;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.arithmetic.int32; package org.jcnc.snow.vm.commands.type.control.int32;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.arithmetic.int32; package org.jcnc.snow.vm.commands.type.control.int32;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.arithmetic.int32; package org.jcnc.snow.vm.commands.type.control.int32;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.bitwise.int32; package org.jcnc.snow.vm.commands.type.control.int32;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.stack.int32; package org.jcnc.snow.vm.commands.type.control.int32;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.memory.int32; package org.jcnc.snow.vm.commands.type.control.int32;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.arithmetic.int32; package org.jcnc.snow.vm.commands.type.control.int32;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.bitwise.int32; package org.jcnc.snow.vm.commands.type.control.int32;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.arithmetic.long64; package org.jcnc.snow.vm.commands.type.control.long64;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.bitwise.long64; package org.jcnc.snow.vm.commands.type.control.long64;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.control.long64; package org.jcnc.snow.vm.commands.type.control.long64;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.control.long64; package org.jcnc.snow.vm.commands.type.control.long64;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.control.long64; package org.jcnc.snow.vm.commands.type.control.long64;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.control.long64; package org.jcnc.snow.vm.commands.type.control.long64;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.control.long64; package org.jcnc.snow.vm.commands.type.control.long64;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.control.long64; package org.jcnc.snow.vm.commands.type.control.long64;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.arithmetic.long64; package org.jcnc.snow.vm.commands.type.control.long64;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.arithmetic.long64; package org.jcnc.snow.vm.commands.type.control.long64;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

View File

@ -1,4 +1,4 @@
package org.jcnc.snow.vm.commands.memory.long64; package org.jcnc.snow.vm.commands.type.control.long64;
import org.jcnc.snow.vm.interfaces.Command; import org.jcnc.snow.vm.interfaces.Command;
import org.jcnc.snow.vm.module.CallStack; import org.jcnc.snow.vm.module.CallStack;

Some files were not shown because too many files have changed in this diff Show More