1*37cf8e1eSTyler Rockwood(module 2*37cf8e1eSTyler Rockwood (import "host" "print" (func $print (param i32))) 3*37cf8e1eSTyler Rockwood (func $fibonacci (param $n i32) (result i32) 4*37cf8e1eSTyler Rockwood (if 5*37cf8e1eSTyler Rockwood (i32.lt_s (local.get $n) (i32.const 2)) 6*37cf8e1eSTyler Rockwood (then (return (local.get $n))) 7*37cf8e1eSTyler Rockwood ) 8*37cf8e1eSTyler Rockwood (i32.add 9*37cf8e1eSTyler Rockwood (call $fibonacci (i32.sub (local.get $n) (i32.const 1))) 10*37cf8e1eSTyler Rockwood (call $fibonacci (i32.sub (local.get $n) (i32.const 2))) 11*37cf8e1eSTyler Rockwood ) 12*37cf8e1eSTyler Rockwood ) 13*37cf8e1eSTyler Rockwood (func $print_fibonacci (param $n i32) 14*37cf8e1eSTyler Rockwood (call $fibonacci (local.get $n)) 15*37cf8e1eSTyler Rockwood (call $print) 16*37cf8e1eSTyler Rockwood ) 17*37cf8e1eSTyler Rockwood (export "print_fibonacci" (func $print_fibonacci)) 18*37cf8e1eSTyler Rockwood) 19