Mercurial > hg > Members > kono > jpf-core
comparison src/main/gov/nasa/jpf/jvm/JVMByteCodePrinter.java @ 0:61d41facf527
initial v8 import (history reset)
author | Peter Mehlitz <Peter.C.Mehlitz@nasa.gov> |
---|---|
date | Fri, 23 Jan 2015 10:14:01 -0800 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:61d41facf527 |
---|---|
1 /* | |
2 * Copyright (C) 2014, United States Government, as represented by the | |
3 * Administrator of the National Aeronautics and Space Administration. | |
4 * All rights reserved. | |
5 * | |
6 * The Java Pathfinder core (jpf-core) platform is licensed under the | |
7 * Apache License, Version 2.0 (the "License"); you may not use this file except | |
8 * in compliance with the License. You may obtain a copy of the License at | |
9 * | |
10 * http://www.apache.org/licenses/LICENSE-2.0. | |
11 * | |
12 * Unless required by applicable law or agreed to in writing, software | |
13 * distributed under the License is distributed on an "AS IS" BASIS, | |
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
15 * See the License for the specific language governing permissions and | |
16 * limitations under the License. | |
17 */ | |
18 | |
19 package gov.nasa.jpf.jvm; | |
20 | |
21 import java.io.PrintWriter; | |
22 | |
23 /** | |
24 * utility class that prints out bytecode in readable form | |
25 */ | |
26 public class JVMByteCodePrinter implements JVMByteCodeReader { | |
27 | |
28 PrintWriter pw; | |
29 ClassFile cf; // need this to get the constpool entries | |
30 | |
31 String prefix; | |
32 | |
33 public JVMByteCodePrinter (PrintWriter pw, ClassFile cf, String prefix){ | |
34 this.pw = pw; | |
35 this.cf = cf; | |
36 this.prefix = prefix; | |
37 } | |
38 | |
39 @Override | |
40 public void aconst_null() { | |
41 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "aconst_null"); | |
42 } | |
43 | |
44 @Override | |
45 public void aload(int localVarIndex) { | |
46 pw.printf("%s%3d: %s [%d]\n", prefix, cf.getPc(), "aload", localVarIndex); | |
47 } | |
48 | |
49 @Override | |
50 public void aload_0() { | |
51 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "aload_0"); | |
52 } | |
53 | |
54 @Override | |
55 public void aload_1() { | |
56 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "aload_1"); | |
57 } | |
58 | |
59 @Override | |
60 public void aload_2() { | |
61 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "aload_2"); | |
62 } | |
63 | |
64 @Override | |
65 public void aload_3() { | |
66 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "aload_3"); | |
67 } | |
68 | |
69 @Override | |
70 public void aaload() { | |
71 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "aaload"); | |
72 } | |
73 | |
74 @Override | |
75 public void astore(int localVarIndex) { | |
76 pw.printf("%s%3d: %s [%d]\n", prefix, cf.getPc(), "astore", localVarIndex); | |
77 } | |
78 | |
79 @Override | |
80 public void astore_0() { | |
81 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "astore_0"); | |
82 } | |
83 | |
84 @Override | |
85 public void astore_1() { | |
86 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "astore_1"); | |
87 } | |
88 | |
89 @Override | |
90 public void astore_2() { | |
91 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "astore_2"); | |
92 } | |
93 | |
94 @Override | |
95 public void astore_3() { | |
96 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "astore_3"); | |
97 } | |
98 | |
99 @Override | |
100 public void aastore() { | |
101 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "aastore"); | |
102 } | |
103 | |
104 @Override | |
105 public void areturn() { | |
106 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "areturn"); | |
107 } | |
108 | |
109 @Override | |
110 public void anewarray(int cpClassIndex) { | |
111 pw.printf("%s%3d: %s @%d(\"%s\")\n", prefix, cf.getPc(), "anewarray", cpClassIndex, cf.classNameAt(cpClassIndex)); | |
112 } | |
113 | |
114 @Override | |
115 public void arraylength() { | |
116 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "arraylength"); | |
117 } | |
118 | |
119 @Override | |
120 public void athrow() { | |
121 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "athrow"); | |
122 } | |
123 | |
124 @Override | |
125 public void baload() { | |
126 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "baload"); | |
127 } | |
128 | |
129 @Override | |
130 public void bastore() { | |
131 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "bastore"); | |
132 } | |
133 | |
134 @Override | |
135 public void bipush(int b) { | |
136 pw.printf("%s%3d: %s %d\n", prefix, cf.getPc(), "bipush", b); | |
137 } | |
138 | |
139 @Override | |
140 public void caload() { | |
141 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "caload"); | |
142 } | |
143 | |
144 @Override | |
145 public void castore() { | |
146 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "castore"); | |
147 } | |
148 | |
149 @Override | |
150 public void checkcast(int cpClassIndex) { | |
151 pw.printf("%s%3d: %s @%d(\"%s\")\n", prefix, cf.getPc(), "checkcast", cpClassIndex, cf.classNameAt(cpClassIndex)); | |
152 } | |
153 | |
154 @Override | |
155 public void d2f() { | |
156 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "d2f"); | |
157 } | |
158 | |
159 @Override | |
160 public void d2i() { | |
161 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "d2i"); | |
162 } | |
163 | |
164 @Override | |
165 public void d2l() { | |
166 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "d2l"); | |
167 } | |
168 | |
169 @Override | |
170 public void dadd() { | |
171 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "dadd"); | |
172 } | |
173 | |
174 @Override | |
175 public void daload() { | |
176 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "daload"); | |
177 } | |
178 | |
179 @Override | |
180 public void dastore() { | |
181 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "dastore"); | |
182 } | |
183 | |
184 @Override | |
185 public void dcmpg() { | |
186 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "dcmpg"); | |
187 } | |
188 | |
189 @Override | |
190 public void dcmpl() { | |
191 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "dcmpl"); | |
192 } | |
193 | |
194 @Override | |
195 public void dconst_0() { | |
196 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "dconst_0"); | |
197 } | |
198 | |
199 @Override | |
200 public void dconst_1() { | |
201 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "dcont_1"); | |
202 } | |
203 | |
204 @Override | |
205 public void ddiv() { | |
206 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "ddiv"); | |
207 } | |
208 | |
209 @Override | |
210 public void dload(int localVarIndex) { | |
211 pw.printf("%s%3d: %s [%d]\n", prefix, cf.getPc(), "dload", localVarIndex); | |
212 } | |
213 | |
214 @Override | |
215 public void dload_0() { | |
216 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "dload_0"); | |
217 } | |
218 | |
219 @Override | |
220 public void dload_1() { | |
221 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "dload_1"); | |
222 } | |
223 | |
224 @Override | |
225 public void dload_2() { | |
226 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "dload_2"); | |
227 } | |
228 | |
229 @Override | |
230 public void dload_3() { | |
231 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "dload_3"); | |
232 } | |
233 | |
234 @Override | |
235 public void dmul() { | |
236 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "dmul"); | |
237 } | |
238 | |
239 @Override | |
240 public void dneg() { | |
241 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "dneg"); | |
242 } | |
243 | |
244 @Override | |
245 public void drem() { | |
246 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "drem"); | |
247 } | |
248 | |
249 @Override | |
250 public void dreturn() { | |
251 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "dreturn"); | |
252 } | |
253 | |
254 @Override | |
255 public void dstore(int localVarIndex) { | |
256 pw.printf("%s%3d: %s [%d]\n", prefix, cf.getPc(), "dstore", localVarIndex); | |
257 } | |
258 | |
259 @Override | |
260 public void dstore_0() { | |
261 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "dstore_0"); | |
262 } | |
263 | |
264 @Override | |
265 public void dstore_1() { | |
266 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "dstore_1"); | |
267 } | |
268 | |
269 @Override | |
270 public void dstore_2() { | |
271 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "dstore_2"); | |
272 } | |
273 | |
274 @Override | |
275 public void dstore_3() { | |
276 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "dstore_3"); | |
277 } | |
278 | |
279 @Override | |
280 public void dsub() { | |
281 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "dsub"); | |
282 } | |
283 | |
284 @Override | |
285 public void dup() { | |
286 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "dup"); | |
287 } | |
288 | |
289 @Override | |
290 public void dup_x1() { | |
291 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "dup_x1"); | |
292 } | |
293 | |
294 @Override | |
295 public void dup_x2() { | |
296 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "dup_x2"); | |
297 } | |
298 | |
299 @Override | |
300 public void dup2() { | |
301 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "dup2"); | |
302 } | |
303 | |
304 @Override | |
305 public void dup2_x1() { | |
306 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "dup2_x1"); | |
307 } | |
308 | |
309 @Override | |
310 public void dup2_x2() { | |
311 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "dup2_x2"); | |
312 } | |
313 | |
314 @Override | |
315 public void f2d() { | |
316 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "f2d"); | |
317 } | |
318 | |
319 @Override | |
320 public void f2i() { | |
321 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "f2i"); | |
322 } | |
323 | |
324 @Override | |
325 public void f2l() { | |
326 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "f2l"); | |
327 } | |
328 | |
329 @Override | |
330 public void fadd() { | |
331 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "fadd"); | |
332 } | |
333 | |
334 @Override | |
335 public void faload() { | |
336 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "faload"); | |
337 } | |
338 | |
339 @Override | |
340 public void fastore() { | |
341 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "fastore"); | |
342 } | |
343 | |
344 @Override | |
345 public void fcmpg() { | |
346 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "fcmpg"); | |
347 } | |
348 | |
349 @Override | |
350 public void fcmpl() { | |
351 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "fcmpl"); | |
352 } | |
353 | |
354 @Override | |
355 public void fconst_0() { | |
356 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "fconst_0"); | |
357 } | |
358 | |
359 @Override | |
360 public void fconst_1() { | |
361 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "fconst_1"); | |
362 } | |
363 | |
364 @Override | |
365 public void fconst_2() { | |
366 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "fconst_2"); | |
367 } | |
368 | |
369 @Override | |
370 public void fdiv() { | |
371 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "fdiv"); | |
372 } | |
373 | |
374 @Override | |
375 public void fload(int localVarIndex) { | |
376 pw.printf("%s%3d: %s [%d]\n", prefix, cf.getPc(), "fload", localVarIndex); | |
377 } | |
378 | |
379 @Override | |
380 public void fload_0() { | |
381 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "fload_0"); | |
382 } | |
383 | |
384 @Override | |
385 public void fload_1() { | |
386 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "fload_1"); | |
387 } | |
388 | |
389 @Override | |
390 public void fload_2() { | |
391 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "fload_2"); | |
392 } | |
393 | |
394 @Override | |
395 public void fload_3() { | |
396 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "fload_3"); | |
397 } | |
398 | |
399 @Override | |
400 public void fmul() { | |
401 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "fmul"); | |
402 } | |
403 | |
404 @Override | |
405 public void fneg() { | |
406 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "fneg"); | |
407 } | |
408 | |
409 @Override | |
410 public void frem() { | |
411 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "frem"); | |
412 } | |
413 | |
414 @Override | |
415 public void freturn() { | |
416 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "freturn"); | |
417 } | |
418 | |
419 @Override | |
420 public void fstore(int localVarIndex) { | |
421 pw.printf("%s%3d: %s [%d]\n", prefix, cf.getPc(), "fstore", localVarIndex); | |
422 } | |
423 | |
424 @Override | |
425 public void fstore_0() { | |
426 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "fstore_0"); | |
427 } | |
428 | |
429 @Override | |
430 public void fstore_1() { | |
431 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "fstore_1"); | |
432 } | |
433 | |
434 @Override | |
435 public void fstore_2() { | |
436 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "fstore_2"); | |
437 } | |
438 | |
439 @Override | |
440 public void fstore_3() { | |
441 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "fstore_3"); | |
442 } | |
443 | |
444 @Override | |
445 public void fsub() { | |
446 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "fsub"); | |
447 } | |
448 | |
449 @Override | |
450 public void getfield(int cpFieldRefIndex) { | |
451 pw.printf("%s%3d: %s @%d(\"%s\",\"%s\",\"%s\")\n", prefix, cf.getPc(), "getfield", cpFieldRefIndex, | |
452 cf.fieldClassNameAt(cpFieldRefIndex), | |
453 cf.fieldNameAt(cpFieldRefIndex), | |
454 cf.fieldDescriptorAt(cpFieldRefIndex)); | |
455 } | |
456 | |
457 @Override | |
458 public void getstatic(int cpFieldRefIndex) { | |
459 pw.printf("%s%3d: %s @%d(\"%s\",\"%s\",\"%s\")\n", prefix, cf.getPc(), "getstatic", cpFieldRefIndex, | |
460 cf.fieldClassNameAt(cpFieldRefIndex), | |
461 cf.fieldNameAt(cpFieldRefIndex), | |
462 cf.fieldDescriptorAt(cpFieldRefIndex)); | |
463 } | |
464 | |
465 @Override | |
466 public void goto_(int pcOffset) { | |
467 pw.printf("%s%3d: %s %+d (%d)\n", prefix, cf.getPc(), "goto", pcOffset, (cf.getPc() + pcOffset)); | |
468 } | |
469 | |
470 @Override | |
471 public void goto_w(int pcOffset) { | |
472 pw.printf("%s%3d: %s %+d (%d)\n", prefix, cf.getPc(), "goto_w", pcOffset, (cf.getPc() + pcOffset)); | |
473 } | |
474 | |
475 @Override | |
476 public void i2b() { | |
477 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "i2b"); | |
478 } | |
479 | |
480 @Override | |
481 public void i2c() { | |
482 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "i2c"); | |
483 } | |
484 | |
485 @Override | |
486 public void i2d() { | |
487 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "i2d"); | |
488 } | |
489 | |
490 @Override | |
491 public void i2f() { | |
492 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "i2f"); | |
493 } | |
494 | |
495 @Override | |
496 public void i2l() { | |
497 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "i2l"); | |
498 } | |
499 | |
500 @Override | |
501 public void i2s() { | |
502 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "i2s"); | |
503 } | |
504 | |
505 @Override | |
506 public void iadd() { | |
507 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "iadd"); | |
508 } | |
509 | |
510 @Override | |
511 public void iaload() { | |
512 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "iaload"); | |
513 } | |
514 | |
515 @Override | |
516 public void iand() { | |
517 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "iand"); | |
518 } | |
519 | |
520 @Override | |
521 public void iastore() { | |
522 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "iastore"); | |
523 } | |
524 | |
525 @Override | |
526 public void iconst_m1() { | |
527 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "iconst_m1"); | |
528 } | |
529 | |
530 @Override | |
531 public void iconst_0() { | |
532 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "iconst_0"); | |
533 } | |
534 | |
535 @Override | |
536 public void iconst_1() { | |
537 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "iconst_1"); | |
538 } | |
539 | |
540 @Override | |
541 public void iconst_2() { | |
542 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "iconst_2"); | |
543 } | |
544 | |
545 @Override | |
546 public void iconst_3() { | |
547 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "iconst_3"); | |
548 } | |
549 | |
550 @Override | |
551 public void iconst_4() { | |
552 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "iconst_4"); | |
553 } | |
554 | |
555 @Override | |
556 public void iconst_5() { | |
557 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "iconst_5"); | |
558 } | |
559 | |
560 @Override | |
561 public void idiv() { | |
562 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "idiv"); | |
563 } | |
564 | |
565 @Override | |
566 public void if_acmpeq(int pcOffset) { | |
567 pw.printf("%s%3d: %s %+d (%d)\n", prefix, cf.getPc(), "if_acmpeq", pcOffset, (cf.getPc() + pcOffset)); | |
568 } | |
569 | |
570 @Override | |
571 public void if_acmpne(int pcOffset) { | |
572 pw.printf("%s%3d: %s %+d (%d)\n", prefix, cf.getPc(), "if_acmpne", pcOffset, (cf.getPc() + pcOffset)); | |
573 } | |
574 | |
575 @Override | |
576 public void if_icmpeq(int pcOffset) { | |
577 pw.printf("%s%3d: %s %+d (%d)\n", prefix, cf.getPc(), "if_icmpeq", pcOffset, (cf.getPc() + pcOffset)); | |
578 } | |
579 | |
580 @Override | |
581 public void if_icmpne(int pcOffset) { | |
582 pw.printf("%s%3d: %s %+d (%d)\n", prefix, cf.getPc(), "if_icmpne", pcOffset, (cf.getPc() + pcOffset)); | |
583 } | |
584 | |
585 @Override | |
586 public void if_icmplt(int pcOffset) { | |
587 pw.printf("%s%3d: %s %+d (%d)\n", prefix, cf.getPc(), "if_icmplt", pcOffset, (cf.getPc() + pcOffset)); | |
588 } | |
589 | |
590 @Override | |
591 public void if_icmpge(int pcOffset) { | |
592 pw.printf("%s%3d: %s %+d (%d)\n", prefix, cf.getPc(), "if_icmpge", pcOffset, (cf.getPc() + pcOffset)); | |
593 } | |
594 | |
595 @Override | |
596 public void if_icmpgt(int pcOffset) { | |
597 pw.printf("%s%3d: %s %+d (%d)\n", prefix, cf.getPc(), "if_icmpgt", pcOffset, (cf.getPc() + pcOffset)); | |
598 } | |
599 | |
600 @Override | |
601 public void if_icmple(int pcOffset) { | |
602 pw.printf("%s%3d: %s %+d (%d)\n", prefix, cf.getPc(), "if_icmple", pcOffset, (cf.getPc() + pcOffset)); | |
603 } | |
604 | |
605 @Override | |
606 public void ifeq(int pcOffset) { | |
607 pw.printf("%s%3d: %s %+d (%d)\n", prefix, cf.getPc(), "ifeq", pcOffset, (cf.getPc() + pcOffset)); | |
608 } | |
609 | |
610 @Override | |
611 public void ifne(int pcOffset) { | |
612 pw.printf("%s%3d: %s %+d (%d)\n", prefix, cf.getPc(), "ifne", pcOffset, (cf.getPc() + pcOffset)); | |
613 } | |
614 | |
615 @Override | |
616 public void iflt(int pcOffset) { | |
617 pw.printf("%s%3d: %s %+d (%d)\n", prefix, cf.getPc(), "iflt", pcOffset, (cf.getPc() + pcOffset)); | |
618 } | |
619 | |
620 @Override | |
621 public void ifge(int pcOffset) { | |
622 pw.printf("%s%3d: %s %+d (%d)\n", prefix, cf.getPc(), "ifge", pcOffset, (cf.getPc() + pcOffset)); | |
623 } | |
624 | |
625 @Override | |
626 public void ifgt(int pcOffset) { | |
627 pw.printf("%s%3d: %s %+d (%d)\n", prefix, cf.getPc(), "ifgt", pcOffset, (cf.getPc() + pcOffset)); | |
628 } | |
629 | |
630 @Override | |
631 public void ifle(int pcOffset) { | |
632 pw.printf("%s%3d: %s %+d (%d)\n", prefix, cf.getPc(), "ifle", pcOffset, (cf.getPc() + pcOffset)); | |
633 } | |
634 | |
635 @Override | |
636 public void ifnonnull(int pcOffset) { | |
637 pw.printf("%s%3d: %s %+d (%d)\n", prefix, cf.getPc(), "ifnonnull", pcOffset, (cf.getPc() + pcOffset)); | |
638 } | |
639 | |
640 @Override | |
641 public void ifnull(int pcOffset) { | |
642 pw.printf("%s%3d: %s %+d (%d)\n", prefix, cf.getPc(), "ifnull", pcOffset, (cf.getPc() + pcOffset)); | |
643 } | |
644 | |
645 @Override | |
646 public void iinc(int localVarIndex, int incConstant) { | |
647 pw.printf("%s%3d: %s [%d] %+d\n", prefix, cf.getPc(), "iinc", localVarIndex, incConstant); | |
648 } | |
649 | |
650 @Override | |
651 public void iload(int localVarIndex) { | |
652 pw.printf("%s%3d: %s [%d]\n", prefix, cf.getPc(), "iload", localVarIndex); | |
653 } | |
654 | |
655 @Override | |
656 public void iload_0() { | |
657 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "iload_0"); | |
658 } | |
659 | |
660 @Override | |
661 public void iload_1() { | |
662 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "iload_1"); | |
663 } | |
664 | |
665 @Override | |
666 public void iload_2() { | |
667 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "iload_2"); | |
668 } | |
669 | |
670 @Override | |
671 public void iload_3() { | |
672 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "iload_3"); | |
673 } | |
674 | |
675 @Override | |
676 public void imul() { | |
677 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "imul"); | |
678 } | |
679 | |
680 @Override | |
681 public void ineg() { | |
682 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "ineg"); | |
683 } | |
684 | |
685 @Override | |
686 public void instanceof_(int cpClassIndex) { | |
687 pw.printf("%s%3d: %s @%d(\"%s\")\n", prefix, cf.getPc(), "instanceof", cpClassIndex, cf.classNameAt(cpClassIndex)); | |
688 } | |
689 | |
690 @Override | |
691 public void invokeinterface(int cpInterfaceMethodRefIndex, int count, int zero) { | |
692 pw.printf("%s%3d: %s @%d(\"%s\",\"%s\",\"%s\") %d\n", prefix, cf.getPc(), "invokeinterface", cpInterfaceMethodRefIndex, | |
693 cf.methodClassNameAt(cpInterfaceMethodRefIndex), | |
694 cf.methodNameAt(cpInterfaceMethodRefIndex), | |
695 cf.methodDescriptorAt(cpInterfaceMethodRefIndex), | |
696 count); | |
697 } | |
698 | |
699 @Override | |
700 public void invokespecial(int cpMethodRefIndex) { | |
701 pw.printf("%s%3d: %s @%d(\"%s\",\"%s\",\"%s\")\n", prefix, cf.getPc(), "invokespecial", cpMethodRefIndex, | |
702 cf.methodClassNameAt(cpMethodRefIndex), | |
703 cf.methodNameAt(cpMethodRefIndex), | |
704 cf.methodDescriptorAt(cpMethodRefIndex)); | |
705 } | |
706 | |
707 @Override | |
708 public void invokestatic(int cpMethodRefIndex) { | |
709 pw.printf("%s%3d: %s @%d(\"%s\",\"%s\",\"%s\")\n", prefix, cf.getPc(), "invokestatic", cpMethodRefIndex, | |
710 cf.methodClassNameAt(cpMethodRefIndex), | |
711 cf.methodNameAt(cpMethodRefIndex), | |
712 cf.methodDescriptorAt(cpMethodRefIndex)); | |
713 } | |
714 | |
715 @Override | |
716 public void invokevirtual(int cpMethodRefIndex) { | |
717 pw.printf("%s%3d: %s @%d(\"%s\",\"%s\",\"%s\")\n", prefix, cf.getPc(), "invokevirtual", cpMethodRefIndex, | |
718 cf.methodClassNameAt(cpMethodRefIndex), | |
719 cf.methodNameAt(cpMethodRefIndex), | |
720 cf.methodDescriptorAt(cpMethodRefIndex)); | |
721 } | |
722 | |
723 @Override | |
724 public void invokedynamic (int cpInvokeDynamicIndex){ | |
725 pw.printf("%s%3d: %s @%d\n", prefix, cf.getPc(), "invokedynamic", cpInvokeDynamicIndex); | |
726 } | |
727 | |
728 @Override | |
729 public void ior() { | |
730 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "ior"); | |
731 } | |
732 | |
733 @Override | |
734 public void irem() { | |
735 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "irem"); | |
736 } | |
737 | |
738 @Override | |
739 public void ireturn() { | |
740 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "ireturn"); | |
741 } | |
742 | |
743 @Override | |
744 public void ishl() { | |
745 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "ishl"); | |
746 } | |
747 | |
748 @Override | |
749 public void ishr() { | |
750 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "ishr"); | |
751 } | |
752 | |
753 @Override | |
754 public void istore(int localVarIndex) { | |
755 pw.printf("%s%3d: %s [%d]\n", prefix, cf.getPc(), "istore", localVarIndex); | |
756 } | |
757 | |
758 @Override | |
759 public void istore_0() { | |
760 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "istore_0"); | |
761 } | |
762 | |
763 @Override | |
764 public void istore_1() { | |
765 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "istore_1"); | |
766 } | |
767 | |
768 @Override | |
769 public void istore_2() { | |
770 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "istore_2"); | |
771 } | |
772 | |
773 @Override | |
774 public void istore_3() { | |
775 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "istore_3"); | |
776 } | |
777 | |
778 @Override | |
779 public void isub() { | |
780 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "isub"); | |
781 } | |
782 | |
783 @Override | |
784 public void iushr() { | |
785 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "iushr"); | |
786 } | |
787 | |
788 @Override | |
789 public void ixor() { | |
790 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "ixor"); | |
791 } | |
792 | |
793 @Override | |
794 public void jsr(int pcOffset) { | |
795 pw.printf("%s%3d: %s %+d (%d)\n", prefix, cf.getPc(), "jsr", pcOffset, (cf.getPc() + pcOffset)); | |
796 } | |
797 | |
798 @Override | |
799 public void jsr_w(int pcOffset) { | |
800 pw.printf("%s%3d: %s %+d (%d)\n", prefix, cf.getPc(), "jsr_w", pcOffset, (cf.getPc() + pcOffset)); | |
801 } | |
802 | |
803 @Override | |
804 public void l2d() { | |
805 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "l2d"); | |
806 } | |
807 | |
808 @Override | |
809 public void l2f() { | |
810 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "l2f"); | |
811 } | |
812 | |
813 @Override | |
814 public void l2i() { | |
815 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "l2i"); | |
816 } | |
817 | |
818 @Override | |
819 public void ladd() { | |
820 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "ladd"); | |
821 } | |
822 | |
823 @Override | |
824 public void laload() { | |
825 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "laload"); | |
826 } | |
827 | |
828 @Override | |
829 public void land() { | |
830 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "land"); | |
831 } | |
832 | |
833 @Override | |
834 public void lastore() { | |
835 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "lastore"); | |
836 } | |
837 | |
838 @Override | |
839 public void lcmp() { | |
840 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "lcmp"); | |
841 } | |
842 | |
843 @Override | |
844 public void lconst_0() { | |
845 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "lconst_0"); | |
846 } | |
847 | |
848 @Override | |
849 public void lconst_1() { | |
850 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "lconst_1"); | |
851 } | |
852 | |
853 @Override | |
854 public void ldc_(int cpIntOrFloatOrStringIndex) { | |
855 pw.printf("%s%3d: %s @%d(%s)\n", prefix, cf.getPc(), "ldc", cpIntOrFloatOrStringIndex, | |
856 cf.getCpValue(cpIntOrFloatOrStringIndex)); | |
857 } | |
858 | |
859 @Override | |
860 public void ldc_w_(int cpIntOrFloatOrStringIndex) { | |
861 pw.printf("%s%3d: %s @%d(%s)\n", prefix, cf.getPc(), "ldc_w", cpIntOrFloatOrStringIndex, | |
862 cf.getCpValue(cpIntOrFloatOrStringIndex)); | |
863 } | |
864 | |
865 @Override | |
866 public void ldc2_w(int cpLongOrDoubleIndex) { | |
867 pw.printf("%s%3d: %s @%d(%s)\n", prefix, cf.getPc(), "ldc2_w", cpLongOrDoubleIndex, | |
868 cf.getCpValue(cpLongOrDoubleIndex)); | |
869 } | |
870 | |
871 @Override | |
872 public void ldiv() { | |
873 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "ldiv"); | |
874 } | |
875 | |
876 @Override | |
877 public void lload(int localVarIndex) { | |
878 pw.printf("%s%3d: %s [%d]\n", prefix, cf.getPc(), "lload", localVarIndex); | |
879 } | |
880 | |
881 @Override | |
882 public void lload_0() { | |
883 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "lload_0"); | |
884 } | |
885 | |
886 @Override | |
887 public void lload_1() { | |
888 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "lload_1"); | |
889 } | |
890 | |
891 @Override | |
892 public void lload_2() { | |
893 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "lload_2"); | |
894 } | |
895 | |
896 @Override | |
897 public void lload_3() { | |
898 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "lload_3"); | |
899 } | |
900 | |
901 @Override | |
902 public void lmul() { | |
903 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "lmul"); | |
904 } | |
905 | |
906 @Override | |
907 public void lneg() { | |
908 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "lneg"); | |
909 } | |
910 | |
911 @Override | |
912 public void lookupswitch(int defaultPcOffset, int nEntries) { | |
913 pw.printf("%s%3d: %s default:%+d\n", prefix, cf.getPc(), "lookupswitch", defaultPcOffset); | |
914 cf.parseLookupSwitchEntries(this, nEntries); | |
915 } | |
916 @Override | |
917 public void lookupswitchEntry(int index, int match, int pcOffset){ | |
918 pw.printf("%s %d : %+d (%d)\n", prefix, match, pcOffset, (cf.getPc() + pcOffset)); | |
919 } | |
920 | |
921 | |
922 @Override | |
923 public void lor() { | |
924 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "lor"); | |
925 } | |
926 | |
927 @Override | |
928 public void lrem() { | |
929 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "lrem"); | |
930 } | |
931 | |
932 @Override | |
933 public void lreturn() { | |
934 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "lreturn"); | |
935 } | |
936 | |
937 @Override | |
938 public void lshl() { | |
939 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "lshl"); | |
940 } | |
941 | |
942 @Override | |
943 public void lshr() { | |
944 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "lshr"); | |
945 } | |
946 | |
947 @Override | |
948 public void lstore(int localVarIndex) { | |
949 pw.printf("%s%3d: %s [%d]\n", prefix, cf.getPc(), "lstore", localVarIndex); | |
950 } | |
951 | |
952 @Override | |
953 public void lstore_0() { | |
954 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "lstore_0"); | |
955 } | |
956 | |
957 @Override | |
958 public void lstore_1() { | |
959 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "lstore_1"); | |
960 } | |
961 | |
962 @Override | |
963 public void lstore_2() { | |
964 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "lstore_2"); | |
965 } | |
966 | |
967 @Override | |
968 public void lstore_3() { | |
969 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "lstore_3"); | |
970 } | |
971 | |
972 @Override | |
973 public void lsub() { | |
974 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "lsub"); | |
975 } | |
976 | |
977 @Override | |
978 public void lushr() { | |
979 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "lushr"); | |
980 } | |
981 | |
982 @Override | |
983 public void lxor() { | |
984 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "lxor"); | |
985 } | |
986 | |
987 @Override | |
988 public void monitorenter() { | |
989 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "monitorenter"); | |
990 } | |
991 | |
992 @Override | |
993 public void monitorexit() { | |
994 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "monitorexit"); | |
995 } | |
996 | |
997 @Override | |
998 public void multianewarray(int cpClassIndex, int dimensions) { | |
999 pw.printf("%s%3d: %s @%d(\"%s\") dim: %d\n", prefix, cf.getPc(), "multianewarray", | |
1000 cpClassIndex, cf.classNameAt(cpClassIndex), dimensions); | |
1001 } | |
1002 | |
1003 @Override | |
1004 public void new_(int cpClassIndex) { | |
1005 pw.printf("%s%3d: %s @%d(\"%s\")\n", prefix, cf.getPc(), "new", | |
1006 cpClassIndex, cf.classNameAt(cpClassIndex)); | |
1007 } | |
1008 | |
1009 @Override | |
1010 public void newarray(int typeCode) { | |
1011 pw.printf("%s%3d: %s %s[]\n", prefix, cf.getPc(), "newarray", cf.getTypeName(typeCode)); | |
1012 } | |
1013 | |
1014 @Override | |
1015 public void nop() { | |
1016 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "nop"); | |
1017 } | |
1018 | |
1019 @Override | |
1020 public void pop() { | |
1021 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "pop"); | |
1022 } | |
1023 | |
1024 @Override | |
1025 public void pop2() { | |
1026 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "pop2"); | |
1027 } | |
1028 | |
1029 @Override | |
1030 public void putfield(int cpFieldRefIndex) { | |
1031 pw.printf("%s%3d: %s @%d(\"%s\",\"%s\",\"%s\")\n", prefix, cf.getPc(), "putfield", cpFieldRefIndex, | |
1032 cf.fieldClassNameAt(cpFieldRefIndex), | |
1033 cf.fieldNameAt(cpFieldRefIndex), | |
1034 cf.fieldDescriptorAt(cpFieldRefIndex)); | |
1035 } | |
1036 | |
1037 @Override | |
1038 public void putstatic(int cpFieldRefIndex) { | |
1039 pw.printf("%s%3d: %s @%d(\"%s\",\"%s\",\"%s\")\n", prefix, cf.getPc(), "putstatic", cpFieldRefIndex, | |
1040 cf.fieldClassNameAt(cpFieldRefIndex), | |
1041 cf.fieldNameAt(cpFieldRefIndex), | |
1042 cf.fieldDescriptorAt(cpFieldRefIndex)); | |
1043 } | |
1044 | |
1045 @Override | |
1046 public void ret(int localVarIndex) { | |
1047 pw.printf("%s%3d: %s [%d]\n", prefix, cf.getPc(), "ret", localVarIndex); | |
1048 } | |
1049 | |
1050 @Override | |
1051 public void return_() { | |
1052 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "return"); | |
1053 } | |
1054 | |
1055 @Override | |
1056 public void saload() { | |
1057 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "saload"); | |
1058 } | |
1059 | |
1060 @Override | |
1061 public void sastore() { | |
1062 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "sastore"); | |
1063 } | |
1064 | |
1065 @Override | |
1066 public void sipush(int val) { | |
1067 pw.printf("%s%3d: %s %d\n", prefix, cf.getPc(), "sipush", val); | |
1068 } | |
1069 | |
1070 @Override | |
1071 public void swap() { | |
1072 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "swap"); | |
1073 } | |
1074 | |
1075 @Override | |
1076 public void tableswitch(int defaultPcOffset, int low, int high) { | |
1077 pw.printf("%s%3d: %s [%d..%d] default: %+d\n", prefix, cf.getPc(), "tableswitch", low, high, defaultPcOffset); | |
1078 cf.parseTableSwitchEntries(this, low, high); | |
1079 } | |
1080 @Override | |
1081 public void tableswitchEntry(int val, int pcOffset){ | |
1082 pw.printf("%s %d: %+d (%d)\n", prefix, val, pcOffset, (cf.getPc() + pcOffset)); | |
1083 } | |
1084 | |
1085 @Override | |
1086 public void wide() { | |
1087 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), "wide"); | |
1088 } | |
1089 | |
1090 @Override | |
1091 public void unknown(int bytecode) { | |
1092 pw.printf("%s%3d: %s\n", prefix, cf.getPc(), ""); | |
1093 } | |
1094 | |
1095 | |
1096 } |