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 }