3 // Poor mans range-based for loops.
4 #define FACTOR_FOR_EACH(iterable) \
5 for (typeof((iterable).begin()) iter = (iterable).begin(); \
6 iter != (iterable).end(); \
9 inline static void memset_2(void* dst, uint16_t pattern, size_t size) {
11 cell cell_pattern = (pattern | (pattern << 16));
12 memset_pattern4(dst, &cell_pattern, size);
17 uint16_t* start = (uint16_t*)dst;
18 uint16_t* end = (uint16_t*)((cell)dst + size);
27 inline static void memset_cell(void* dst, cell pattern, size_t size) {
30 memset_pattern8(dst, &pattern, size);
32 memset_pattern4(dst, &pattern, size);
38 cell* start = (cell*)dst;
39 cell* end = (cell*)((cell)dst + size);
48 void* fill_function_descriptor(void* ptr, void* code);
49 void* function_descriptor_field(void* ptr, size_t idx);
51 vm_char* safe_strdup(const vm_char* str);
53 VM_C_API void* factor_memcpy(void* dst, void* src, size_t len);