reading Blort.class...
method <init> ()V
first 000c
block 000a
pred 000c
Blort.java:2@0000: move-param-object(0) v0:"this"NffffLBlort; <- .
Blort.java:2@0000: goto . <- .
next 0000
block 0000
pred 000a
Blort.java:2@0001: Rop{invoke-direct . <- Ljava/lang/Object; call throws <any
>}(java.lang.Object.<init>:()V catch) . <- v0:NffffLBlort;
next 000b
block 000b
pred 0000
Blort.java:4@0004: return-void . <- .
returns
block 000c
@????: goto . <- .
next 000a
method testNumeric ()V
first 005e
block 005c
pred 005e
Blort.java:10@0000: move-param-object(0) v4:"this"LBlort; <- .
Blort.java:10@0000: goto . <- .
next 0000
block 0000
pred 005c
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 005d
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 005d
pred 001a
Blort.java:19@002d: return-void . <- .
returns
block 005e
@????: const-int(10) v3:I=10 <- .
@????: goto . <- .
next 005c
method testStrings ()V
first 0078
block 0064
pred 007b
Blort.java:22@0000: move-param-object(0) v3:"this"LBlort; <- .
Blort.java:22@0000: goto . <- .
next 0000
block 006b
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 0000
pred 0064
Blort.java:22@0000: new-instance(java.lang.StringBuilder catch) . <- .
next 006b
block 0003
pred 006b
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 006c
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 0007
pred 0003
@????: mark-local-object . <- v0:"sb"Ljava/lang/StringBuilder;
Blort.java:24@0009: const-object("foo" catch) . <- .
next 006c
block 000b
pred 006c
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; v2:Lj
ava/lang/String;="foo"
next 000e
block 006e
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 000e
pred 000b
Blort.java:25@0010: const-object("foo" catch) . <- .
next 006e
block 0012
pred 006e
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; v2:Lj
ava/lang/String;="foo"
next 0015
block 0070
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 0015
pred 0012
Blort.java:26@0017: const-object("foo" catch) . <- .
next 0070
block 0019
pred 0070
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; v2:Lj
ava/lang/String;="foo"
next 001c
block 0072
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 001c
pred 0019
Blort.java:27@001e: const-object("foo" catch) . <- .
next 0072
block 0020
pred 0072
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; v2:Lj
ava/lang/String;="foo"
next 0023
block 0074
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 0023
pred 0020
Blort.java:28@0025: const-object("foo" catch) . <- .
next 0074
block 0027
pred 0074
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; v2:Lj
ava/lang/String;="foo"
next 002a
block 0076
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 002a
pred 0027
Blort.java:29@002c: const-object("foo" catch) . <- .
next 0076
block 002e
pred 0076
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; v2:Lj
ava/lang/String;="foo"
next 0065
block 0065
pred 002e
Blort.java:30@0032: return-void . <- .
returns
block 0078
@????: goto . <- .
next 007a
block 007a
pred 0078
@????: const-object("foo" catch) . <- .
next 007b
block 007b
pred 007a
@????: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v2:Ljava/lang/St
ring;="foo" <- .
@????: goto . <- .
next 0064
method testCaughtStrings ()V
first 0094
block 007e
pred 009e
Blort.java:33@0000: move-param-object(0) v5:"this"LBlort; <- .
Blort.java:33@0000: goto . <- .
next 0000
block 0085
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 0000
pred 007e
Blort.java:33@0000: new-instance(java.lang.StringBuilder catch) . <- .
next 0085
block 0003
pred 0085
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 0086
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 0007
pred 0003
@????: mark-local-object . <- v0:"sb"Ljava/lang/StringBuilder;
Blort.java:35@0009: const-object("foo" catch) . <- .
next 0086
block 000b
pred 0086
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; v4:Lj
ava/lang/String;="foo"
next 000e
block 0088
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 000e
pred 000b
Blort.java:36@0010: const-object("foo" catch) . <- .
next 0088
block 0012
pred 0088
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; v4:Lj
ava/lang/String;="foo"
next 0015
block 008a
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 0015
pred 0012
Blort.java:37@0017: const-object("foo" catch) . <- .
next 008a
block 0019
pred 008a
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; v4:Lj
ava/lang/String;="foo"
next 001d
block 008c
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 001d
pred 0019
Blort.java:39@001e: const-object("foo" catch java.lang.Throwable) . <- .
next 0095
next 008c *
block 0020
pred 008c
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 0095
next 0023 *
block 008e
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 0023
pred 0020
Blort.java:40@0025: const-object("foo" catch java.lang.Throwable) . <- .
next 0095
next 008e *
block 0027
pred 008e
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 0095
next 002a *
block 0090
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 002a
pred 0027
Blort.java:41@002c: const-object("foo" catch java.lang.Throwable) . <- .
next 0095
next 0090 *
block 002e
pred 0090
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 0095
next 007f *
block 0092
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 0035
pred 0095
@????: 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 0092
block 0093
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 0039
pred 0092
Blort.java:43@0039: const-object("foo" catch) . <- .
next 0093
block 003b
pred 0093
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; v4:Ljava/lang/String;="foo"
next 007f
block 007f
pred 002e
pred 003b
Blort.java:45@003e: return-void . <- .
returns
block 0094
@????: goto . <- .
next 009d
block 0095
pred 001d
pred 0020
pred 0023
pred 0027
pred 002a
pred 002e
Blort.java:42@0035: Rop{move-exception Ljava/lang/Throwable; <- . flows} v2:L
java/lang/Throwable; <- .
@????: move-object v1:Ljava/lang/Throwable; <- v2:Ljava/lang/Throwable;
@????: goto . <- .
next 0035
block 009d
pred 0094
@????: const-object("foo" catch) . <- .
next 009e
block 009e
pred 009d
@????: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v4:Ljava/lang/St
ring;="foo" <- .
@????: goto . <- .
next 007e
method testLocalVars ()V
first 0004
block 0002
pred 0004
Blort.java:49@0000: move-param-object(0) v6:"this"LBlort; <- .
Blort.java:49@0000: goto . <- .
next 0000
block 0000
pred 0002
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 <- v3:I
@????: mark-local-int . <- v3:"i"I=100
Blort.java:57@001a: goto . <- .
next 0003
block 0003
pred 0000
Blort.java:57@001a: return-void . <- .
returns
block 0004
@????: goto . <- .
next 0002
method testNull (Ljava/lang/Object;)V
first 0021
block 0018
pred 0021
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 0000
pred 0018
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 0019
block 0019
pred 0005
Blort.java:63@000c: return-void . <- .
returns
block 0021
@????: const-object-nothrow(null) v0:<null>=null <- .
@????: goto . <- .
next 0018