separate allocB for mmX

This commit is contained in:
dzaima 2021-07-11 22:09:26 +03:00
parent 1d5e7212fd
commit 48380be063

View File

@ -16,6 +16,8 @@
// separate memory management system for executable code; isn't garbage-collected // separate memory management system for executable code; isn't garbage-collected
EmptyValue* mmX_buckets[64]; EmptyValue* mmX_buckets[64];
u64 mmX_allocB;
#define allocB mmX_allocB
#define BSZ(X) (1ull<<(X)) #define BSZ(X) (1ull<<(X))
#define BSZI(X) ((u8)(64-__builtin_clzl((X)-1ull))) #define BSZI(X) ((u8)(64-__builtin_clzl((X)-1ull)))
#define MMI(X) X #define MMI(X) X
@ -27,6 +29,7 @@ EmptyValue* mmX_buckets[64];
#define FLAGS MAP_NORESERVE|MAP_PRIVATE|MAP_ANON|MAP_32BIT #define FLAGS MAP_NORESERVE|MAP_PRIVATE|MAP_ANON|MAP_32BIT
#include "../opt/mm_buddyTemplate.c" #include "../opt/mm_buddyTemplate.c"
static void* mmX_allocN(usz sz, u8 type) { assert(sz>=16); return mmX_allocL(64-__builtin_clzl(sz-1ull), type); } static void* mmX_allocN(usz sz, u8 type) { assert(sz>=16); return mmX_allocL(64-__builtin_clzl(sz-1ull), type); }
#undef allocB
#undef mmX_buckets #undef mmX_buckets
#undef BN #undef BN
#undef BSZ #undef BSZ