#define MORECORE to orca_mem_grow. Removed builtin memory routine that don't seem to be supported by wasm3 (TODO: investigate that later)
This commit is contained in:
parent
bcf84e0b80
commit
98a67cef72
4
build.sh
4
build.sh
|
@ -9,12 +9,12 @@ DEBUG_FLAGS="-g -DDEBUG -DLOG_COMPILE_DEBUG"
|
|||
# set target
|
||||
#--------------------------------------------------------------
|
||||
|
||||
target="$1"
|
||||
target="${1:-}"
|
||||
if [ -z $target ] ; then
|
||||
target='lib'
|
||||
fi
|
||||
|
||||
shaderFlagParam="$2"
|
||||
shaderFlagParam="${2:-}"
|
||||
#--------------------------------------------------------------
|
||||
# Detect OS and set environment variables accordingly
|
||||
#--------------------------------------------------------------
|
||||
|
|
|
@ -6,11 +6,8 @@
|
|||
#define LACKS_UNISTD_H
|
||||
#define LACKS_SYS_PARAM_H
|
||||
|
||||
void* nomorecore(size_t size) {
|
||||
abort();
|
||||
}
|
||||
|
||||
#define MORECORE nomorecore
|
||||
extern void* orca_mem_grow(u64 size);
|
||||
#define MORECORE orca_mem_grow
|
||||
|
||||
/*
|
||||
This is a version (aka dlmalloc) of malloc/free/realloc written by
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
*****************************************************************/
|
||||
|
||||
#include"platform_memory.h"
|
||||
#include <stdlib.h>
|
||||
|
||||
void* ORCA_IMPORT(orca_mem_grow)(u64 size);
|
||||
|
||||
|
@ -31,24 +30,58 @@ mem_base_allocator* mem_base_allocator_default()
|
|||
return(&base);
|
||||
}
|
||||
|
||||
// malloc, free, realloc, etc. are defined in orca_malloc.c
|
||||
|
||||
//TODO: implement malloc/realloc/free/memset/etc here...
|
||||
|
||||
|
||||
void* memset(void* b, int c, size_t n)
|
||||
{
|
||||
return __builtin_memset(b, c, n);
|
||||
for(size_t i = 0; i<n; i++)
|
||||
{
|
||||
((char*)b)[i] = (u8)c;
|
||||
}
|
||||
return(b);
|
||||
}
|
||||
|
||||
void* memcpy(void *restrict dst, const void *restrict src, size_t n)
|
||||
{
|
||||
return __builtin_memcpy(dst, src, n);
|
||||
for(size_t i = 0; i<n; i++)
|
||||
{
|
||||
((char*)dst)[i] = ((char*)src)[i];
|
||||
}
|
||||
return(dst);
|
||||
}
|
||||
|
||||
void* memmove(void *dst, const void *src, size_t n)
|
||||
{
|
||||
return __builtin_memmove(dst, src, n);
|
||||
if(src < dst)
|
||||
{
|
||||
for(size_t i = n-1; i>=0; i--)
|
||||
{
|
||||
((char*)dst)[i] = ((char*)src)[i];
|
||||
}
|
||||
}
|
||||
else if(src > dst)
|
||||
{
|
||||
for(size_t i = 0; i<n; i++)
|
||||
{
|
||||
((char*)dst)[i] = ((char*)src)[i];
|
||||
}
|
||||
}
|
||||
return(dst);
|
||||
}
|
||||
|
||||
int memcmp(const void *s1, const void *s2, size_t n)
|
||||
{
|
||||
return __builtin_memcmp(s1, s2, n);
|
||||
const unsigned char* c1 = (const unsigned char*)s1;
|
||||
const unsigned char* c2 = (const unsigned char*)s2;
|
||||
|
||||
for(size_t i = 0; i<n; i++)
|
||||
{
|
||||
if(c1[i] != c2[i])
|
||||
{
|
||||
return(c1 - c2);
|
||||
}
|
||||
}
|
||||
return(0);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue