diff options
author | 2015-10-20 21:34:36 +0200 | |
---|---|---|
committer | 2015-10-20 21:34:36 +0200 | |
commit | a7b8acbe3eebcf17367baa642375cfa47ae4ea85 (patch) | |
tree | 854b859d6176802c0278f4b00de3f7c774e02dda /src/lib/netlist/plib/palloc.c | |
parent | 4610935e796661874bb4ee7ec6536d9423aeb7be (diff) | |
parent | 74aae76c4e3e257f99d139c4febb5d86d1419e50 (diff) |
Merge pull request #6 from mamedev/master
Sync to base master
Diffstat (limited to 'src/lib/netlist/plib/palloc.c')
-rw-r--r-- | src/lib/netlist/plib/palloc.c | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/src/lib/netlist/plib/palloc.c b/src/lib/netlist/plib/palloc.c new file mode 100644 index 00000000000..22dbc1d4e93 --- /dev/null +++ b/src/lib/netlist/plib/palloc.c @@ -0,0 +1,56 @@ +// license:GPL-2.0+ +// copyright-holders:Couriersud +/* + * palloc.c + * + */ + +#include <cstdio> + +#include "pconfig.h" +#include "palloc.h" +//============================================================ +// Exceptions +//============================================================ + +pexception::pexception(const pstring &text) +{ + m_text = text; + fprintf(stderr, "%s\n", m_text.cstr()); +} + +#if (PSTANDALONE) +#include <stdlib.h> +#include <xmmintrin.h> + +class pmemory_pool +{ +public: + pmemory_pool() {} +}; + +static pmemory_pool sppool; + +pmemory_pool *ppool = &sppool; + +void* operator new(std::size_t size, pmemory_pool *pool) throw (std::bad_alloc) +{ + return palloc_raw(size);; +} + +void operator delete(void *ptr, pmemory_pool *pool) +{ + if (ptr != NULL) + pfree_raw(ptr); +} + +void *palloc_raw(const size_t size) +{ + return _mm_malloc(size, 64); +} + +void pfree_raw(void *p) +{ + _mm_free(p); +} +#endif |