From 386b7d3366f1359a265da207a9cafa3edf553b64 Mon Sep 17 00:00:00 2001 From: Joshua Bakita Date: Mon, 7 Oct 2019 19:13:39 -0400 Subject: Reorganize and commit all the modified TACLeBench code and run scripts --- all_pairs/source/susan/wccmalloc.c | 51 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 all_pairs/source/susan/wccmalloc.c (limited to 'all_pairs/source/susan/wccmalloc.c') diff --git a/all_pairs/source/susan/wccmalloc.c b/all_pairs/source/susan/wccmalloc.c new file mode 100644 index 0000000..edf01cc --- /dev/null +++ b/all_pairs/source/susan/wccmalloc.c @@ -0,0 +1,51 @@ +#include "wccmalloc.h" + +// This must be redefined for each new benchmark +#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 min 76 max 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 min 7220 max 28880" ) + for ( i = 0; i < num; ++i ) { + *char_ptr++ = (unsigned char)value; + } +} -- cgit v1.2.2