guxingke / mini-jvm

使用 JDK8 实现 JVM(Java Virtual Machine)

Home Page:https://jvm.guxingke.com/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

执行同一个程序, 基于 mini-jvm 的不报错, 基于 mini-jvm 的 mini-jvm 报错

970655147 opened this issue · comments

执行同一个程序, 基于 mini-jvm 的不报错, 基于 mini-jvm 的 mini-jvm 报错
master:mini-jvm jerry$ javac Test06LoadRefEachOther.java
master:mini-jvm jerry$ java -jar jvm-core/target/mini-jvm.jar -cp . Test06LoadRefEachOther
1
1
master:mini-jvm jerry$ java -jar jvm-core/target/mini-jvm.jar -jar jvm-core/target/mini-jvm.jar -cp . Test06LoadRefEachOther
java.lang.ArrayIndexOutOfBoundsException: 256
at com.gxk.jvm.instruction.AAStoreInst.execute(AAStoreInst.java:13)
at com.gxk.jvm.interpret.Interpreter.loop(Interpreter.java:119)
at com.gxk.jvm.interpret.Interpreter.doInterpret(Interpreter.java:75)
at com.gxk.jvm.interpret.Interpreter.interpret(Interpreter.java:45)
at com.gxk.jvm.VirtualMachine.run(VirtualMachine.java:74)
at com.gxk.jvm.Main.main(Main.java:23)
com/gxk/jvm/instruction/CAStoreInst.execute(CAStoreInst.java:13)
Exception in thread "main" java.lang.IllegalStateException
at com.gxk.jvm.interpret.Interpreter.loop(Interpreter.java:126)
at com.gxk.jvm.interpret.Interpreter.doInterpret(Interpreter.java:75)
at com.gxk.jvm.interpret.Interpreter.interpret(Interpreter.java:45)
at com.gxk.jvm.VirtualMachine.run(VirtualMachine.java:74)
at com.gxk.jvm.Main.main(Main.java:23)
master:mini-jvm jerry$

测试用例如下
/**

// Test06LoadRefEachOther
// refer : https://hllvm-group.iteye.com/group/topic/38847
public static void main(String[] args) {

System.out.println(Clazz1.x1);

// System.out.println(Clazz2.x1);
System.out.println(Clazz2.x2);

}

/**

/**

}