Changed: Don't redefine new and delete operators if targetting x86_64
This commit is contained in:
parent
ffb0215c00
commit
b141d80267
2 changed files with 19 additions and 2 deletions
|
@ -43,11 +43,25 @@
|
||||||
// This way we know about _HAS_TR1 and _STLPORT_VERSION
|
// This way we know about _HAS_TR1 and _STLPORT_VERSION
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
|
#if defined(HAVE_X86_64)
|
||||||
|
# define NL_CPU_INTEL
|
||||||
|
# define NL_CPU_X86_64
|
||||||
|
// x86_64 CPU always have SSE2 instructions
|
||||||
|
# ifndef NL_HAS_SSE2
|
||||||
|
# define NL_HAS_SSE2
|
||||||
|
# endif
|
||||||
|
#elif defined(HAVE_X86)
|
||||||
|
# define NL_CPU_INTEL
|
||||||
|
# define NL_CPU_X86
|
||||||
|
#endif
|
||||||
|
|
||||||
// Operating systems definition
|
// Operating systems definition
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
# define NL_OS_WINDOWS
|
# define NL_OS_WINDOWS
|
||||||
# define NL_LITTLE_ENDIAN
|
# define NL_LITTLE_ENDIAN
|
||||||
|
# ifndef NL_CPU_INTEL
|
||||||
# define NL_CPU_INTEL
|
# define NL_CPU_INTEL
|
||||||
|
# endif
|
||||||
# ifndef _WIN32_WINNT
|
# ifndef _WIN32_WINNT
|
||||||
# define _WIN32_WINNT 0x0500 // Minimal OS = Windows 2000 (NeL is not supported on Windows 95/98)
|
# define _WIN32_WINNT 0x0500 // Minimal OS = Windows 2000 (NeL is not supported on Windows 95/98)
|
||||||
# endif
|
# endif
|
||||||
|
@ -384,10 +398,13 @@ inline void aligned_free(void *ptr) { free(ptr); }
|
||||||
#define NL_DEFAULT_MEMORY_ALIGNMENT 16
|
#define NL_DEFAULT_MEMORY_ALIGNMENT 16
|
||||||
#define NL_ALIGN_SSE2 NL_ALIGN(NL_DEFAULT_MEMORY_ALIGNMENT)
|
#define NL_ALIGN_SSE2 NL_ALIGN(NL_DEFAULT_MEMORY_ALIGNMENT)
|
||||||
|
|
||||||
|
#ifndef NL_CPU_X86_64
|
||||||
|
// on x86_64, new and delete are already aligned on 16 bytes
|
||||||
extern void *operator new(size_t size) throw(std::bad_alloc);
|
extern void *operator new(size_t size) throw(std::bad_alloc);
|
||||||
extern void *operator new[](size_t size) throw(std::bad_alloc);
|
extern void *operator new[](size_t size) throw(std::bad_alloc);
|
||||||
extern void operator delete(void *p) throw();
|
extern void operator delete(void *p) throw();
|
||||||
extern void operator delete[](void *p) throw();
|
extern void operator delete[](void *p) throw();
|
||||||
|
#endif
|
||||||
|
|
||||||
#else /* NL_HAS_SSE2 */
|
#else /* NL_HAS_SSE2 */
|
||||||
|
|
||||||
|
|
|
@ -80,7 +80,7 @@ extern "C" long _ftol2( double dblSource ) { return _ftol( dblSource ); }
|
||||||
#endif // !NL_COMP_MINGW
|
#endif // !NL_COMP_MINGW
|
||||||
|
|
||||||
|
|
||||||
#ifdef NL_HAS_SSE2
|
#if defined(NL_HAS_SSE2) && !defined(NL_CPU_X86_64)
|
||||||
|
|
||||||
void *operator new(size_t size) throw(std::bad_alloc)
|
void *operator new(size_t size) throw(std::bad_alloc)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue