なんとなく jsr 命令で再帰

.class public fib
.super java/lang/Object

.method public <init>()V
    aload_0
    invokenonvirtual java/lang/Object/<init>()V
    return
.end method

.method public static fib(I)I
        .limit locals   2
        .limit stack    1024
        
        jsr FIB
        iload 0
        ireturn
        
    FIB:
        iload 0
        dup
        bipush 1
        if_icmple THEN

    ELSE:
        dup
        bipush 1
        isub
        istore 0
        jsr FIB
        iload 0
        swap
        bipush 2
        isub
        istore 0
        jsr FIB
        iload 0
        iadd
        istore 0
        goto ENDIF

    THEN:
        pop
        bipush 1
        istore 0
        goto ENDIF

    ENDIF:
        astore 1
        ret 1

.end method
> jasmin fib.j
Generated: fib.class

> java fib
Exception in thread "main" java.lang.VerifyError: (class: fib, method: fib signature: (I)I) Recursive call to jsr entry

残念。ベリファイアに引っかかるのか。