reading Blort.class... method <init> ()V first 0007 block 0000 pred 0005 Blort.java:2@0001: Rop{invoke-direct . <- Ljava/lang/Object; call throws <any >}(java.lang.Object.<init>:()V catch) . <- v0:NffffLBlort; next 0006 block 0005 pred 0007 Blort.java:2@0000: move-param-object(0) v0:"this"NffffLBlort; <- . Blort.java:2@0000: goto . <- . next 0000 block 0006 pred 0000 Blort.java:2@0004: return-void . <- . returns block 0007 @????: goto . <- . next 0005 method testNumeric ()V first 0030 block 0000 pred 002e Blort.java:10@0000: const-int(10) v0:I=10 <- . @????: mark-local-int . <- v0:"foo"I Blort.java:12@0003: const-int(0) v1:I=0 <- . @????: mark-local-int . <- v1:"i"I Blort.java:12@0004: goto . <- . next 0005 block 0005 pred 0000 pred 000b Blort.java:12@0008: if-ge-int . <- v1:I v3:I=10 next 000b * next 0018 block 000b pred 0005 Blort.java:13@000f: mul-const-int(10) v2:I <- v1:I Blort.java:13@0010: add-int v0:I <- v0:I v2:I @????: mark-local-int . <- v0:"foo"I Blort.java:12@0012: add-const-int(1) v1:"i"I <- v1:I Blort.java:12@0015: goto . <- . next 0005 block 0018 pred 0005 Blort.java:16@0018: const-int(0) v1:I=0 <- . @????: mark-local-int . <- v1:"i"I Blort.java:16@0019: goto . <- . next 001a block 001a pred 0018 pred 0020 Blort.java:16@001d: if-ge-int . <- v1:I v3:I=10 next 0020 * next 002f block 0020 pred 001a Blort.java:17@0024: add-const-int(10) v2:I <- v1:I Blort.java:17@0025: add-int v0:I <- v0:I v2:I @????: mark-local-int . <- v0:"foo"I Blort.java:16@0027: add-const-int(1) v1:"i"I <- v1:I Blort.java:16@002a: goto . <- . next 001a block 002e pred 0030 Blort.java:10@0000: move-param-object(0) v4:"this"LBlort; <- . Blort.java:10@0000: goto . <- . next 0000 block 002f pred 001a Blort.java:19@002d: return-void . <- . returns block 0030 @????: const-int(10) v3:I=10 <- . @????: goto . <- . next 002e method testStrings ()V first 0046 block 0000 pred 0032 Blort.java:22@0000: new-instance(java.lang.StringBuilder catch) . <- . next 0039 block 0003 pred 0039 Blort.java:22@0004: Rop{invoke-direct . <- Ljava/lang/StringBuilder; call thr ows <any>}(java.lang.StringBuilder.<init>:()V catch) . <- v0:N0000Ljava/lang/ StringBuilder; next 0007 block 0007 pred 0003 @????: mark-local-object . <- v0:"sb"Ljava/lang/StringBuilder; Blort.java:24@0009: const-object("foo" catch) . <- . next 003a block 000b pred 003a Blort.java:24@000b: Rop{invoke-virtual . <- Ljava/lang/StringBuilder; Ljava/l ang/String; call throws <any>}(java.lang.StringBuilder.append:(Ljava/lang/Str ing;)Ljava/lang/StringBuilder; catch) . <- v0:Ljava/lang/StringBuilder; v1:Lj ava/lang/String;="foo" next 000e block 000e pred 000b Blort.java:25@0010: const-object("foo" catch) . <- . next 003c block 0012 pred 003c Blort.java:25@0012: Rop{invoke-virtual . <- Ljava/lang/StringBuilder; Ljava/l ang/String; call throws <any>}(java.lang.StringBuilder.append:(Ljava/lang/Str ing;)Ljava/lang/StringBuilder; catch) . <- v0:Ljava/lang/StringBuilder; v1:Lj ava/lang/String;="foo" next 0015 block 0015 pred 0012 Blort.java:26@0017: const-object("foo" catch) . <- . next 003e block 0019 pred 003e Blort.java:26@0019: Rop{invoke-virtual . <- Ljava/lang/StringBuilder; Ljava/l ang/String; call throws <any>}(java.lang.StringBuilder.append:(Ljava/lang/Str ing;)Ljava/lang/StringBuilder; catch) . <- v0:Ljava/lang/StringBuilder; v1:Lj ava/lang/String;="foo" next 001c block 001c pred 0019 Blort.java:27@001e: const-object("foo" catch) . <- . next 0040 block 0020 pred 0040 Blort.java:27@0020: Rop{invoke-virtual . <- Ljava/lang/StringBuilder; Ljava/l ang/String; call throws <any>}(java.lang.StringBuilder.append:(Ljava/lang/Str ing;)Ljava/lang/StringBuilder; catch) . <- v0:Ljava/lang/StringBuilder; v1:Lj ava/lang/String;="foo" next 0023 block 0023 pred 0020 Blort.java:28@0025: const-object("foo" catch) . <- . next 0042 block 0027 pred 0042 Blort.java:28@0027: Rop{invoke-virtual . <- Ljava/lang/StringBuilder; Ljava/l ang/String; call throws <any>}(java.lang.StringBuilder.append:(Ljava/lang/Str ing;)Ljava/lang/StringBuilder; catch) . <- v0:Ljava/lang/StringBuilder; v1:Lj ava/lang/String;="foo" next 002a block 002a pred 0027 Blort.java:29@002c: const-object("foo" catch) . <- . next 0044 block 002e pred 0044 Blort.java:29@002e: Rop{invoke-virtual . <- Ljava/lang/StringBuilder; Ljava/l ang/String; call throws <any>}(java.lang.StringBuilder.append:(Ljava/lang/Str ing;)Ljava/lang/StringBuilder; catch) . <- v0:Ljava/lang/StringBuilder; v1:Lj ava/lang/String;="foo" next 0033 block 0032 pred 0046 Blort.java:22@0000: move-param-object(0) v2:"this"LBlort; <- . Blort.java:22@0000: goto . <- . next 0000 block 0033 pred 002e Blort.java:30@0032: return-void . <- . returns block 0039 pred 0000 Blort.java:22@0000: Rop{move-result-pseudo N0000Ljava/lang/StringBuilder; <- . flows} v0:N0000Ljava/lang/StringBuilder; <- . Blort.java:22@0000: goto . <- . next 0003 block 003a pred 0007 Blort.java:24@0009: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v1: Ljava/lang/String;="foo" <- . Blort.java:24@0009: goto . <- . next 000b block 003c pred 000e Blort.java:25@0010: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v1: Ljava/lang/String;="foo" <- . Blort.java:25@0010: goto . <- . next 0012 block 003e pred 0015 Blort.java:26@0017: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v1: Ljava/lang/String;="foo" <- . Blort.java:26@0017: goto . <- . next 0019 block 0040 pred 001c Blort.java:27@001e: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v1: Ljava/lang/String;="foo" <- . Blort.java:27@001e: goto . <- . next 0020 block 0042 pred 0023 Blort.java:28@0025: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v1: Ljava/lang/String;="foo" <- . Blort.java:28@0025: goto . <- . next 0027 block 0044 pred 002a Blort.java:29@002c: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v1: Ljava/lang/String;="foo" <- . Blort.java:29@002c: goto . <- . next 002e block 0046 @????: goto . <- . next 0032 method testCaughtStrings ()V first 0056 block 0000 pred 0040 Blort.java:33@0000: new-instance(java.lang.StringBuilder catch) . <- . next 0047 block 0003 pred 0047 Blort.java:33@0004: Rop{invoke-direct . <- Ljava/lang/StringBuilder; call thr ows <any>}(java.lang.StringBuilder.<init>:()V catch) . <- v0:N0000Ljava/lang/ StringBuilder; next 0007 block 0007 pred 0003 @????: mark-local-object . <- v0:"sb"Ljava/lang/StringBuilder; Blort.java:35@0009: const-object("foo" catch) . <- . next 0048 block 000b pred 0048 Blort.java:35@000b: Rop{invoke-virtual . <- Ljava/lang/StringBuilder; Ljava/l ang/String; call throws <any>}(java.lang.StringBuilder.append:(Ljava/lang/Str ing;)Ljava/lang/StringBuilder; catch) . <- v0:Ljava/lang/StringBuilder; v2:Lj ava/lang/String;="foo" next 000e block 000e pred 000b Blort.java:36@0010: const-object("foo" catch) . <- . next 004a block 0012 pred 004a Blort.java:36@0012: Rop{invoke-virtual . <- Ljava/lang/StringBuilder; Ljava/l ang/String; call throws <any>}(java.lang.StringBuilder.append:(Ljava/lang/Str ing;)Ljava/lang/StringBuilder; catch) . <- v0:Ljava/lang/StringBuilder; v2:Lj ava/lang/String;="foo" next 0015 block 0015 pred 0012 Blort.java:37@0017: const-object("foo" catch) . <- . next 004c block 0019 pred 004c Blort.java:37@0019: Rop{invoke-virtual . <- Ljava/lang/StringBuilder; Ljava/l ang/String; call throws <any>}(java.lang.StringBuilder.append:(Ljava/lang/Str ing;)Ljava/lang/StringBuilder; catch) . <- v0:Ljava/lang/StringBuilder; v2:Lj ava/lang/String;="foo" next 001d block 001d pred 0019 Blort.java:39@001e: const-object("foo" catch java.lang.Throwable) . <- . next 0057 next 004e * block 0020 pred 004e Blort.java:39@0020: Rop{invoke-virtual . <- Ljava/lang/StringBuilder; Ljava/l ang/String; call throws <any>}(java.lang.StringBuilder.append:(Ljava/lang/Str ing;)Ljava/lang/StringBuilder; catch java.lang.Throwable) . <- v0:Ljava/lang/ StringBuilder; v2:Ljava/lang/String;="foo" next 0057 next 0023 * block 0023 pred 0020 Blort.java:40@0025: const-object("foo" catch java.lang.Throwable) . <- . next 0057 next 0050 * block 0027 pred 0050 Blort.java:40@0027: Rop{invoke-virtual . <- Ljava/lang/StringBuilder; Ljava/l ang/String; call throws <any>}(java.lang.StringBuilder.append:(Ljava/lang/Str ing;)Ljava/lang/StringBuilder; catch java.lang.Throwable) . <- v0:Ljava/lang/ StringBuilder; v2:Ljava/lang/String;="foo" next 0057 next 002a * block 002a pred 0027 Blort.java:41@002c: const-object("foo" catch java.lang.Throwable) . <- . next 0057 next 0052 * block 002e pred 0052 Blort.java:41@002e: Rop{invoke-virtual . <- Ljava/lang/StringBuilder; Ljava/l ang/String; call throws <any>}(java.lang.StringBuilder.append:(Ljava/lang/Str ing;)Ljava/lang/StringBuilder; catch java.lang.Throwable) . <- v0:Ljava/lang/ StringBuilder; v2:Ljava/lang/String;="foo" next 0057 next 0041 * block 0035 pred 0057 @????: mark-local-object . <- v1:"tr"Ljava/lang/Throwable; Blort.java:43@0036: get-static-object(java.lang.System.out:Ljava/io/PrintStre am; catch) . <- . next 0054 block 0039 pred 0054 Blort.java:43@0039: const-object("foo" catch) . <- . next 0055 block 003b pred 0055 Blort.java:43@003b: Rop{invoke-virtual . <- Ljava/io/PrintStream; Ljava/lang/ String; call throws <any>}(java.io.PrintStream.println:(Ljava/lang/String;)V catch) . <- v2:Ljava/io/PrintStream; v3:Ljava/lang/String;="foo" next 0041 block 0040 pred 0056 Blort.java:33@0000: move-param-object(0) v4:"this"LBlort; <- . Blort.java:33@0000: goto . <- . next 0000 block 0041 pred 002e pred 003b Blort.java:45@003e: return-void . <- . returns block 0047 pred 0000 Blort.java:33@0000: Rop{move-result-pseudo N0000Ljava/lang/StringBuilder; <- . flows} v0:N0000Ljava/lang/StringBuilder; <- . Blort.java:33@0000: goto . <- . next 0003 block 0048 pred 0007 Blort.java:35@0009: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v2: Ljava/lang/String;="foo" <- . Blort.java:35@0009: goto . <- . next 000b block 004a pred 000e Blort.java:36@0010: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v2: Ljava/lang/String;="foo" <- . Blort.java:36@0010: goto . <- . next 0012 block 004c pred 0015 Blort.java:37@0017: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v2: Ljava/lang/String;="foo" <- . Blort.java:37@0017: goto . <- . next 0019 block 004e pred 001d Blort.java:39@001e: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v2: Ljava/lang/String;="foo" <- . Blort.java:39@001e: goto . <- . next 0020 block 0050 pred 0023 Blort.java:40@0025: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v2: Ljava/lang/String;="foo" <- . Blort.java:40@0025: goto . <- . next 0027 block 0052 pred 002a Blort.java:41@002c: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v2: Ljava/lang/String;="foo" <- . Blort.java:41@002c: goto . <- . next 002e block 0054 pred 0035 Blort.java:43@0036: Rop{move-result-pseudo Ljava/io/PrintStream; <- . flows} v2:Ljava/io/PrintStream; <- . Blort.java:43@0036: goto . <- . next 0039 block 0055 pred 0039 Blort.java:43@0039: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v3: Ljava/lang/String;="foo" <- . Blort.java:43@0039: goto . <- . next 003b block 0056 @????: goto . <- . next 0040 block 0057 pred 001d pred 0020 pred 0023 pred 0027 pred 002a pred 002e Blort.java:42@0035: Rop{move-exception Ljava/lang/Throwable; <- . flows} v1:L java/lang/Throwable; <- . @????: goto . <- . next 0035 method testLocalVars ()V first 0003 block 0000 pred 0001 Blort.java:49@0000: const-int(10) v3:I=10 <- . @????: mark-local-int . <- v3:"i"I Blort.java:50@0003: const-int(10) v4:I=10 <- . @????: mark-local-int . <- v4:"j"I Blort.java:51@0006: const-int(10) v5:I=10 <- . @????: mark-local-int . <- v5:"k"I Blort.java:52@0009: const-int(10) v0:I=10 <- . @????: mark-local-int . <- v0:"a"I Blort.java:53@000d: const-int(10) v1:I=10 <- . @????: mark-local-int . <- v1:"b"I Blort.java:54@0011: const-int(10) v2:I=10 <- . @????: mark-local-int . <- v2:"c"I Blort.java:56@0018: mul-const-int(10) v3:I=100 <- v3:I @????: mark-local-int . <- v3:"i"I=100 Blort.java:57@001a: goto . <- . next 0002 block 0001 pred 0003 Blort.java:49@0000: move-param-object(0) v6:"this"LBlort; <- . Blort.java:49@0000: goto . <- . next 0000 block 0002 pred 0000 Blort.java:57@001a: return-void . <- . returns block 0003 @????: goto . <- . next 0001 method testNull (Ljava/lang/Object;)V first 0015 block 0000 pred 000c Blort.java:60@0002: Rop{invoke-virtual . <- Ljava/lang/Object; Ljava/lang/Obj ect; call throws <any>}(java.lang.Object.equals:(Ljava/lang/Object;)Z catch) . <- v2:Ljava/lang/Object; v0:<null>=null next 0005 block 0005 pred 0000 Blort.java:61@0008: Rop{invoke-virtual . <- Ljava/lang/Object; Ljava/lang/Obj ect; call throws <any>}(java.lang.Object.equals:(Ljava/lang/Object;)Z catch) . <- v2:Ljava/lang/Object; v0:<null>=null next 000d block 000c pred 0015 Blort.java:60@0000: move-param-object(0) v1:"this"LBlort; <- . Blort.java:60@0000: move-param-object(1) v2:"a"Ljava/lang/Object; <- . Blort.java:60@0000: goto . <- . next 0000 block 000d pred 0005 Blort.java:63@000c: return-void . <- . returns block 0015 @????: const-object-nothrow(null) v0:<null>=null <- . @????: goto . <- . next 000c