mirror of
https://github.com/microsoft/mimalloc.git
synced 2025-07-06 19:38:41 +03:00
resolve #201 with a platform-selective REP MOVSB implementation
This commit is contained in:
parent
66048cb6cc
commit
429025634e
8 changed files with 26 additions and 10 deletions
|
@ -174,6 +174,22 @@ bool _mi_page_is_valid(mi_page_t* page);
|
|||
#define EOVERFLOW (75)
|
||||
#endif
|
||||
|
||||
// ------------------------------------------------------
|
||||
// Fast `memcpy()` on x86(_64) platforms unavailable,
|
||||
// use REP MOVSB
|
||||
// ------------------------------------------------------
|
||||
|
||||
#if defined(_M_IX86) || defined(_M_X64)
|
||||
#include <intrin.h>
|
||||
#define _mi_memcpy _mi_memcpy_rep_movsb
|
||||
static inline void _mi_memcpy_rep_movsb (void *d, const void *s, size_t n) {
|
||||
__movsb(d, s, n);
|
||||
return;
|
||||
}
|
||||
#else
|
||||
#define _mi_memcpy memcpy
|
||||
#endif
|
||||
|
||||
|
||||
/* -----------------------------------------------------------
|
||||
Inlined definitions
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue