|
@@ -27,6 +27,27 @@
|
|
|
#define INSERT_PADDING_BYTES(num_bytes) u8 CONCAT2(pad, __LINE__)[(num_bytes)]
|
|
#define INSERT_PADDING_BYTES(num_bytes) u8 CONCAT2(pad, __LINE__)[(num_bytes)]
|
|
|
#define INSERT_PADDING_WORDS(num_words) u32 CONCAT2(pad, __LINE__)[(num_words)]
|
|
#define INSERT_PADDING_WORDS(num_words) u32 CONCAT2(pad, __LINE__)[(num_words)]
|
|
|
|
|
|
|
|
|
|
+#ifdef _WIN32
|
|
|
|
|
+ // Alignment
|
|
|
|
|
+ #define MEMORY_ALIGNED16(x) __declspec(align(16)) x
|
|
|
|
|
+ #define MEMORY_ALIGNED32(x) __declspec(align(32)) x
|
|
|
|
|
+ #define MEMORY_ALIGNED64(x) __declspec(align(64)) x
|
|
|
|
|
+ #define MEMORY_ALIGNED128(x) __declspec(align(128)) x
|
|
|
|
|
+#else
|
|
|
|
|
+ // Windows compatibility
|
|
|
|
|
+ #ifdef _LP64
|
|
|
|
|
+ #define _M_X64 1
|
|
|
|
|
+ #else
|
|
|
|
|
+ #define _M_IX86 1
|
|
|
|
|
+ #endif
|
|
|
|
|
+
|
|
|
|
|
+ #define __forceinline inline __attribute__((always_inline))
|
|
|
|
|
+ #define MEMORY_ALIGNED16(x) __attribute__((aligned(16))) x
|
|
|
|
|
+ #define MEMORY_ALIGNED32(x) __attribute__((aligned(32))) x
|
|
|
|
|
+ #define MEMORY_ALIGNED64(x) __attribute__((aligned(64))) x
|
|
|
|
|
+ #define MEMORY_ALIGNED128(x) __attribute__((aligned(128))) x
|
|
|
|
|
+#endif
|
|
|
|
|
+
|
|
|
#ifndef _MSC_VER
|
|
#ifndef _MSC_VER
|
|
|
|
|
|
|
|
#include <errno.h>
|
|
#include <errno.h>
|