From b0292c766fe68482648023881639266f696fe472 Mon Sep 17 00:00:00 2001 From: Henry Gressmann Date: Thu, 7 Dec 2023 01:18:06 +0100 Subject: feat: improve lable/block handling, add support for more arithmetic opcodes Signed-off-by: Henry Gressmann --- examples/wasm/loop.wat | 33 ++++++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 9 deletions(-) (limited to 'examples') diff --git a/examples/wasm/loop.wat b/examples/wasm/loop.wat index 02683e7..ecdf136 100644 --- a/examples/wasm/loop.wat +++ b/examples/wasm/loop.wat @@ -4,16 +4,31 @@ (i32.const 0) ;; Initialize 'i' to 0 (local.set 0) - (loop $loopStart ;; Start of the loop - (local.get 0) ;; Get the current value of 'i' - (i32.const 1) ;; Push 1 onto the stack - (i32.add) ;; Add 'i' and 1 - (local.set 0) ;; Update 'i' with the new value + ;; (loop $test + ;; (loop $test2 + ;; (local.get 0) + ;; (i32.const 1) + ;; (i32.add) + ;; (local.set 0) + ;; (br $test2) + ;; ) + ;; ) - (local.get 0) ;; Push the current value of 'i' to check the condition - (i32.const 10) ;; Push 10 onto the stack - (i32.lt_s) ;; Check if 'i' is less than 10 - (br_if $loopStart) ;; If 'i' < 10, continue the loop + + (loop $blockStart + (loop $blockStart2 + (loop $loopStart ;; Start of the loop + (local.get 0) ;; Get the current value of 'i' + (i32.const 1) ;; Push 1 onto the stack + (i32.add) ;; Add 'i' and 1 + (local.set 0) ;; Update 'i' with the new value + + (local.get 0) ;; Push the current value of 'i' to check the condition + (i32.const 10) ;; Push 10 onto the stack + (i32.lt_s) ;; Check if 'i' is less than 10 + (br_if $blockStart) ;; If 'i' < 10, continue the loop + ) + ) ) (local.get 0) ;; After the loop, get the value of 'i' to be returned -- cgit v1.3.1