From 813427da845b4b7f768b7c3f3cbbaff503c44bf6 Mon Sep 17 00:00:00 2001 From: Nikolay Nikolov Date: Sun, 21 Jul 2024 14:48:00 +0300 Subject: [PATCH] + added WebAssembly inline asm test for the instructions: i32.sub i64.sub f32.sub f64.sub --- tests/test/wasm/twasminlineasm1.pp | 32 ++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/tests/test/wasm/twasminlineasm1.pp b/tests/test/wasm/twasminlineasm1.pp index 1396a26d25..1c916a2730 100644 --- a/tests/test/wasm/twasminlineasm1.pp +++ b/tests/test/wasm/twasminlineasm1.pp @@ -62,6 +62,34 @@ asm f64.add end; +function test_i32_sub(a, b: longint): longint; assembler; nostackframe; +asm + local.get 0 + local.get 1 + i32.sub +end; + +function test_i64_sub(a, b: int64): int64; assembler; nostackframe; +asm + local.get 0 + local.get 1 + i64.sub +end; + +function test_f32_sub(a, b: single): single; assembler; nostackframe; +asm + local.get 0 + local.get 1 + f32.sub +end; + +function test_f64_sub(a, b: double): double; assembler; nostackframe; +asm + local.get 0 + local.get 1 + f64.sub +end; + function test_call: longint; assembler; nostackframe; asm i32.const 10 @@ -78,6 +106,10 @@ begin Check(test_i64_add(12354312234, 654765532432) = 667119844666); Check(Abs(test_f32_add(1.23, 4.56) - 5.79) < eps); Check(Abs(test_f64_add(1.23456, 4.56789) - 5.80245) < eps); + Check(test_i32_sub(2, 3) = -1); + Check(test_i64_sub(12354312234, 654765532432) = -642411220198); + Check(Abs(test_f32_sub(1.23, 4.56) + 3.33) < eps); + Check(Abs(test_f64_sub(1.23456, 4.56789) + 3.33333) < eps); Check(test_call = 27); Writeln('Ok!'); end.