update README.md

This commit is contained in:
wangxiang
2023-07-26 09:35:32 +08:00
parent d7fdc95cf9
commit 390cc1559a
5 changed files with 68 additions and 624 deletions

View File

@@ -529,10 +529,10 @@ public abstract class InstructionFactory {
return new RET(codeStream);
}
case Const.TABLESWITCH -> {
throw new Error("Not support JavaVM opcode TABLESWITCH");
return new TABLESWITCH(codeStream); // TODO
}
case Const.LOOKUPSWITCH -> {
throw new Error("Not support JavaVM opcode LOOKUPSWITCH");
return new LOOKUPSWITCH(codeStream); // TODO
}
case Const.IRETURN -> {
return new IRETURN(codeStream);
@@ -577,7 +577,7 @@ public abstract class InstructionFactory {
return new INVOKEINTERFACE(codeStream);
}
case Const.INVOKEDYNAMIC -> {
throw new Error("Not support JavaVM opcode INVOKEDYNAMIC");
return new INVOKEDYNAMIC(codeStream); // TODO
}
case Const.NEW -> {
return new NEW(codeStream);

View File

@@ -0,0 +1,19 @@
package haidnor.jvm.instruction.control;
import haidnor.jvm.instruction.Instruction;
import haidnor.jvm.runtime.Frame;
import haidnor.jvm.util.CodeStream;
public class LOOKUPSWITCH extends Instruction {
public LOOKUPSWITCH(CodeStream codeStream) {
super(codeStream);
throw new UnsupportedOperationException("LOOKUPSWITCH");
}
@Override
public void execute(Frame frame) {
throw new UnsupportedOperationException("LOOKUPSWITCH");
}
}

View File

@@ -0,0 +1,19 @@
package haidnor.jvm.instruction.control;
import haidnor.jvm.instruction.Instruction;
import haidnor.jvm.runtime.Frame;
import haidnor.jvm.util.CodeStream;
public class TABLESWITCH extends Instruction {
public TABLESWITCH(CodeStream codeStream) {
super(codeStream);
throw new UnsupportedOperationException("TABLESWITCH");
}
@Override
public void execute(Frame frame) {
throw new UnsupportedOperationException("TABLESWITCH");
}
}

View File

@@ -0,0 +1,21 @@
package haidnor.jvm.instruction.references;
import haidnor.jvm.instruction.Instruction;
import haidnor.jvm.runtime.Frame;
import haidnor.jvm.util.CodeStream;
import lombok.SneakyThrows;
public class INVOKEDYNAMIC extends Instruction {
public INVOKEDYNAMIC(CodeStream codeStream) {
super(codeStream);
throw new UnsupportedOperationException("INVOKEDYNAMIC");
}
@Override
@SneakyThrows
public void execute(Frame frame) {
throw new UnsupportedOperationException("INVOKEDYNAMIC");
}
}