1 package serp.bytecode;
2
3
4
5
6
7
8
9
10
11 public interface Constants {
12
13 public static final int VALID_MAGIC = 0xcafebabe;
14
15
16 public static final int MAJOR_VERSION = 45;
17 public static final int MINOR_VERSION = 3;
18 public static final int MAJOR_VERSION_JAVA5 = 49;
19 public static final int MINOR_VERSION_JAVA5 = 0;
20
21
22 public static final int ACCESS_PUBLIC = 0x0001;
23 public static final int ACCESS_PRIVATE = 0x0002;
24 public static final int ACCESS_PROTECTED = 0x0004;
25 public static final int ACCESS_STATIC = 0x0008;
26 public static final int ACCESS_FINAL = 0x0010;
27 public static final int ACCESS_SUPER = 0x0020;
28 public static final int ACCESS_SYNCHRONIZED = 0x0020;
29 public static final int ACCESS_VOLATILE = 0x0040;
30 public static final int ACCESS_BRIDGE = 0x0040;
31 public static final int ACCESS_TRANSIENT = 0x0080;
32 public static final int ACCESS_VARARGS = 0x0080;
33 public static final int ACCESS_NATIVE = 0x0100;
34 public static final int ACCESS_INTERFACE = 0x0200;
35 public static final int ACCESS_ABSTRACT = 0x0400;
36 public static final int ACCESS_STRICT = 0x0800;
37 public static final int ACCESS_SYNTHETIC = 0x1000;
38 public static final int ACCESS_ANNOTATION = 0x2000;
39 public static final int ACCESS_ENUM = 0x4000;
40
41
42 public static final String ATTR_CODE = "Code";
43 public static final String ATTR_CONST = "ConstantValue";
44 public static final String ATTR_DEPRECATED = "Deprecated";
45 public static final String ATTR_EXCEPTIONS = "Exceptions";
46 public static final String ATTR_INNERCLASS = "InnerClasses";
47 public static final String ATTR_LINENUMBERS = "LineNumberTable";
48 public static final String ATTR_LOCALS = "LocalVariableTable";
49 public static final String ATTR_LOCAL_TYPES = "LocalVariableTypeTable";
50 public static final String ATTR_SOURCE = "SourceFile";
51 public static final String ATTR_SYNTHETIC = "Synthetic";
52 public static final String ATTR_UNKNOWN = "Unknown";
53 public static final String ATTR_ANNOTATIONS = "RuntimeInvisibleAnnotations";
54 public static final String ATTR_RUNTIME_ANNOTATIONS =
55 "RuntimeVisibleAnnotations";
56
57
58 public static final int NOP = 0;
59 public static final int ACONSTNULL = 1;
60 public static final int ICONSTM1 = 2;
61 public static final int ICONST0 = 3;
62 public static final int ICONST1 = 4;
63 public static final int ICONST2 = 5;
64 public static final int ICONST3 = 6;
65 public static final int ICONST4 = 7;
66 public static final int ICONST5 = 8;
67 public static final int LCONST0 = 9;
68 public static final int LCONST1 = 10;
69 public static final int FCONST0 = 11;
70 public static final int FCONST1 = 12;
71 public static final int FCONST2 = 13;
72 public static final int DCONST0 = 14;
73 public static final int DCONST1 = 15;
74 public static final int BIPUSH = 16;
75 public static final int SIPUSH = 17;
76 public static final int LDC = 18;
77 public static final int LDCW = 19;
78 public static final int LDC2W = 20;
79 public static final int ILOAD = 21;
80 public static final int LLOAD = 22;
81 public static final int FLOAD = 23;
82 public static final int DLOAD = 24;
83 public static final int ALOAD = 25;
84 public static final int ILOAD0 = 26;
85 public static final int ILOAD1 = 27;
86 public static final int ILOAD2 = 28;
87 public static final int ILOAD3 = 29;
88 public static final int LLOAD0 = 30;
89 public static final int LLOAD1 = 31;
90 public static final int LLOAD2 = 32;
91 public static final int LLOAD3 = 33;
92 public static final int FLOAD0 = 34;
93 public static final int FLOAD1 = 35;
94 public static final int FLOAD2 = 36;
95 public static final int FLOAD3 = 37;
96 public static final int DLOAD0 = 38;
97 public static final int DLOAD1 = 39;
98 public static final int DLOAD2 = 40;
99 public static final int DLOAD3 = 41;
100 public static final int ALOAD0 = 42;
101 public static final int ALOAD1 = 43;
102 public static final int ALOAD2 = 44;
103 public static final int ALOAD3 = 45;
104 public static final int IALOAD = 46;
105 public static final int LALOAD = 47;
106 public static final int FALOAD = 48;
107 public static final int DALOAD = 49;
108 public static final int AALOAD = 50;
109 public static final int BALOAD = 51;
110 public static final int CALOAD = 52;
111 public static final int SALOAD = 53;
112 public static final int ISTORE = 54;
113 public static final int LSTORE = 55;
114 public static final int FSTORE = 56;
115 public static final int DSTORE = 57;
116 public static final int ASTORE = 58;
117 public static final int ISTORE0 = 59;
118 public static final int ISTORE1 = 60;
119 public static final int ISTORE2 = 61;
120 public static final int ISTORE3 = 62;
121 public static final int LSTORE0 = 63;
122 public static final int LSTORE1 = 64;
123 public static final int LSTORE2 = 65;
124 public static final int LSTORE3 = 66;
125 public static final int FSTORE0 = 67;
126 public static final int FSTORE1 = 68;
127 public static final int FSTORE2 = 69;
128 public static final int FSTORE3 = 70;
129 public static final int DSTORE0 = 71;
130 public static final int DSTORE1 = 72;
131 public static final int DSTORE2 = 73;
132 public static final int DSTORE3 = 74;
133 public static final int ASTORE0 = 75;
134 public static final int ASTORE1 = 76;
135 public static final int ASTORE2 = 77;
136 public static final int ASTORE3 = 78;
137 public static final int IASTORE = 79;
138 public static final int LASTORE = 80;
139 public static final int FASTORE = 81;
140 public static final int DASTORE = 82;
141 public static final int AASTORE = 83;
142 public static final int BASTORE = 84;
143 public static final int CASTORE = 85;
144 public static final int SASTORE = 86;
145 public static final int POP = 87;
146 public static final int POP2 = 88;
147 public static final int DUP = 89;
148 public static final int DUPX1 = 90;
149 public static final int DUPX2 = 91;
150 public static final int DUP2 = 92;
151 public static final int DUP2X1 = 93;
152 public static final int DUP2X2 = 94;
153 public static final int SWAP = 95;
154 public static final int IADD = 96;
155 public static final int LADD = 97;
156 public static final int FADD = 98;
157 public static final int DADD = 99;
158 public static final int ISUB = 100;
159 public static final int LSUB = 101;
160 public static final int FSUB = 102;
161 public static final int DSUB = 103;
162 public static final int IMUL = 104;
163 public static final int LMUL = 105;
164 public static final int FMUL = 106;
165 public static final int DMUL = 107;
166 public static final int IDIV = 108;
167 public static final int LDIV = 109;
168 public static final int FDIV = 110;
169 public static final int DDIV = 111;
170 public static final int IREM = 112;
171 public static final int LREM = 113;
172 public static final int FREM = 114;
173 public static final int DREM = 115;
174 public static final int INEG = 116;
175 public static final int LNEG = 117;
176 public static final int FNEG = 118;
177 public static final int DNEG = 119;
178 public static final int ISHL = 120;
179 public static final int LSHL = 121;
180 public static final int ISHR = 122;
181 public static final int LSHR = 123;
182 public static final int IUSHR = 124;
183 public static final int LUSHR = 125;
184 public static final int IAND = 126;
185 public static final int LAND = 127;
186 public static final int IOR = 128;
187 public static final int LOR = 129;
188 public static final int IXOR = 130;
189 public static final int LXOR = 131;
190 public static final int IINC = 132;
191 public static final int I2L = 133;
192 public static final int I2F = 134;
193 public static final int I2D = 135;
194 public static final int L2I = 136;
195 public static final int L2F = 137;
196 public static final int L2D = 138;
197 public static final int F2I = 139;
198 public static final int F2L = 140;
199 public static final int F2D = 141;
200 public static final int D2I = 142;
201 public static final int D2L = 143;
202 public static final int D2F = 144;
203 public static final int I2B = 145;
204 public static final int I2C = 146;
205 public static final int I2S = 147;
206 public static final int LCMP = 148;
207 public static final int FCMPL = 149;
208 public static final int FCMPG = 150;
209 public static final int DCMPL = 151;
210 public static final int DCMPG = 152;
211 public static final int IFEQ = 153;
212 public static final int IFNE = 154;
213 public static final int IFLT = 155;
214 public static final int IFGE = 156;
215 public static final int IFGT = 157;
216 public static final int IFLE = 158;
217 public static final int IFICMPEQ = 159;
218 public static final int IFICMPNE = 160;
219 public static final int IFICMPLT = 161;
220 public static final int IFICMPGE = 162;
221 public static final int IFICMPGT = 163;
222 public static final int IFICMPLE = 164;
223 public static final int IFACMPEQ = 165;
224 public static final int IFACMPNE = 166;
225 public static final int GOTO = 167;
226 public static final int JSR = 168;
227 public static final int RET = 169;
228 public static final int TABLESWITCH = 170;
229 public static final int LOOKUPSWITCH = 171;
230 public static final int IRETURN = 172;
231 public static final int LRETURN = 173;
232 public static final int FRETURN = 174;
233 public static final int DRETURN = 175;
234 public static final int ARETURN = 176;
235 public static final int RETURN = 177;
236 public static final int GETSTATIC = 178;
237 public static final int PUTSTATIC = 179;
238 public static final int GETFIELD = 180;
239 public static final int PUTFIELD = 181;
240 public static final int INVOKEVIRTUAL = 182;
241 public static final int INVOKESPECIAL = 183;
242 public static final int INVOKESTATIC = 184;
243 public static final int INVOKEINTERFACE = 185;
244 public static final int NEW = 187;
245 public static final int NEWARRAY = 188;
246 public static final int ANEWARRAY = 189;
247 public static final int ARRAYLENGTH = 190;
248 public static final int ATHROW = 191;
249 public static final int CHECKCAST = 192;
250 public static final int INSTANCEOF = 193;
251 public static final int MONITORENTER = 194;
252 public static final int MONITOREXIT = 195;
253 public static final int WIDE = 196;
254 public static final int MULTIANEWARRAY = 197;
255 public static final int IFNULL = 198;
256 public static final int IFNONNULL = 199;
257 public static final int GOTOW = 200;
258 public static final int JSRW = 201;
259
260
261 public static final int ARRAY_BOOLEAN = 4;
262 public static final int ARRAY_CHAR = 5;
263 public static final int ARRAY_FLOAT = 6;
264 public static final int ARRAY_DOUBLE = 7;
265 public static final int ARRAY_BYTE = 8;
266 public static final int ARRAY_SHORT = 9;
267 public static final int ARRAY_INT = 10;
268 public static final int ARRAY_LONG = 11;
269
270
271 public static final int MATH_ADD = IADD;
272 public static final int MATH_SUB = ISUB;
273 public static final int MATH_MUL = IMUL;
274 public static final int MATH_DIV = IDIV;
275 public static final int MATH_REM = IREM;
276 public static final int MATH_NEG = INEG;
277 public static final int MATH_SHL = ISHL;
278 public static final int MATH_SHR = ISHR;
279 public static final int MATH_USHR = IUSHR;
280 public static final int MATH_AND = IAND;
281 public static final int MATH_OR = IOR;
282 public static final int MATH_XOR = IXOR;
283
284
285 public static final String[] OPCODE_NAMES = new String[] {
286 "nop", "aconstnull", "iconstm1", "iconst0", "iconst1", "iconst2",
287 "iconst3", "iconst4", "iconst5", "lconst0", "lconst1", "fconst0",
288 "fconst1", "fconst2", "dconst0", "dconst1", "bipush", "sipush",
289 "ldc", "ldcw", "ldc2w", "iload", "lload", "fload", "dload", "aload",
290 "iload0", "iload1", "iload2", "iload3", "lload0", "lload1", "lload2",
291 "lload3", "fload0", "fload1", "fload2", "fload3", "dload0", "dload1",
292 "dload2", "dload3", "aload0", "aload1", "aload2", "aload3", "iaload",
293 "laload", "faload", "daload", "aaload", "baload", "caload", "saload",
294 "istore", "lstore", "fstore", "dstore", "astore", "istore0",
295 "istore1", "istore2", "istore3", "lstore0", "lstore1", "lstore2",
296 "lstore3", "fstore0", "fstore1", "fstore2", "fstore3", "dstore0",
297 "dstore1", "dstore2", "dstore3", "astore0", "astore1", "astore2",
298 "astore3", "iastore", "lastore", "fastore", "dastore", "aastore",
299 "bastore", "castore", "sastore", "pop", "pop2", "dup", "dupx1",
300 "dupx2", "dup2", "dup2x1", "dup2x2", "swap", "iadd", "ladd", "fadd",
301 "dadd", "isub", "lsub", "fsub", "dsub", "imul", "lmul", "fmul",
302 "dmul", "idiv", "ldiv", "fdiv", "ddiv", "irem", "lrem", "frem",
303 "drem", "ineg", "lneg", "fneg", "dneg", "ishl", "lshl", "ishr",
304 "lshr", "iushr", "lushr", "iand", "land", "ior", "lor", "ixor",
305 "lxor", "iinc", "i2l", "i2f", "i2d", "l2i", "l2f", "l2d", "f2i",
306 "f2l", "f2d", "d2i", "d2l", "d2f", "i2b", "i2c", "i2s", "lcmp",
307 "fcmpl", "fcmpg", "dcmpl", "dcmpg", "ifeq", "ifne", "iflt", "ifge",
308 "ifgt", "ifle", "ificmpeq", "ificmpne", "ificmplt", "ificmpge",
309 "ificmpgt", "ificmple", "ifacmpeq", "ifacmpne", "goto", "jsr", "ret",
310 "tableswitch", "lookupswitch", "ireturn", "lreturn", "freturn",
311 "dreturn", "areturn", "return", "getstatic", "putstatic", "getfield",
312 "putfield", "invokevirtual", "invokespecial", "invokestatic",
313 "invokeinterface", "??", "new", "newarray", "anewarray",
314 "arraylength", "athrow", "checkcast", "instanceof", "monitorenter",
315 "monitorexit", "wide", "multianewarray", "ifnull", "ifnonnull",
316 "gotow", "jsrw",
317 };
318 }