なんとなく 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
残念。ベリファイアに引っかかるのか。