You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
667 B
64 lines
667 B
25 years ago
|
.class public JsrTest
|
||
|
.super java/lang/Object
|
||
|
|
||
|
.method public static main([Ljava/lang/String;)V
|
||
|
.limit locals 3
|
||
|
.limit stack 5
|
||
|
|
||
|
jsr big_sub
|
||
|
jsr evil_jsrret
|
||
|
astore_1
|
||
|
returninstr:
|
||
|
return
|
||
|
|
||
|
evil_jsrret:
|
||
|
astore_2
|
||
|
jsr retinstr
|
||
|
retinstr:
|
||
|
ret 2
|
||
|
|
||
|
big_sub:
|
||
|
astore_2
|
||
|
aload_0
|
||
|
astore_1
|
||
|
aload_0
|
||
|
ifnull skip
|
||
|
jsr subroutine
|
||
|
skip:
|
||
|
aload_0
|
||
|
ifnull end
|
||
|
jsr sub2
|
||
|
end:
|
||
|
ret 2
|
||
|
|
||
|
|
||
|
|
||
|
subroutine:
|
||
|
astore_1
|
||
|
aload_0
|
||
|
ifnull gotoend1
|
||
|
aload_0
|
||
|
ifnonnull bothsubs
|
||
|
ret 1
|
||
|
gotoend1:
|
||
|
jsr innermostSub
|
||
|
goto returninstr
|
||
|
|
||
|
|
||
|
sub2:
|
||
|
astore_1
|
||
|
aconst_null
|
||
|
ifnonnull bothsubs
|
||
|
ret 1
|
||
|
bothsubs:
|
||
|
aload_0
|
||
|
ifnull end
|
||
|
jsr innermostSub
|
||
|
goto end
|
||
|
|
||
|
innermostSub:
|
||
|
astore_1
|
||
|
ret 1
|
||
|
|
||
|
.end method
|