This commit is contained in:
wangxiang
2023-10-26 10:21:43 +08:00
parent c0ba8421a1
commit a87e2e2958
209 changed files with 217 additions and 218 deletions

View File

@@ -5,7 +5,7 @@ import haidnor.jvm.classloader.JVMClassLoader;
import haidnor.jvm.core.JavaExecutionEngine;
import haidnor.jvm.rtda.Metaspace;
import haidnor.jvm.runtime.JVMThread;
import haidnor.jvm.util.JVMThreadHolder;
import haidnor.jvm.core.JVMThreadHolder;
import lombok.SneakyThrows;
import org.apache.commons.cli.*;
@@ -84,7 +84,8 @@ public class HaidnorJVM {
public static void testRun(Class<?> mainClass) {
JVMThreadHolder.set(new JVMThread());
JVMClassLoader bootClassLoader = new JVMClassLoader("ApplicationClassLoader");
JavaClass mainMeteKlass = bootClassLoader.loadWithClassPath(mainClass.getName().replace('.', '/'));
JavaExecutionEngine.callMain(mainMeteKlass);
JavaClass javaClass = bootClassLoader.loadWithClassPath(mainClass.getName().replace('.', '/'));
JavaExecutionEngine.callMain(javaClass);
}
}

View File

@@ -1,4 +1,4 @@
package haidnor.jvm.util;
package haidnor.jvm.core;
import haidnor.jvm.bcel.classfile.Code;

View File

@@ -1,4 +1,4 @@
package haidnor.jvm.util;
package haidnor.jvm.core;
import haidnor.jvm.runtime.JVMThread;

View File

@@ -9,8 +9,6 @@ import haidnor.jvm.instruction.control.ReturnableInstruction;
import haidnor.jvm.runtime.Frame;
import haidnor.jvm.runtime.JVMThread;
import haidnor.jvm.runtime.StackValue;
import haidnor.jvm.util.CodeStream;
import haidnor.jvm.util.JVMThreadHolder;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;

View File

@@ -1,7 +1,7 @@
package haidnor.jvm.instruction;
import haidnor.jvm.runtime.Frame;
import haidnor.jvm.util.CodeStream;
import haidnor.jvm.core.CodeStream;
import lombok.Getter;
import lombok.Setter;

View File

