21 lines
510 B
C++
21 lines
510 B
C++
#include <string>
|
|
|
|
void __attribute__((noinline)) memcpy_noinline(void *dst, void *src, size_t size)
|
|
{
|
|
memcpy(dst,src,size);
|
|
}
|
|
|
|
void __attribute__((noinline)) memset_noinline(void *dst, int value, size_t size)
|
|
{
|
|
memset(dst, value, size);
|
|
}
|
|
|
|
uint64_t __attribute__((noinline)) sum(volatile void *src, size_t size)
|
|
{
|
|
uint64_t *src_ptr = (uint64_t*)src;
|
|
uint64_t sum = 0;
|
|
size_t len = size / sizeof(uint64_t);
|
|
for (size_t i = 0; i < len; i+=1)
|
|
sum += src_ptr[i];
|
|
return sum;
|
|
}
|