mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-05-28 00:02:28 +00:00
Add Intel intrinsics headers
This commit is contained in:
parent
369f9740de
commit
b7bf052a4b
121 changed files with 47114 additions and 849 deletions
27
third_party/intel/mm_malloc.internal.h
vendored
Normal file
27
third_party/intel/mm_malloc.internal.h
vendored
Normal file
|
@ -0,0 +1,27 @@
|
|||
#ifndef _MM_MALLOC_H_INCLUDED
|
||||
#define _MM_MALLOC_H_INCLUDED
|
||||
#include "libc/mem/mem.h"
|
||||
|
||||
#ifndef __cplusplus
|
||||
extern int _mm_posix_memalign(void **, size_t, size_t)
|
||||
#else
|
||||
extern "C" int _mm_posix_memalign(void **, size_t, size_t) throw()
|
||||
#endif
|
||||
__asm__("posix_memalign");
|
||||
|
||||
static __inline void *_mm_malloc(size_t __size, size_t __alignment) {
|
||||
void *__ptr;
|
||||
if (__alignment == 1) return malloc(__size);
|
||||
if (__alignment == 2 || (sizeof(void *) == 8 && __alignment == 4))
|
||||
__alignment = sizeof(void *);
|
||||
if (_mm_posix_memalign(&__ptr, __alignment, __size) == 0)
|
||||
return __ptr;
|
||||
else
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static __inline void _mm_free(void *__ptr) {
|
||||
free(__ptr);
|
||||
}
|
||||
|
||||
#endif /* _MM_MALLOC_H_INCLUDED */
|
Loading…
Add table
Add a link
Reference in a new issue