From f990d98a937c4dc8cfe707b3de5dfa88f615533b Mon Sep 17 00:00:00 2001 From: Andrea Peruffo Date: Fri, 26 Jul 2024 13:04:17 +0100 Subject: [PATCH] final cleanup --- .../dylibso/chicory/runtime/ModuleTest.java | 2 +- .../src/main/resources/compiled/fac.wat.wasm | Bin wasm-corpus/src/main/resources/wat/fac.wat | 142 ++++++++++++++++++ 3 files changed, 143 insertions(+), 1 deletion(-) rename runtime/src/test/resources/fac.wasm => wasm-corpus/src/main/resources/compiled/fac.wat.wasm (100%) create mode 100644 wasm-corpus/src/main/resources/wat/fac.wat diff --git a/runtime/src/test/java/com/dylibso/chicory/runtime/ModuleTest.java b/runtime/src/test/java/com/dylibso/chicory/runtime/ModuleTest.java index 6aa01b85a..b2e9bb336 100644 --- a/runtime/src/test/java/com/dylibso/chicory/runtime/ModuleTest.java +++ b/runtime/src/test/java/com/dylibso/chicory/runtime/ModuleTest.java @@ -360,7 +360,7 @@ public void shouldValidateTypes() { public void shouldConsumeStackLoopOperations() { AtomicLong finalStackSize = new AtomicLong(0); var instance = - Module.builder("fac.wasm") + Module.builder("compiled/fac.wat.wasm") .withUnsafeExecutionListener( (Instruction instruction, long[] operands, MStack stack) -> { finalStackSize.set(stack.size()); diff --git a/runtime/src/test/resources/fac.wasm b/wasm-corpus/src/main/resources/compiled/fac.wat.wasm similarity index 100% rename from runtime/src/test/resources/fac.wasm rename to wasm-corpus/src/main/resources/compiled/fac.wat.wasm diff --git a/wasm-corpus/src/main/resources/wat/fac.wat b/wasm-corpus/src/main/resources/wat/fac.wat new file mode 100644 index 000000000..1f23b88d3 --- /dev/null +++ b/wasm-corpus/src/main/resources/wat/fac.wat @@ -0,0 +1,142 @@ +(module + (type (;0;) (func (param i64) (result i64))) + (type (;1;) (func (param i64) (result i64 i64))) + (type (;2;) (func (param i64 i64) (result i64 i64 i64))) + (type (;3;) (func (param i64 i64) (result i64))) + (func (;0;) (type 0) (param i64) (result i64) + local.get 0 + i64.const 0 + i64.eq + if (result i64) ;; label = @1 + i64.const 1 + else + local.get 0 + local.get 0 + i64.const 1 + i64.sub + call 0 + i64.mul + end) + (func (;1;) (type 0) (param i64) (result i64) + local.get 0 + i64.const 0 + i64.eq + if (result i64) ;; label = @1 + i64.const 1 + else + local.get 0 + local.get 0 + i64.const 1 + i64.sub + call 1 + i64.mul + end) + (func (;2;) (type 0) (param i64) (result i64) + (local i64 i64) + local.get 0 + local.set 1 + i64.const 1 + local.set 2 + block ;; label = @1 + loop ;; label = @2 + local.get 1 + i64.const 0 + i64.eq + if ;; label = @3 + br 2 (;@1;) + else + local.get 1 + local.get 2 + i64.mul + local.set 2 + local.get 1 + i64.const 1 + i64.sub + local.set 1 + end + br 0 (;@2;) + end + end + local.get 2) + (func (;3;) (type 0) (param i64) (result i64) + (local i64 i64) + local.get 0 + local.set 1 + i64.const 1 + local.set 2 + block ;; label = @1 + loop ;; label = @2 + local.get 1 + i64.const 0 + i64.eq + if ;; label = @3 + br 2 (;@1;) + else + local.get 1 + local.get 2 + i64.mul + local.set 2 + local.get 1 + i64.const 1 + i64.sub + local.set 1 + end + br 0 (;@2;) + end + end + local.get 2) + (func (;4;) (type 0) (param i64) (result i64) + (local i64) + i64.const 1 + local.set 1 + block ;; label = @1 + local.get 0 + i64.const 2 + i64.lt_s + br_if 0 (;@1;) + loop ;; label = @2 + local.get 1 + local.get 0 + i64.mul + local.set 1 + local.get 0 + i64.const -1 + i64.add + local.set 0 + local.get 0 + i64.const 1 + i64.gt_s + br_if 0 (;@2;) + end + end + local.get 1) + (func (;5;) (type 1) (param i64) (result i64 i64) + local.get 0 + local.get 0) + (func (;6;) (type 2) (param i64 i64) (result i64 i64 i64) + local.get 0 + local.get 1 + local.get 0) + (func (;7;) (type 0) (param i64) (result i64) + i64.const 1 + local.get 0 + loop (param i64 i64) (result i64) ;; label = @1 + call 6 + call 6 + i64.mul + call 6 + i64.const 1 + i64.sub + call 5 + i64.const 0 + i64.gt_u + br_if 0 (;@1;) + drop + return + end) + (export "fac-rec" (func 0)) + (export "fac-rec-named" (func 1)) + (export "fac-iter" (func 2)) + (export "fac-iter-named" (func 3)) + (export "fac-opt" (func 4)) + (export "fac-ssa" (func 7)))