From 955cc0a0e47cabc65f13bf602887ca5ada6b6302 Mon Sep 17 00:00:00 2001 From: Christoph Urlacher Date: Wed, 22 Jul 2026 00:15:47 +0200 Subject: [PATCH] Add more tacle targets --- .../tacle-kernel-countnegative.cpp | 25 +++++++++++++++++++ targets/wasm-module/tacle-kernel-fft.cpp | 25 +++++++++++++++++++ targets/wasm-module/tacle-kernel-md5.cpp | 25 +++++++++++++++++++ .../wasm-module/tacle-kernel-quicksort.cpp | 25 +++++++++++++++++++ .../wasm-module/tacle-kernel-recursion.cpp | 25 +++++++++++++++++++ targets/wasm-module/tacle-kernel-sha.cpp | 25 +++++++++++++++++++ 6 files changed, 150 insertions(+) create mode 100644 targets/wasm-module/tacle-kernel-countnegative.cpp create mode 100644 targets/wasm-module/tacle-kernel-fft.cpp create mode 100644 targets/wasm-module/tacle-kernel-md5.cpp create mode 100644 targets/wasm-module/tacle-kernel-quicksort.cpp create mode 100644 targets/wasm-module/tacle-kernel-recursion.cpp create mode 100644 targets/wasm-module/tacle-kernel-sha.cpp diff --git a/targets/wasm-module/tacle-kernel-countnegative.cpp b/targets/wasm-module/tacle-kernel-countnegative.cpp new file mode 100644 index 0000000..0866e03 --- /dev/null +++ b/targets/wasm-module/tacle-kernel-countnegative.cpp @@ -0,0 +1,25 @@ +#include "../lib.h" + +extern "C" { +void __pragma_loopbound(unsigned, unsigned) {} + +void countnegative_init(void); +void countnegative_main(void); +int countnegative_return(void); + +EXPORT("wasm_module") int wasm_module(void) { + countnegative_init(); + + fail_start_trace(); + countnegative_main(); + fail_stop_trace(); + + int ret = countnegative_return(); + if (ret == 0) { + fail_marker_positive(); + } else { + fail_marker_negative(); + } + return ret; +} +} diff --git a/targets/wasm-module/tacle-kernel-fft.cpp b/targets/wasm-module/tacle-kernel-fft.cpp new file mode 100644 index 0000000..5416dfc --- /dev/null +++ b/targets/wasm-module/tacle-kernel-fft.cpp @@ -0,0 +1,25 @@ +#include "../lib.h" + +extern "C" { +void __pragma_loopbound(unsigned, unsigned) {} + +void fft_init(void); +void fft_main(void); +int fft_return(void); + +EXPORT("wasm_module") int wasm_module(void) { + fft_init(); + + fail_start_trace(); + fft_main(); + fail_stop_trace(); + + int ret = fft_return(); + if (ret == 0) { + fail_marker_positive(); + } else { + fail_marker_negative(); + } + return ret; +} +} diff --git a/targets/wasm-module/tacle-kernel-md5.cpp b/targets/wasm-module/tacle-kernel-md5.cpp new file mode 100644 index 0000000..c306e32 --- /dev/null +++ b/targets/wasm-module/tacle-kernel-md5.cpp @@ -0,0 +1,25 @@ +#include "../lib.h" + +extern "C" { +void __pragma_loopbound(unsigned, unsigned) {} + +void md5_init(void); +void md5_main(void); +int md5_return(void); + +EXPORT("wasm_module") int wasm_module(void) { + md5_init(); + + fail_start_trace(); + md5_main(); + fail_stop_trace(); + + int ret = md5_return(); + if (ret == 0) { + fail_marker_positive(); + } else { + fail_marker_negative(); + } + return ret; +} +} diff --git a/targets/wasm-module/tacle-kernel-quicksort.cpp b/targets/wasm-module/tacle-kernel-quicksort.cpp new file mode 100644 index 0000000..e4fd259 --- /dev/null +++ b/targets/wasm-module/tacle-kernel-quicksort.cpp @@ -0,0 +1,25 @@ +#include "../lib.h" + +extern "C" { +void __pragma_loopbound(unsigned, unsigned) {} + +void quicksort_init(void); +void quicksort_main(void); +int quicksort_return(void); + +EXPORT("wasm_module") int wasm_module(void) { + quicksort_init(); + + fail_start_trace(); + quicksort_main(); + fail_stop_trace(); + + int ret = (quicksort_return() - 1527923179 != 0); + if (ret == 0) { + fail_marker_positive(); + } else { + fail_marker_negative(); + } + return ret; +} +} diff --git a/targets/wasm-module/tacle-kernel-recursion.cpp b/targets/wasm-module/tacle-kernel-recursion.cpp new file mode 100644 index 0000000..2433318 --- /dev/null +++ b/targets/wasm-module/tacle-kernel-recursion.cpp @@ -0,0 +1,25 @@ +#include "../lib.h" + +extern "C" { +void __pragma_loopbound(unsigned, unsigned) {} + +void recursion_init(void); +void recursion_main(void); +int recursion_return(void); + +EXPORT("wasm_module") int wasm_module(void) { + recursion_init(); + + fail_start_trace(); + recursion_main(); + fail_stop_trace(); + + int ret = recursion_return(); + if (ret == 0) { + fail_marker_positive(); + } else { + fail_marker_negative(); + } + return ret; +} +} diff --git a/targets/wasm-module/tacle-kernel-sha.cpp b/targets/wasm-module/tacle-kernel-sha.cpp new file mode 100644 index 0000000..73d9a57 --- /dev/null +++ b/targets/wasm-module/tacle-kernel-sha.cpp @@ -0,0 +1,25 @@ +#include "../lib.h" + +extern "C" { +void __pragma_loopbound(unsigned, unsigned) {} + +void sha_init(void); +void sha_main(void); +int sha_return(void); + +EXPORT("wasm_module") int wasm_module(void) { + sha_init(); + + fail_start_trace(); + sha_main(); + fail_stop_trace(); + + int ret = sha_return(); + if (ret == 0) { + fail_marker_positive(); + } else { + fail_marker_negative(); + } + return ret; +} +}