1 Blort.testInstance1:()V: 2 regs: 0003; ins: 0001; outs: 0000 3 0000: move-object v0, v2 4 0001: move-object v1, v2 5 0002: monitor-enter v1 6 0003: monitor-exit v1 7 0004: return-void 8 Blort.testInstance2:(Ljava/lang/Object;)V: 9 regs: 0006; ins: 0002; outs: 0001 10 0000: move-object v0, v4 11 0001: move-object v1, v5 12 0002: move-object v3, v4 13 0003: monitor-enter v3 14 0004: move-object v2, v1 15 0005: invoke-virtual {v2}, java.lang.Object.hashCode:()I 16 0008: move-result v2 17 0009: monitor-exit v3 18 000a: return-void 19 000b: move-exception v0 20 000c: monitor-exit v3 21 000d: throw v0 22 catches 23 tries: 24 try 0005..0008 25 catch <any> -> 000b 26 Blort.testInstance3:(III)I: 27 regs: 000b; ins: 0004; outs: 0000 28 0000: move-object v0, v7 29 0001: move v1, v8 30 0002: move v2, v9 31 0003: move v3, v10 32 0004: move-object v6, v7 33 0005: monitor-enter v6 34 0006: move v4, v1 35 0007: const/4 v5, #int 1 // #1 36 0008: if-ne v4, v5, 000e // +0006 37 000a: const/4 v4, #int 1 // #1 38 000b: move v0, v4 39 000c: monitor-exit v6 40 000d: return v0 41 000e: const/4 v4, #int 2 // #2 42 000f: move v0, v4 43 0010: goto 000c // -0004 44 Blort.testInstance4:(J)J: 45 regs: 000b; ins: 0003; outs: 0000 46 0000: move-object v0, v8 47 0001: move-wide v1, v9 48 0002: move-object v7, v8 49 0003: monitor-enter v7 50 0004: move-wide v3, v1 51 0005: const-wide/16 v5, #long 1 // #0001 52 0007: cmp-long v3, v3, v5 53 0009: if-nez v3, 0010 // +0007 54 000b: const-wide/16 v3, #long 1 // #0001 55 000d: move-wide v0, v3 56 000e: monitor-exit v7 57 000f: return-wide v0 58 0010: const-wide/16 v3, #long 2 // #0002 59 0012: move-wide v0, v3 60 0013: goto 000e // -0005 61 Blort.testInstance5:()V: 62 regs: 0004; ins: 0001; outs: 0001 63 0000: move-object v0, v3 64 0001: move-object v2, v3 65 0002: monitor-enter v2 66 0003: move-object v1, v0 67 0004: invoke-virtual {v1}, Blort.testInstance5:()V 68 0007: monitor-exit v2 69 0008: return-void 70 0009: move-exception v0 71 000a: monitor-exit v2 72 000b: throw v0 73 catches 74 tries: 75 try 0004..0007 76 catch <any> -> 0009 77 Blort.testStatic1:()V: 78 regs: 0002; ins: 0000; outs: 0000 79 0000: const-class v1, Blort 80 0002: monitor-enter v1 81 0003: monitor-exit v1 82 0004: return-void 83 Blort.testStatic2:(Ljava/lang/Object;)V: 84 regs: 0004; ins: 0001; outs: 0001 85 0000: move-object v0, v3 86 0001: const-class v2, Blort 87 0003: monitor-enter v2 88 0004: move-object v1, v0 89 0005: invoke-virtual {v1}, java.lang.Object.hashCode:()I 90 0008: move-result v1 91 0009: monitor-exit v2 92 000a: return-void 93 000b: move-exception v0 94 000c: monitor-exit v2 95 000d: throw v0 96 catches 97 tries: 98 try 0005..0008 99 catch <any> -> 000b 100 Blort.testStatic3:(III)I: 101 regs: 0009; ins: 0003; outs: 0000 102 0000: move v0, v6 103 0001: move v1, v7 104 0002: move v2, v8 105 0003: const-class v5, Blort 106 0005: monitor-enter v5 107 0006: move v3, v0 108 0007: const/4 v4, #int 1 // #1 109 0008: if-ne v3, v4, 000e // +0006 110 000a: const/4 v3, #int 1 // #1 111 000b: move v0, v3 112 000c: monitor-exit v5 113 000d: return v0 114 000e: const/4 v3, #int 2 // #2 115 000f: move v0, v3 116 0010: goto 000c // -0004 117 Blort.testStatic4:(J)J: 118 regs: 0009; ins: 0002; outs: 0000 119 0000: move-wide v0, v7 120 0001: const-class v6, Blort 121 0003: monitor-enter v6 122 0004: move-wide v2, v0 123 0005: const-wide/16 v4, #long 1 // #0001 124 0007: cmp-long v2, v2, v4 125 0009: if-nez v2, 0010 // +0007 126 000b: const-wide/16 v2, #long 1 // #0001 127 000d: move-wide v0, v2 128 000e: monitor-exit v6 129 000f: return-wide v0 130 0010: const-wide/16 v2, #long 2 // #0002 131 0012: move-wide v0, v2 132 0013: goto 000e // -0005 133 Blort.testStatic5:()V: 134 regs: 0002; ins: 0000; outs: 0000 135 0000: const-class v1, Blort 136 0002: monitor-enter v1 137 0003: invoke-static {}, Blort.testStatic5:()V 138 0006: monitor-exit v1 139 0007: return-void 140 0008: move-exception v0 141 0009: monitor-exit v1 142 000a: throw v0 143 catches 144 tries: 145 try 0003..0006 146 catch <any> -> 0008 147