@@ -11,7 +11,7 @@ import haidnor.jvm.instruction.math.*;
import haidnor.jvm.instruction.references.*;
import haidnor.jvm.instruction.stack.*;
import haidnor.jvm.instruction.stores.*;
import haidnor.jvm.util.CodeStream;
import haidnor.jvm.core.CodeStream;
public abstract class InstructionFactory {

View File

@@ -2,7 +2,7 @@ package haidnor.jvm.instruction.comparisons;
import haidnor.jvm.instruction.Instruction;
import haidnor.jvm.runtime.Frame;
import haidnor.jvm.util.CodeStream;
import haidnor.jvm.core.CodeStream;
/**
* @author wang xiang

View File

@@ -2,7 +2,7 @@ package haidnor.jvm.instruction.comparisons;
import haidnor.jvm.instruction.Instruction;
import haidnor.jvm.runtime.Frame;
import haidnor.jvm.util.CodeStream;
import haidnor.jvm.core.CodeStream;
/**
* @author wang xiang

View File

@@ -2,7 +2,7 @@ package haidnor.jvm.instruction.comparisons;
import haidnor.jvm.instruction.Instruction;
import haidnor.jvm.runtime.Frame;
import haidnor.jvm.util.CodeStream;
import haidnor.jvm.core.CodeStream;
/**
* @author wang xiang
*/

View File

@@ -2,7 +2,7 @@ package haidnor.jvm.instruction.comparisons;
import haidnor.jvm.instruction.Instruction;
import haidnor.jvm.runtime.Frame;
import haidnor.jvm.util.CodeStream;
import haidnor.jvm.core.CodeStream;
/**
* @author wang xiang
*/

View File

@@ -3,7 +3,7 @@ package haidnor.jvm.instruction.comparisons;
import haidnor.jvm.instruction.Instruction;
import haidnor.jvm.runtime.Frame;
import haidnor.jvm.runtime.StackValue;
import haidnor.jvm.util.CodeStream;
import haidnor.jvm.core.CodeStream;
public class IFEQ extends Instruction {

View File

@@ -3,7 +3,7 @@ package haidnor.jvm.instruction.comparisons;
import haidnor.jvm.instruction.Instruction;
import haidnor.jvm.runtime.Frame;
import haidnor.jvm.runtime.StackValue;
import haidnor.jvm.util.CodeStream;
import haidnor.jvm.core.CodeStream;
public class IFGE extends Instruction {
/**

View File

@@ -3,7 +3,7 @@ package haidnor.jvm.instruction.comparisons;
import haidnor.jvm.instruction.Instruction;
import haidnor.jvm.runtime.Frame;
import haidnor.jvm.runtime.StackValue;
import haidnor.jvm.util.CodeStream;
import haidnor.jvm.core.CodeStream;
public class IFGT extends Instruction {
/**

View File

@@ -3,7 +3,7 @@ package haidnor.jvm.instruction.comparisons;
import haidnor.jvm.instruction.Instruction;
import haidnor.jvm.runtime.Frame;
import haidnor.jvm.runtime.StackValue;
import haidnor.jvm.util.CodeStream;
import haidnor.jvm.core.CodeStream;
public class IFLE extends Instruction {
/**

View File

@@ -3,7 +3,7 @@ package haidnor.jvm.instruction.comparisons;
import haidnor.jvm.instruction.Instruction;
import haidnor.jvm.runtime.Frame;
import haidnor.jvm.runtime.StackValue;
import haidnor.jvm.util.CodeStream;
import haidnor.jvm.core.CodeStream;
public class IFLT extends Instruction {
/**

View File

@@ -3,7 +3,7 @@ package haidnor.jvm.instruction.comparisons;
import haidnor.jvm.instruction.Instruction;
import haidnor.jvm.runtime.Frame;
import haidnor.jvm.runtime.StackValue;
import haidnor.jvm.util.CodeStream;
import haidnor.jvm.core.CodeStream;
public class IFNE extends Instruction {
/**

View File

@@ -2,7 +2,7 @@ package haidnor.jvm.instruction.comparisons;
import haidnor.jvm.instruction.Instruction;
import haidnor.jvm.runtime.Frame;
import haidnor.jvm.util.CodeStream;
import haidnor.jvm.core.CodeStream;
/**
* @author wang xiang
*/

View File

@@ -2,7 +2,7 @@ package haidnor.jvm.instruction.comparisons;
import haidnor.jvm.instruction.Instruction;
import haidnor.jvm.runtime.Frame;
import haidnor.jvm.util.CodeStream;
import haidnor.jvm.core.CodeStream;
/**
* @author wang xiang
*/

View File

@@ -3,7 +3,7 @@ package haidnor.jvm.instruction.comparisons;
import haidnor.jvm.instruction.Instruction;
import haidnor.jvm.runtime.Frame;
import haidnor.jvm.runtime.StackValue;
import haidnor.jvm.util.CodeStream;
import haidnor.jvm.core.CodeStream;
/**
* Java VM opcode.

View File

@@ -3,7 +3,7 @@ package haidnor.jvm.instruction.comparisons;
import haidnor.jvm.instruction.Instruction;
import haidnor.jvm.runtime.Frame;
import haidnor.jvm.runtime.StackValue;
import haidnor.jvm.util.CodeStream;
import haidnor.jvm.core.CodeStream;
/**
* Java VM opcode.

View File

@@ -3,7 +3,7 @@ package haidnor.jvm.instruction.comparisons;
import haidnor.jvm.instruction.Instruction;
import haidnor.jvm.runtime.Frame;
import haidnor.jvm.runtime.StackValue;
import haidnor.jvm.util.CodeStream;
import haidnor.jvm.core.CodeStream;
/**
* Java VM opcode.

View File

@@ -3,7 +3,7 @@ package haidnor.jvm.instruction.comparisons;
import haidnor.jvm.instruction.Instruction;
import haidnor.jvm.runtime.Frame;
import haidnor.jvm.runtime.StackValue;
import haidnor.jvm.util.CodeStream;
import haidnor.jvm.core.CodeStream;
/**
* Java VM opcode.

View File

@@ -3,7 +3,7 @@ package haidnor.jvm.instruction.comparisons;
import haidnor.jvm.instruction.Instruction;
import haidnor.jvm.runtime.Frame;
import haidnor.jvm.runtime.StackValue;
import haidnor.jvm.util.CodeStream;
import haidnor.jvm.core.CodeStream;
/**
* Java VM opcode.

View File

@@ -3,7 +3,7 @@ package haidnor.jvm.instruction.comparisons;
import haidnor.jvm.instruction.Instruction;
import haidnor.jvm.runtime.Frame;
import haidnor.jvm.runtime.StackValue;
import haidnor.jvm.util.CodeStream;
import haidnor.jvm.core.CodeStream;
/**
* Java VM opcode.

View File

@@ -2,7 +2,7 @@ package haidnor.jvm.instruction.comparisons;
import haidnor.jvm.instruction.Instruction;
import haidnor.jvm.runtime.Frame;
import haidnor.jvm.util.CodeStream;
import haidnor.jvm.core.CodeStream;
public class LCMP extends Instruction {

View File

@@ -4,7 +4,7 @@ import haidnor.jvm.bcel.Const;
import haidnor.jvm.instruction.Instruction;
import haidnor.jvm.runtime.Frame;
import haidnor.jvm.runtime.StackValue;
import haidnor.jvm.util.CodeStream;
import haidnor.jvm.core.CodeStream;
public class ACONST_NULL extends Instruction {

View File

@@ -3,7 +3,7 @@ package haidnor.jvm.instruction.constants;
import haidnor.jvm.instruction.Instruction;
import haidnor.jvm.runtime.Frame;
import haidnor.jvm.runtime.StackValue;
import haidnor.jvm.util.CodeStream;
import haidnor.jvm.core.CodeStream;
import haidnor.jvm.bcel.Const;
/**

View File

@@ -3,7 +3,7 @@ package haidnor.jvm.instruction.constants;
import haidnor.jvm.instruction.Instruction;
import haidnor.jvm.runtime.Frame;
import haidnor.jvm.runtime.StackValue;
import haidnor.jvm.util.CodeStream;
import haidnor.jvm.core.CodeStream;
import haidnor.jvm.bcel.Const;
/**

View File

@@ -3,7 +3,7 @@ package haidnor.jvm.instruction.constants;
import haidnor.jvm.instruction.Instruction;
import haidnor.jvm.runtime.Frame;
import haidnor.jvm.runtime.StackValue;
import haidnor.jvm.util.CodeStream;
import haidnor.jvm.core.CodeStream;
import haidnor.jvm.bcel.Const;
/**

View File

@@ -3,7 +3,7 @@ package haidnor.jvm.instruction.constants;
import haidnor.jvm.instruction.Instruction;
import haidnor.jvm.runtime.Frame;
import haidnor.jvm.runtime.StackValue;
import haidnor.jvm.util.CodeStream;
import haidnor.jvm.core.CodeStream;
import haidnor.jvm.bcel.Const;
/**

View File

@@ -3,7 +3,7 @@ package haidnor.jvm.instruction.constants;
import haidnor.jvm.instruction.Instruction;
import haidnor.jvm.runtime.Frame;
import haidnor.jvm.runtime.StackValue;
import haidnor.jvm.util.CodeStream;
import haidnor.jvm.core.CodeStream;
import haidnor.jvm.bcel.Const;
/**

View File

@@ -3,7 +3,7 @@ package haidnor.jvm.instruction.constants;
import haidnor.jvm.instruction.Instruction;
import haidnor.jvm.runtime.Frame;
import haidnor.jvm.runtime.StackValue;
import haidnor.jvm.util.CodeStream;
import haidnor.jvm.core.CodeStream;
import haidnor.jvm.bcel.Const;
/**

View File

@@ -3,7 +3,7 @@ package haidnor.jvm.instruction.constants;
import haidnor.jvm.instruction.Instruction;
import haidnor.jvm.runtime.Frame;
import haidnor.jvm.runtime.StackValue;
import haidnor.jvm.util.CodeStream;
import haidnor.jvm.core.CodeStream;
import haidnor.jvm.bcel.Const;
/**

View File

@@ -3,7 +3,7 @@ package haidnor.jvm.instruction.constants;
import haidnor.jvm.instruction.Instruction;
import haidnor.jvm.runtime.Frame;
import haidnor.jvm.runtime.StackValue;
import haidnor.jvm.util.CodeStream;
import haidnor.jvm.core.CodeStream;
import haidnor.jvm.bcel.Const;
/**

View File

@@ -3,7 +3,7 @@ package haidnor.jvm.instruction.constants;
import haidnor.jvm.instruction.Instruction;
import haidnor.jvm.runtime.Frame;
import haidnor.jvm.runtime.StackValue;
import haidnor.jvm.util.CodeStream;
import haidnor.jvm.core.CodeStream;
import haidnor.jvm.bcel.Const;
/**

View File

@@ -3,7 +3,7 @@ package haidnor.jvm.instruction.constants;
import haidnor.jvm.instruction.Instruction;
import haidnor.jvm.runtime.Frame;
import haidnor.jvm.runtime.StackValue;
import haidnor.jvm.util.CodeStream;
import haidnor.jvm.core.CodeStream;
import haidnor.jvm.bcel.Const;
/**

View File

@@ -3,7 +3,7 @@ package haidnor.jvm.instruction.constants;
import haidnor.jvm.instruction.Instruction;
import haidnor.jvm.runtime.Frame;
import haidnor.jvm.runtime.StackValue;
import haidnor.jvm.util.CodeStream;
import haidnor.jvm.core.CodeStream;
import haidnor.jvm.bcel.Const;
/**

View File

@@ -3,7 +3,7 @@ package haidnor.jvm.instruction.constants;
import haidnor.jvm.instruction.Instruction;
import haidnor.jvm.runtime.Frame;
import haidnor.jvm.runtime.StackValue;
import haidnor.jvm.util.CodeStream;
import haidnor.jvm.core.CodeStream;
import haidnor.jvm.bcel.Const;
/**

View File

@@ -3,7 +3,7 @@ package haidnor.jvm.instruction.constants;
import haidnor.jvm.instruction.Instruction;
import haidnor.jvm.runtime.Frame;
import haidnor.jvm.runtime.StackValue;
import haidnor.jvm.util.CodeStream;
import haidnor.jvm.core.CodeStream;
import haidnor.jvm.bcel.Const;
/**

View File

@@ -3,7 +3,7 @@ package haidnor.jvm.instruction.constants;
import haidnor.jvm.instruction.Instruction;
import haidnor.jvm.runtime.Frame;
import haidnor.jvm.runtime.StackValue;
import haidnor.jvm.util.CodeStream;
import haidnor.jvm.core.CodeStream;
import haidnor.jvm.bcel.Const;
/**

View File

@@ -5,7 +5,7 @@ import haidnor.jvm.bcel.classfile.*;
import haidnor.jvm.instruction.Instruction;
import haidnor.jvm.runtime.Frame;
import haidnor.jvm.runtime.StackValue;
import haidnor.jvm.util.CodeStream;
import haidnor.jvm.core.CodeStream;
import lombok.SneakyThrows;
/**

View File

@@ -8,7 +8,7 @@ import haidnor.jvm.bcel.classfile.ConstantPool;
import haidnor.jvm.instruction.Instruction;
import haidnor.jvm.runtime.Frame;
import haidnor.jvm.runtime.StackValue;
import haidnor.jvm.util.CodeStream;
import haidnor.jvm.core.CodeStream;
/**
* 将 long 或 double 型常量从常量池中推送至栈顶 (宽索引)

View File

@@ -5,7 +5,7 @@ import haidnor.jvm.bcel.classfile.*;
import haidnor.jvm.instruction.Instruction;
import haidnor.jvm.runtime.Frame;
import haidnor.jvm.runtime.StackValue;
import haidnor.jvm.util.CodeStream;
import haidnor.jvm.core.CodeStream;
import lombok.SneakyThrows;
/**

View File

@@ -2,7 +2,7 @@ package haidnor.jvm.instruction.constants;
import haidnor.jvm.instruction.Instruction;
import haidnor.jvm.runtime.Frame;
import haidnor.jvm.util.CodeStream;
import haidnor.jvm.core.CodeStream;
/**
* Java VM opcode.

View File

@@ -3,7 +3,7 @@ package haidnor.jvm.instruction.constants;
import haidnor.jvm.instruction.Instruction;
import haidnor.jvm.runtime.Frame;
import haidnor.jvm.runtime.StackValue;
import haidnor.jvm.util.CodeStream;
import haidnor.jvm.core.CodeStream;
import haidnor.jvm.bcel.Const;
/**

View File

@@ -2,8 +2,8 @@ package haidnor.jvm.instruction.control;
import haidnor.jvm.runtime.Frame;
import haidnor.jvm.runtime.StackValue;
import haidnor.jvm.util.CodeStream;
import haidnor.jvm.util.JVMThreadHolder;
import haidnor.jvm.core.CodeStream;
import haidnor.jvm.core.JVMThreadHolder;
public class ARETURN extends ReturnableInstruction {

View File

@@ -2,8 +2,8 @@ package haidnor.jvm.instruction.control;
import haidnor.jvm.runtime.Frame;
import haidnor.jvm.runtime.StackValue;
import haidnor.jvm.util.CodeStream;
import haidnor.jvm.util.JVMThreadHolder;
import haidnor.jvm.core.CodeStream;
import haidnor.jvm.core.JVMThreadHolder;
public class DRETURN extends ReturnableInstruction {

View File

@@ -2,8 +2,8 @@ package haidnor.jvm.instruction.control;
import haidnor.jvm.runtime.Frame;
import haidnor.jvm.runtime.StackValue;
import haidnor.jvm.util.CodeStream;
import haidnor.jvm.util.JVMThreadHolder;
import haidnor.jvm.core.CodeStream;
import haidnor.jvm.core.JVMThreadHolder;
public class FRETURN extends ReturnableInstruction {

View File

@@ -2,8 +2,8 @@ package haidnor.jvm.instruction.control;
import haidnor.jvm.runtime.Frame;
import haidnor.jvm.runtime.StackValue;
import haidnor.jvm.util.CodeStream;
import haidnor.jvm.util.JVMThreadHolder;
import haidnor.jvm.core.CodeStream;
import haidnor.jvm.core.JVMThreadHolder;
public class IRETURN extends ReturnableInstruction {

View File

@@ -2,7 +2,7 @@ package haidnor.jvm.instruction.control;
import haidnor.jvm.instruction.Instruction;
import haidnor.jvm.runtime.Frame;
import haidnor.jvm.util.CodeStream;
import haidnor.jvm.core.CodeStream;
public class LOOKUPSWITCH extends Instruction {

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