Rhys Kidd 8a014b4f97 Increase test coverage on OS X, by re-enabling the none/tests/*/movbe regression tests with a handy memalign() shim.
n-i-bz

$ perl tests/vg_regtest none/tests/x86/movbe none/tests/amd64/movbe
movbe:           valgrind   -q ./movbe 
movbe:           valgrind   -q ./movbe 

== 2 tests, 0 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures ==


On OS X 10.10

Before:

== 592 tests, 215 stderr failures, 9 stdout failures, 0 stderrB failures, 0 stdoutB failures, 30 post failures ==

After:

== 594 tests, 215 stderr failures, 9 stdout failures, 0 stderrB failures, 0 stdoutB failures, 30 post failures ==


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15549
2015-08-15 10:47:55 +00:00

44 lines
919 B
C

// Replacement for malloc.h which factors out platform differences.
#include <stdlib.h>
#if defined(VGO_darwin)
# include <malloc/malloc.h>
#else
# include <malloc.h>
#endif
#include <assert.h>
// 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;
}
// Allocates a 32-aligned block. Asserts if the allocation fails.
__attribute__((unused))
static void* memalign32(size_t szB)
{
void* x;
#if defined(VGO_darwin)
// Darwin lacks memalign
posix_memalign((void **)&x, 32, szB);
#else
x = memalign(32, szB);
#endif
assert(x);
assert(0 == ((32-1) & (unsigned long)x));
return x;
}