4
4
import org .xukai .jvm .clz .ClassFile ;
5
5
import org .xukai .jvm .constant .ConstantInfo ;
6
6
import org .xukai .jvm .constant .ConstantPool ;
7
+ import org .xukai .jvm .engine .ExecutionResult ;
8
+ import org .xukai .jvm .engine .StackFrame ;
7
9
8
10
import java .util .HashMap ;
9
11
import java .util .Map ;
@@ -14,7 +16,42 @@ public abstract class ByteCodeCommand {
14
16
String opCode ;
15
17
ClassFile clzFile ;
16
18
private int offset ;
17
-
19
+
20
+ public static final String aconst_null = "01" ;
21
+ public static final String new_object = "BB" ;
22
+ public static final String lstore = "37" ;
23
+ public static final String invokespecial = "B7" ;
24
+ public static final String invokevirtual = "B6" ;
25
+ public static final String getfield = "B4" ;
26
+ public static final String putfield = "B5" ;
27
+ public static final String getstatic = "B2" ;
28
+ public static final String ldc = "12" ;
29
+ public static final String dup = "59" ;
30
+ public static final String bipush = "10" ;
31
+ public static final String aload_0 = "2A" ;
32
+ public static final String aload_1 = "2B" ;
33
+ public static final String aload_2 = "2C" ;
34
+ public static final String iload = "15" ;
35
+ public static final String iload_1 = "1B" ;
36
+ public static final String iload_2 = "1C" ;
37
+ public static final String iload_3 = "1D" ;
38
+ public static final String fload_3 = "25" ;
39
+
40
+ public static final String voidreturn = "B1" ;
41
+ public static final String ireturn = "AC" ;
42
+ public static final String freturn = "AE" ;
43
+
44
+ public static final String astore_1 = "4C" ;
45
+ public static final String if_icmp_ge = "A2" ;
46
+ public static final String if_icmple = "A4" ;
47
+ public static final String goto_no_condition = "A7" ;
48
+ public static final String iconst_0 = "03" ;
49
+ public static final String iconst_1 = "04" ;
50
+ public static final String istore_1 = "3C" ;
51
+ public static final String istore_2 = "3D" ;
52
+ public static final String iadd = "60" ;
53
+ public static final String iinc = "84" ;
54
+
18
55
private static Map <String ,String > codeMap = new HashMap <String ,String >();
19
56
20
57
static {
@@ -125,5 +162,5 @@ public String getReadableCodeText(){
125
162
return txt ;
126
163
}
127
164
128
- // public abstract void execute(StackFrame frame,FrameResult result);
165
+ public abstract void execute (StackFrame frame , ExecutionResult result );
129
166
}
0 commit comments