// Replacement for malloc.h which factors out platform differences. #include #if defined(VGO_darwin) # include #else # include #endif #include // Allocates a 16-aligned block. Asserts if the allocation fails. __attribute__((unused)) static void* memalign16(size_t szB) { void* x; #if defined(VGO_darwin) // Darwin lacks memalign, but its malloc is always 16-aligned anyway. x = malloc(szB); #else x = memalign(16, szB); #endif assert(x); assert(0 == ((16-1) & (unsigned long)x)); return x; }