Add wasm tacle-bench targets

This commit is contained in:
2026-06-12 20:06:22 +02:00
parent 30daa8a00c
commit 08c2e9c13d
1122 changed files with 520422 additions and 0 deletions

View File

@ -0,0 +1,56 @@
#include "wccmalloc.h"
// This must be redefined for each new benchmark
// Wasm loop bounds
__attribute__((import_module("__pragma"), import_name("loopbound"))) extern void
__pragma_loopbound(unsigned int min_bound, unsigned int max_bound);
#define HEAP_SIZE 30000
char susan_simulated_heap[HEAP_SIZE];
unsigned int susan_freeHeapPos;
void *
susan_wccmalloc(unsigned int numberOfBytes) {
// Get a 4-byte adress for alignment purposes
unsigned int offset =
((unsigned long) susan_simulated_heap + susan_freeHeapPos) % 4;
if (offset)
susan_freeHeapPos += 4 - offset;
void *currentPos = (void *) &susan_simulated_heap[susan_freeHeapPos];
susan_freeHeapPos += numberOfBytes;
return currentPos;
}
void
susan_wccfreeall(void) {
susan_freeHeapPos = 0;
}
void *
susan_wccmemcpy(void *dstpp, const void *srcpp, unsigned int len) {
unsigned long int dstp = (long int) dstpp;
unsigned long int srcp = (long int) srcpp;
__pragma_loopbound(76, 76);
while (len > 0) {
char __x = ((char *) srcp)[0];
srcp += 1;
len -= 1;
((char *) dstp)[0] = __x;
dstp += 1;
}
return dstpp;
}
void
susan_wccmemset(void *p, int value, unsigned int num) {
unsigned long i;
char *char_ptr = (char *) p;
__pragma_loopbound(7220, 7220);
for (i = 0; i < num; ++i)
*char_ptr++ = (unsigned char) value;
}