aboutsummaryrefslogtreecommitdiff
path: root/entries/adirar111
diff options
context:
space:
mode:
Diffstat (limited to 'entries/adirar111')
-rw-r--r--entries/adirar111/wasm/fib.wat53
1 files changed, 17 insertions, 36 deletions
diff --git a/entries/adirar111/wasm/fib.wat b/entries/adirar111/wasm/fib.wat
index 255fa12..6ec9b69 100644
--- a/entries/adirar111/wasm/fib.wat
+++ b/entries/adirar111/wasm/fib.wat
@@ -4,43 +4,24 @@
(module
(export "fib" (func $fib))
(func $fib (param $n i32) (result i32)
- (local $last i32)
- (local $sum i32)
- (local $i i32)
- (local $tmp i32)
- (if
- (i32.lt_s
- (local.get $n)
- (i32.const 2)
+ (local $last i32)
+ (local $sum i32)
+ (local $i i32)
+ (local $tmp i32)
+ (if (i32.lt_s (local.get $n) (i32.const 2))
+ (return (local.get $n))
)
- (return (local.get $n))
- )
- (local.set $last (i32.const 0))
- (local.set $sum (i32.const 1))
- (local.set $i (i32.const 2))
- (local.set $n (i32.add (local.get $n) (i32.const 1)))
- (loop $loop
- (local.set $tmp (local.get $sum))
- (local.set $sum
- (i32.add
- (local.get $sum)
- (local.get $last)
- )
- )
- (local.set $last (local.get $tmp))
- (local.set $i
- (i32.add
- (local.get $i)
- (i32.const 1)
- )
+ (local.set $last (i32.const 0))
+ (local.set $sum (i32.const 1))
+ (local.set $i (i32.const 2))
+ (local.set $n (i32.add (local.get $n) (i32.const 1)))
+ (loop $loop
+ (local.set $tmp (local.get $sum))
+ (local.set $sum (i32.add (local.get $sum) (local.get $last)))
+ (local.set $last (local.get $tmp))
+ (local.set $i (i32.add (local.get $i) (i32.const 1)))
+ (br_if $loop (i32.lt_s (local.get $i) (local.get $n)))
)
- (br_if $loop
- (i32.lt_s
- (local.get $i)
- (local.get $n)
- )
- )
- )
- (return (local.get $sum))
+ (return (local.get $sum))
)
)