diff --git a/.vscode/settings.json b/.vscode/settings.json index ab5b18d..acf853f 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -65,7 +65,12 @@ "profiling.h": "c", "ring.h": "c", "debug.h": "c", - "arena.h": "c" + "arena.h": "c", + "tmmintrin.h": "c", + "math.h": "c", + "command_line.h": "c", + "sort.h": "c", + "chrono": "c" }, "workbench.colorCustomizations": { "activityBar.activeBackground": "#713fb8", diff --git a/code/base/arena.h b/code/base/arena.h index 9e3ae0a..b962d3d 100644 --- a/code/base/arena.h +++ b/code/base/arena.h @@ -74,8 +74,8 @@ AllocatorInfo arena_allocator(Arena* arena) { //- rjf: arena creation/destruction -MD_API Arena* arena_alloc_(ArenaParams* params); -#define arena_alloc(...) arena_alloc_( &(ArenaParams){ __VA_ARGS__ } ) +MD_API Arena* arena__alloc(ArenaParams* params); +#define arena_alloc(...) arena__alloc( &(ArenaParams){ __VA_ARGS__ } ) void arena_release(Arena *arena); diff --git a/code/base/base.c b/code/base/base.c new file mode 100644 index 0000000..ce7a429 --- /dev/null +++ b/code/base/base.c @@ -0,0 +1,5 @@ +#ifdef INTELLISENSE_DIRECTIVES +# include "base.h" +#endif + + diff --git a/code/base/base_types.h b/code/base/base_types.h index f36466a..0315c22 100644 --- a/code/base/base_types.h +++ b/code/base/base_types.h @@ -132,13 +132,13 @@ typedef void VoidProc(void); #if ARCH_32BIT # define MIN_USIZE U32_MIN # define MAX_USIZE U32_MAX -# define MIN_ISIZE S32_MIN -# define MAX_ISIZE S32_MAX +# define MIN_SSIZE S32_MIN +# define MAX_SSIZE S32_MAX #elif ARCH_64BIT # define MIN_USIZE U64_MIN # define MAX_USIZE U64_MAX -# define MIN_ISIZE S64_MIN -# define MAX_ISIZE S64_MAX +# define MIN_SSIZE S64_MIN +# define MAX_SSIZE S64_MAX #else # error Unknown architecture size. This library only supports 32 bit and 64 bit architectures. #endif diff --git a/code/base/math.h b/code/base/math.h index a5b48b9..ea48252 100644 --- a/code/base/math.h +++ b/code/base/math.h @@ -362,11 +362,11 @@ struct Rng1S64Array //////////////////////////////// //~ rjf: Clamps, Mins, Maxes -#ifndef min -#define min(A, B) (((A) < (B)) ? (A) : (B)) +#ifndef md_min +#define md_min(A, B) (((A) < (B)) ? (A) : (B)) #endif -#ifndef max -#define max(A, B) (((A) > (B)) ? (A) : (B)) +#ifndef md_max +#define md_max(A, B) (((A) > (B)) ? (A) : (B)) #endif #ifndef clamp_top @@ -780,8 +780,8 @@ inline Rng1U32 pad_1u32 (Rng1U32 r, U32 x) { r.min -= x; r.max inline U32 center_1u32 (Rng1U32 r) { U32 c = (r.min + r.max) / 2; return c; } inline B32 contains_1u32 (Rng1U32 r, U32 x) { B32 c = (r.min <= x && x < r.max); return c; } inline U32 dim_1u32 (Rng1U32 r) { U32 c = r.max - r.min; return c; } -inline Rng1U32 union_1u32 (Rng1U32 a, Rng1U32 b) { Rng1U32 c = {min(a.min, b.min), min(a.max, b.max)}; return c; } -inline Rng1U32 intersect_1u32(Rng1U32 a, Rng1U32 b) { Rng1U32 c = {max(a.min, b.min), min(a.max, b.max)}; return c; } +inline Rng1U32 union_1u32 (Rng1U32 a, Rng1U32 b) { Rng1U32 c = {md_min(a.min, b.min), md_min(a.max, b.max)}; return c; } +inline Rng1U32 intersect_1u32(Rng1U32 a, Rng1U32 b) { Rng1U32 c = {md_max(a.min, b.min), md_min(a.max, b.max)}; return c; } inline U32 clamp_1u32 (Rng1U32 r, U32 v) { v = clamp(r.min, v, r.max); return v; } #define r1s32(min, max) rng_1s32((min), (max)) @@ -791,8 +791,8 @@ inline Rng1S32 pad_1s32 (Rng1S32 r, S32 x) { r.min -= x; r.max inline S32 center_1s32 (Rng1S32 r) { S32 c = (r.min+r.max) / 2; return c; } inline B32 contains_1s32 (Rng1S32 r, S32 x) { B32 c = (r.min <= x && x < r.max); return c; } inline S32 dim_1s32 (Rng1S32 r) { S32 c = r.max-r.min; return c; } -inline Rng1S32 union_1s32 (Rng1S32 a, Rng1S32 b) { Rng1S32 c = {min(a.min, b.min), max(a.max, b.max)}; return c; } -inline Rng1S32 intersect_1s32(Rng1S32 a, Rng1S32 b) { Rng1S32 c = {max(a.min, b.min), min(a.max, b.max)}; return c; } +inline Rng1S32 union_1s32 (Rng1S32 a, Rng1S32 b) { Rng1S32 c = {md_min(a.min, b.min), md_max(a.max, b.max)}; return c; } +inline Rng1S32 intersect_1s32(Rng1S32 a, Rng1S32 b) { Rng1S32 c = {md_max(a.min, b.min), md_min(a.max, b.max)}; return c; } inline S32 clamp_1s32 (Rng1S32 r, S32 v) { v = clamp(r.min, v, r.max); return v; } #define r1u64(min, max) rng_1u64((min), (max)) @@ -802,8 +802,8 @@ inline Rng1U64 pad_1u64 (Rng1U64 r, U64 x) { r.min -= x; r.max inline U64 center_1u64 (Rng1U64 r) { U64 c = (r.min + r.max)/2; return c; } inline B32 contains_1u64 (Rng1U64 r, U64 x) { B32 c = (r.min <= x && x < r.max); return c; } inline U64 dim_1u64 (Rng1U64 r) { U64 c = r.max-r.min; return c; } -inline Rng1U64 union_1u64 (Rng1U64 a, Rng1U64 b) { Rng1U64 c = {min(a.min, b.min), max(a.max, b.max)}; return c; } -inline Rng1U64 intersect_1u64(Rng1U64 a, Rng1U64 b) { Rng1U64 c = {max(a.min, b.min), min(a.max, b.max)}; return c; } +inline Rng1U64 union_1u64 (Rng1U64 a, Rng1U64 b) { Rng1U64 c = {md_min(a.min, b.min), md_max(a.max, b.max)}; return c; } +inline Rng1U64 intersect_1u64(Rng1U64 a, Rng1U64 b) { Rng1U64 c = {md_max(a.min, b.min), md_min(a.max, b.max)}; return c; } inline U64 clamp_1u64 (Rng1U64 r, U64 v) { v = clamp(r.min, v, r.max); return v; } #define r1s64(min, max) rng_1s64((min), (max)) @@ -813,8 +813,8 @@ inline Rng1S64 pad_1s64 (Rng1S64 r, S64 x) { r.min -= x; r.max inline S64 center_1s64 (Rng1S64 r) { S64 c = (r.min + r.max) / 2; return c; } inline B32 contains_1s64 (Rng1S64 r, S64 x) { B32 c = (r.min <= x && x < r.max); return c; } inline S64 dim_1s64 (Rng1S64 r) { S64 c = r.max - r.min; return c; } -inline Rng1S64 union_1s64 (Rng1S64 a, Rng1S64 b) { Rng1S64 c = {min(a.min, b.min), max(a.max, b.max)}; return c; } -inline Rng1S64 intersect_1s64(Rng1S64 a, Rng1S64 b) { Rng1S64 c = {max(a.min, b.min), min(a.max, b.max)}; return c; } +inline Rng1S64 union_1s64 (Rng1S64 a, Rng1S64 b) { Rng1S64 c = {md_min(a.min, b.min), md_max(a.max, b.max)}; return c; } +inline Rng1S64 intersect_1s64(Rng1S64 a, Rng1S64 b) { Rng1S64 c = {md_max(a.min, b.min), md_min(a.max, b.max)}; return c; } inline S64 clamp_1s64 (Rng1S64 r, S64 v) { v = clamp(r.min, v, r.max); return v;} #define r1f32(min, max) rng_1f32((min), (max)) @@ -824,8 +824,8 @@ inline Rng1F32 pad_1f32 (Rng1F32 r, F32 x) { r.min -= x; r.max inline F32 center_1f32 (Rng1F32 r) { F32 c = (r.min + r.max) / 2; return c; } inline B32 contains_1f32 (Rng1F32 r, F32 x) { B32 c = (r.min <= x && x < r.max); return c; } inline F32 dim_1f32 (Rng1F32 r) { F32 c = r.max - r.min; return c; } -inline Rng1F32 union_1f32 (Rng1F32 a, Rng1F32 b) { Rng1F32 c = {min(a.min, b.min), max(a.max, b.max)}; return c; } -inline Rng1F32 intersect_1f32(Rng1F32 a, Rng1F32 b) { Rng1F32 c = {max(a.min, b.min), min(a.max, b.max)}; return c; } +inline Rng1F32 union_1f32 (Rng1F32 a, Rng1F32 b) { Rng1F32 c = {md_min(a.min, b.min), md_max(a.max, b.max)}; return c; } +inline Rng1F32 intersect_1f32(Rng1F32 a, Rng1F32 b) { Rng1F32 c = {md_max(a.min, b.min), md_min(a.max, b.max)}; return c; } inline F32 clamp_1f32 (Rng1F32 r, F32 v) { v = clamp(r.min, v, r.max); return v; } // ==================== 2D Ranges ==================== @@ -838,8 +838,8 @@ inline Rng2S16 pad_2s16 (Rng2S16 r, S16 x) { Vec2S16 xv = {x, x}; r inline Vec2S16 center_2s16 (Rng2S16 r) { Vec2S16 c = {(S16)((r.min.x + r.max.x) / 2), (S16)((r.min.y + r.max.y) / 2)}; return c; } inline B32 contains_2s16 (Rng2S16 r, Vec2S16 x) { B32 c = (r.min.x <= x.x && x.x < r.max.x && r.min.y <= x.y && x.y < r.max.y); return c; } inline Vec2S16 dim_2s16 (Rng2S16 r) { Vec2S16 dim = {(S16)(r.max.x - r.min.x), (S16)(r.max.y - r.min.y)}; return dim; } -inline Rng2S16 union_2s16 (Rng2S16 a, Rng2S16 b) { Rng2S16 c; c.p0.x = min(a.min.x, b.min.x); c.p0.y = min(a.min.y, b.min.y); c.p1.x = max(a.max.x, b.max.x); c.p1.y = max(a.max.y, b.max.y); return c; } -inline Rng2S16 intersect_2s16(Rng2S16 a, Rng2S16 b) { Rng2S16 c; c.p0.x = max(a.min.x, b.min.x); c.p0.y = max(a.min.y, b.min.y); c.p1.x = min(a.max.x, b.max.x); c.p1.y = min(a.max.y, b.max.y); return c; } +inline Rng2S16 union_2s16 (Rng2S16 a, Rng2S16 b) { Rng2S16 c; c.p0.x = md_min(a.min.x, b.min.x); c.p0.y = md_min(a.min.y, b.min.y); c.p1.x = md_max(a.max.x, b.max.x); c.p1.y = md_max(a.max.y, b.max.y); return c; } +inline Rng2S16 intersect_2s16(Rng2S16 a, Rng2S16 b) { Rng2S16 c; c.p0.x = md_max(a.min.x, b.min.x); c.p0.y = md_max(a.min.y, b.min.y); c.p1.x = md_min(a.max.x, b.max.x); c.p1.y = md_min(a.max.y, b.max.y); return c; } inline Vec2S16 clamp_2s16 (Rng2S16 r, Vec2S16 v) { v.x = clamp(r.min.x, v.x, r.max.x); v.y = clamp(r.min.y, v.y, r.max.y); return v; } #define r2s32(min, max) rng_2s32((min), (max)) @@ -850,8 +850,8 @@ inline Rng2S32 pad_2s32 (Rng2S32 r, S32 x) { Vec2S32 xv = {x, x}; r inline Vec2S32 center_2s32 (Rng2S32 r) { Vec2S32 c = {(r.min.x + r.max.x) / 2, (r.min.y + r.max.y) / 2}; return c; } inline B32 contains_2s32 (Rng2S32 r, Vec2S32 x) { B32 c = (r.min.x <= x.x && x.x < r.max.x && r.min.y <= x.y && x.y < r.max.y); return c; } inline Vec2S32 dim_2s32 (Rng2S32 r) { Vec2S32 dim = {r.max.x - r.min.x, r.max.y - r.min.y}; return dim; } -inline Rng2S32 union_2s32 (Rng2S32 a, Rng2S32 b) { Rng2S32 c; c.p0.x = min(a.min.x, b.min.x); c.p0.y = min(a.min.y, b.min.y); c.p1.x = max(a.max.x, b.max.x); c.p1.y = max(a.max.y, b.max.y); return c; } -inline Rng2S32 intersect_2s32(Rng2S32 a, Rng2S32 b) { Rng2S32 c; c.p0.x = max(a.min.x, b.min.x); c.p0.y = max(a.min.y, b.min.y); c.p1.x = min(a.max.x, b.max.x); c.p1.y = min(a.max.y, b.max.y); return c; } +inline Rng2S32 union_2s32 (Rng2S32 a, Rng2S32 b) { Rng2S32 c; c.p0.x = md_min(a.min.x, b.min.x); c.p0.y = md_min(a.min.y, b.min.y); c.p1.x = md_max(a.max.x, b.max.x); c.p1.y = md_max(a.max.y, b.max.y); return c; } +inline Rng2S32 intersect_2s32(Rng2S32 a, Rng2S32 b) { Rng2S32 c; c.p0.x = md_max(a.min.x, b.min.x); c.p0.y = md_max(a.min.y, b.min.y); c.p1.x = md_min(a.max.x, b.max.x); c.p1.y = md_min(a.max.y, b.max.y); return c; } inline Vec2S32 clamp_2s32 (Rng2S32 r, Vec2S32 v) { v.x = clamp(r.min.x, v.x, r.max.x); v.y = clamp(r.min.y, v.y, r.max.y); return v; } #define r2s64(min, max) rng_2s64((min), (max)) @@ -862,8 +862,8 @@ inline Rng2S64 pad_2s64 (Rng2S64 r, S64 x) { Vec2S64 xv = {x, x}; r inline Vec2S64 center_2s64 (Rng2S64 r) { Vec2S64 c = {(r.min.x + r.max.x) / 2, (r.min.y + r.max.y) / 2}; return c; } inline B32 contains_2s64 (Rng2S64 r, Vec2S64 x) { B32 c = (r.min.x <= x.x && x.x < r.max.x && r.min.y <= x.y && x.y < r.max.y); return c; } inline Vec2S64 dim_2s64 (Rng2S64 r) { Vec2S64 dim = {r.max.x - r.min.x, r.max.y - r.min.y}; return dim; } -inline Rng2S64 union_2s64 (Rng2S64 a, Rng2S64 b) { Rng2S64 c; c.p0.x = min(a.min.x, b.min.x); c.p0.y = min(a.min.y, b.min.y); c.p1.x = max(a.max.x, b.max.x); c.p1.y = max(a.max.y, b.max.y); return c; } -inline Rng2S64 intersect_2s64(Rng2S64 a, Rng2S64 b) { Rng2S64 c; c.p0.x = max(a.min.x, b.min.x); c.p0.y = max(a.min.y, b.min.y); c.p1.x = min(a.max.x, b.max.x); c.p1.y = min(a.max.y, b.max.y); return c; } +inline Rng2S64 union_2s64 (Rng2S64 a, Rng2S64 b) { Rng2S64 c; c.p0.x = md_min(a.min.x, b.min.x); c.p0.y = md_min(a.min.y, b.min.y); c.p1.x = md_max(a.max.x, b.max.x); c.p1.y = md_max(a.max.y, b.max.y); return c; } +inline Rng2S64 intersect_2s64(Rng2S64 a, Rng2S64 b) { Rng2S64 c; c.p0.x = md_max(a.min.x, b.min.x); c.p0.y = md_max(a.min.y, b.min.y); c.p1.x = md_min(a.max.x, b.max.x); c.p1.y = md_min(a.max.y, b.max.y); return c; } inline Vec2S64 clamp_2s32 (Rng2S64 r, Vec2S64 v) { v.x = clamp(r.min.x, v.x, r.max.x); v.y = clamp(r.min.y, v.y, r.max.y); return v; } //////////////////////////////// @@ -879,8 +879,8 @@ U32 u32_from_rgba (Vec4F32 rgba); inline Vec3F32 hsv_from_rgb(Vec3F32 rgb) { - F32 c_max = Max(rgb.x, Max(rgb.y, rgb.z)); - F32 c_min = Min(rgb.x, Min(rgb.y, rgb.z)); + F32 c_max = md_max(rgb.x, md_max(rgb.y, rgb.z)); + F32 c_min = md_min(rgb.x, md_min(rgb.y, rgb.z)); F32 delta = c_max - c_min; F32 q_delta = 1.0f / delta; F32 h = ( diff --git a/gen_c11/c11.refactor b/gen_c11/c11.refactor index 563c18f..ff3e57f 100644 --- a/gen_c11/c11.refactor +++ b/gen_c11/c11.refactor @@ -17,13 +17,15 @@ // base/context_cracking.h -word HAS_ATTRIBUTE, MD_HAS_ATTRIBUTE +namespace BUILD_, MD_BUILD_ -namespace ARCH_, MD_ARCH_ -namespace COMPILER_, MD_COMPILER_ -namespace GCC_, MD_GCC_ -namespace LANG_, MD_LANG_ -namespace OS_, MD_OS_ +namespace ARCH_, MD_ARCH_ +namespace COMPILER_, MD_COMPILER_ +namespace GCC_, MD_GCC_ +namespace LANG_, MD_LANG_ +namespace OS_, MD_OS_ + +word HAS_ATTRIBUTE, MD_HAS_ATTRIBUTE // base/linkage.h @@ -32,23 +34,35 @@ word internal, md_internal // base/macros.h -word local_persist, md_local_persist -word thread_static, md_thread_static - -word expect, md_expect -word likely, md_likely -word unlikely, md_unlikely +word expect, md_expect +word likely, md_likely +word unlikely, md_unlikely word ccast, word md_ccast word pcast, word md_pcast word rcast, word md_rcast word scast, word md_scast -word typeof, word md_typeof +// word typeof, word md_typeof word enum_underlying, md_enum_underlying word nullptr, md_nullptr +word force_inline, md_force_inline +word never_inline, md_never_inline + +word defer_loop, md_defer_loop +word defer_loop_checked, md_defer_loop_checked + +word each_enum_val, md_each_enum_val +word each_non_zero_enum_val, md_each_non_zero_enum_val + +// base/profiling.h + +word MARKUP_LAYER_COLOR, MD_MARKUP_LAYER_COLOR + +namespace prof_, md_prof_ + // base/base_types.h word U8, MD_U8 @@ -74,6 +88,192 @@ word B8, MD_B8 word B16, MD_B16 word B32, MD_B32 +word VoidProc, MD_VoidProc + +word SIGN32, MD_SIGN32 +word EXPONENT32, MD_EXPONENT32 +word MANTISSA32, MD_MANTISSA32 + +word BIG_GOLDEN32, MD_BIG_GOLDEN32 + +word SMALL_GOLDEN32, MD_SMALL_GOLDEN32 + +word PI32, MD_PI32 + +word MACHINE_EPSILON64, MD_MACHINE_EPSILON64 + +word MIN_U8, MD_MIN_U8 +word MAX_U8, MD_MAX_U8 +word MIN_S8, MD_MIN_S8 +word MAX_S8, MD_MAX_S8 + +word MIN_U16, MD_MIN_U16 +word MAX_U16, MD_MAX_U16 +word MIN_S16, MD_MIN_S16 +word MAX_S16, MD_MAX_S16 + +word MIN_U32, MD_MIN_U32 +word MAX_U32, MD_MAX_U32 +word MIN_S32, MD_MIN_S32 +word MAX_S32, MD_MAX_S32 + +word MIN_U64, MD_MIN_U64 +word MAX_U64, MD_MAX_U64 +word MIN_S64, MD_MIN_S64 +word MAX_S64, MD_MAX_S64 + +word MIN_USIZE, MD_MIN_USIZE +word MAX_USIZE, MD_MAX_USIZE +word MIN_ISIZE, MD_MIN_SSIZE +word MAX_ISIZE, MD_MAX_SSIZE + +word MIN_F32, MD_MIN_F32 +word MAX_F32, MD_MAX_F32 +word MIN_F64, MD_MIN_F64 +word MAX_F64, MD_MAX_F64 + +word BITMASK1, MD_BITMASK1 +word BITMASK2, MD_BITMASK2 +word BITMASK3, MD_BITMASK3 +word BITMASK4, MD_BITMASK4 +word BITMASK5, MD_BITMASK5 +word BITMASK6, MD_BITMASK6 +word BITMASK7, MD_BITMASK7 +word BITMASK8, MD_BITMASK8 +word BITMASK9, MD_BITMASK9 +word BITMASK10, MD_BITMASK10 +word BITMASK11, MD_BITMASK11 +word BITMASK12, MD_BITMASK12 +word BITMASK13, MD_BITMASK13 +word BITMASK14, MD_BITMASK14 +word BITMASK15, MD_BITMASK15 +word BITMASK16, MD_BITMASK16 +word BITMASK17, MD_BITMASK17 +word BITMASK18, MD_BITMASK18 +word BITMASK19, MD_BITMASK19 +word BITMASK20, MD_BITMASK20 +word BITMASK21, MD_BITMASK21 +word BITMASK22, MD_BITMASK22 +word BITMASK23, MD_BITMASK23 +word BITMASK24, MD_BITMASK24 +word BITMASK25, MD_BITMASK25 +word BITMASK26, MD_BITMASK26 +word BITMASK27, MD_BITMASK27 +word BITMASK28, MD_BITMASK28 +word BITMASK29, MD_BITMASK29 +word BITMASK30, MD_BITMASK30 +word BITMASK31, MD_BITMASK31 +word BITMASK32, MD_BITMASK32 + +word BITMASK33, MD_BITMASK33 +word BITMASK34, MD_BITMASK34 +word BITMASK35, MD_BITMASK35 +word BITMASK36, MD_BITMASK36 +word BITMASK37, MD_BITMASK37 +word BITMASK38, MD_BITMASK38 +word BITMASK39, MD_BITMASK39 +word BITMASK40, MD_BITMASK40 +word BITMASK41, MD_BITMASK41 +word BITMASK42, MD_BITMASK42 +word BITMASK43, MD_BITMASK43 +word BITMASK44, MD_BITMASK44 +word BITMASK45, MD_BITMASK45 +word BITMASK46, MD_BITMASK46 +word BITMASK47, MD_BITMASK47 +word BITMASK48, MD_BITMASK48 +word BITMASK49, MD_BITMASK49 +word BITMASK50, MD_BITMASK50 +word BITMASK51, MD_BITMASK51 +word BITMASK52, MD_BITMASK52 +word BITMASK53, MD_BITMASK53 +word BITMASK54, MD_BITMASK54 +word BITMASK55, MD_BITMASK55 +word BITMASK56, MD_BITMASK56 +word BITMASK57, MD_BITMASK57 +word BITMASK58, MD_BITMASK58 +word BITMASK59, MD_BITMASK59 +word BITMASK60, MD_BITMASK60 +word BITMASK61, MD_BITMASK61 +word BITMASK62, MD_BITMASK62 +word BITMASK63, MD_BITMASK63 +word BITMASK64, MD_BITMASK64 + +word BIT1, MD_BIT1 +word BIT2, MD_BIT2 +word BIT3, MD_BIT3 +word BIT4, MD_BIT4 +word BIT5, MD_BIT5 +word BIT6, MD_BIT6 +word BIT7, MD_BIT7 +word BIT8, MD_BIT8 +word BIT9, MD_BIT9 +word BIT10, MD_BIT10 +word BIT11, MD_BIT11 +word BIT12, MD_BIT12 +word BIT13, MD_BIT13 +word BIT14, MD_BIT14 +word BIT15, MD_BIT15 +word BIT16, MD_BIT16 +word BIT17, MD_BIT17 +word BIT18, MD_BIT18 +word BIT19, MD_BIT19 +word BIT20, MD_BIT20 +word BIT21, MD_BIT21 +word BIT22, MD_BIT22 +word BIT23, MD_BIT23 +word BIT24, MD_BIT24 +word BIT25, MD_BIT25 +word BIT26, MD_BIT26 +word BIT27, MD_BIT27 +word BIT28, MD_BIT28 +word BIT29, MD_BIT29 +word BIT30, MD_BIT30 +word BIT31, MD_BIT31 +word BIT32, MD_BIT32 + +word BIT33, MD_BIT33 +word BIT34, MD_BIT34 +word BIT35, MD_BIT35 +word BIT36, MD_BIT36 +word BIT37, MD_BIT37 +word BIT38, MD_BIT38 +word BIT39, MD_BIT39 +word BIT40, MD_BIT40 +word BIT41, MD_BIT41 +word BIT42, MD_BIT42 +word BIT43, MD_BIT43 +word BIT44, MD_BIT44 +word BIT45, MD_BIT45 +word BIT46, MD_BIT46 +word BIT47, MD_BIT47 +word BIT48, MD_BIT48 +word BIT49, MD_BIT49 +word BIT50, MD_BIT50 +word BIT51, MD_BIT51 +word BIT52, MD_BIT52 +word BIT53, MD_BIT53 +word BIT54, MD_BIT54 +word BIT55, MD_BIT55 +word BIT56, MD_BIT56 +word BIT57, MD_BIT57 +word BIT58, MD_BIT58 +word BIT59, MD_BIT59 +word BIT60, MD_BIT60 +word BIT61, MD_BIT61 +word BIT62, MD_BIT62 +word BIT63, MD_BIT63 +word BIT64, MD_BIT64 + +word Guid, MD_Guid +word U16Array, MD_U16Array +word U32Array, MD_U32Array +word U64Array, MD_U64Array +word U128Array, MD_U128Array + +// base/ring.h + +namespace ring_, md_ring_ + // base/debug.h word trap, md_trap @@ -84,6 +284,8 @@ word invalid_path, md_invalid_path word not_implemented, md_not_implemented word no_op, md_no_op +word assert_handler, md_assert_handler + // base/memory.h word KILOBYTES, MD_KILOBYTES @@ -112,12 +314,6 @@ word offset_of, md_offset_of word member_from_offset, md_member_from_offset word cast_from_member, md_cast_from_member -word defer_loop, md_defer_loop -word defer_loop_checked, md_defer_loop_checked - -word each_enum_val, md_each_enum_val -word each_non_zero_enum_val, md_each_non_zero_enum_val - word memory_copy, md_memory_copy word memory_set, md_memory_set word memory_compare, md_memory_compare @@ -140,8 +336,9 @@ word memory_match_type, md_memory_match_type word memory_read, md_memory_read word memory_consume, md_memory_consume -word mem_move, md_mem_move -word mem_set, md_mem_set +word memory_is_zero, md_memory_is_zero +word mem_move, md_mem_move +word mem_set, md_mem_set namespace ins_atomic_, md_ins_atomic_ @@ -196,12 +393,57 @@ word this_function_name, md_this_function_name word read_only, md_read_only +word local_persist, md_local_persist +word thread_static, md_thread_static +word thread_local, md_thread_local + +namespace safe_cast_, md_safe_cast_ + +word u128_zero, md_u128_zero +word u128_make, md_u128_make +word u128_match, md_u128_match + +word u32_from_u64_saturate, md_u32_from_u64_saturate + +word u64_up_to_pow2, md_u64_up_to_pow2 + +word extend_sign32, md_extend_sign32 +word extend_sign64, md_extend_sign64 + +word inf32, md_inf32 +word neg_inf32, md_neg_inf32 + +word bswap_u16, md_bswap_u16 +word bswap_u32, md_bswap_u32 +word bswap_u64, md_bswap_u64 + +word from_be_u16, md_from_be_u16 +word from_be_u32, md_from_be_u32 +word from_be_u64, md_from_be_u64 + +word count_bits_set16, md_count_bits_set16 +word count_bits_set32, md_count_bits_set32 +word count_bits_set64, md_count_bits_set64 + +word ctz32, md_ctz32 +word ctz64, md_ctz64 +word clz32, md_clz32 +word clz64, md_clz64 + // base/memory_substrate.h -word AllocType, MD_AllocType -word AllocatorProc, MD_AllocatorProc -word AllocatorInfo, MD_AllocatorInfo -word AllocFlag, MD_AllocFlag +word AllocatorType, MD_AllocatorType +word AllocatorMode, MD_AllocatorMode +word AllocatorQueryFlags, MD_AllocatorQueryFlags +word AllocatorProc, MD_AllocatorProc +word AllocatorInfo, MD_AllocatorInfo + +word default_allocator, md_default_allocator + +word ALLOCATOR_FLAG_CLEAR_TO_ZERO, MD_ALLOCATOR_FLAG_CLEAR_TO_ZERO + +word allocator_type, md_allocator_type +word allocator_query_support, md_allocator_query_support word alloc, md_alloc word alloc_align, md_alloc_align @@ -210,10 +452,11 @@ word free_all, md_free_all word resize, md_resize word resize_align, md_resize_align -word default_resize_align, md_default_resize_align +word alloc_item, md_alloc_item +word alloc_array, md_alloc_array +word alloc_array_no_zero, md_alloc_array_no_zero -word alloc_item, md_alloc_item -word alloc_array, md_alloc_array +word default_resize_align, md_default_resize_align word heap_stats_init, md_heap_stats_init word heap_stats_used_mem, md_heap_stats_used_mem @@ -225,20 +468,390 @@ word heap, md_heap word malloc, md_malloc word mfree, md_mfree -word VMem, MD_VMem -namespace vm_, md_vm_ +namespace VARENA_, MD_VARENA_ +word VArenaFlags, MD_VArenaFlags +word VArena, MD_VArena +word varena__alloc, md_varena__alloc +word varena_commit, md_varena_commit +word varena_release, md_varena_release +word varena_allocator_proc, md_varena_allocator_proc +word varena_allocator, md_varena_allocator + +word ByteSlice, MD_ByteSlice + +word mem_to_byteslice, md_mem_to_byteslice + +word FArena, MD_FArena +word farena_from_byteslice, md_farena_from_byteslice +word farena_from_memory, md_farena_from_memory + +// base/arena.h + +word ArenaFlags, MD_ArenaFlags +word ArenaParams, MD_ArenaParams +word Arena, MD_Arena +word TempArena, MD_TempArena + +namespace arena_, md_arena_ +namespace push_array, md_push_array_ + +word temp_begin, md_temp_begin +word temp_end, md_temp_end + +word default_allocator, md_default_allocator + +// base/space.h + +word Dimension, MD_Dimension +word Side, MD_Side +word Axis2, MD_Axis2 +word Corner, MD_corner +word Dir2, MD_Dir2 + +word axis_from_dir2, md_axis_from_dir2 +word side_from_dir2, md_side_from_dir2 + +word sign_from_side_f32, md_side_from_side_f32 +wrod sign_from_side_f64, md_side_from_side_f64 // base/math.h +word Vec2F32, MD_Vec2F32 +word Vec2S64, MD_Vec2S64 +word Vec2S32, MD_Vec2S32 +word Vec2S16, MD_Vec2S16 + +word Vec3F32, MD_Vec3F32 +word Vec3S64, MD_Vec3S64 +word Vec3S32, MD_Vec3S32 + +word Vec4F32, MD_Vec4F32 +word Vec4S32, MD_Vec4S32 + +word Mat3x3F32, MD_Mat3x3F32 +word Mat4x4F32, MD_Mat4x4F32 + +word Rng1U32, MD_Rng1U32 +word Rng1S32, MD_Rng1S32 word Rng1U64, MD_Rng1U64 +word Rng1F64, MD_Rng1F64 + +word Rng2S16, MD_Rng2S16 +word Rng2S32, MD_Rng2S32 +word Rng2F32, MD_Rng2F32 +word Rng2S64, MD_Rng2S64 + +word Rng1S64Node, MD_Rng1S64Node +word Rng1S64List, MD_Rng1S64List +word Rng1S64Array, MD_Rng1S64Array + +// word md_min, md_min +// word md_max, md_max +word clamp_top, md_clamp_top +word clamp_bot, md_clamp_bot +word clamp, md_clamp + +word abs_s64, md_abs_s64 +word sqrt_f32, md_sqrt_f32 +word mod_f32, md_mod_f32 +word pow_f32, md_pow_f32 +word ceil_f32, md_ceil_f32 +word floor_f32, md_floor_f32 +word round_f32, md_round_f32 +word abs_f32, md_abs_f32 + +word radians_from_turns_f32, md_radians_from_turns_f32 +word turns_from_radians_f64, md_turns_from_radians_f64 +word degrees_from_turns_f64, md_degrees_from_turns_f64 +word turns_from_degrees_f64, md_turns_from_degrees_f64 + +word degrees_from_radians_f64, md_degrees_from_radians_f64 +word radians_from_degrees_f64, md_radians_from_degrees_f64 + +word sin_f64, md_sin_f64 +word cos_f64, md_cos_f64 +word tan_f64, md_tan_f64 + +word mix_1f32, md_mix_1f32 +word mix_1f64, md_mix_1f64 + +word v2f32, md_v2f32 +word vec_2f32, md_vec_2f32 +word add_2f32, md_add_2f32 +word sub_2f32, md_sub_2f32 +word mul_2f32, md_mul_2f32 +word div_2f32, md_div_2f32 +word scale_2f32, md_scale_2f32 +word dot_2f32, md_dot_2f32 +word length_squared_2f32, md_length_squared_2f32 +word length_2f32, md_length_2f32 +word normalize_2f32, md_normalize_2f32 +word mix_2f32, md_mix_2f32 + +word v2s64, md_v2s64 +word vec_2s64, md_vec_2s64 +word add_2s64, md_add_2s64 +word sub_2s64, md_sub_2s64 +word mul_2s64, md_mul_2s64 +word div_2s64, md_div_2s64 +word scale_2s64, md_scale_2s64 +word dot_2s64, md_dot_2s64 +word length_squared_2s64, md_length_squared_2s64 +word length_2s64, md_length_2s64 +word normalize_2s64, md_normalize_2s64 +word mix_2s64, md_mix_2s64 + +word v2s32, md_v2s32 +word vec_2s32, md_vec_2s32 +word add_2s32, md_add_2s32 +word sub_2s32, md_sub_2s32 +word mul_2s32, md_mul_2s32 +word div_2s32, md_div_2s32 +word scale_2s32, md_scale_2s32 +word dot_2s32, md_dot_2s32 +word length_squared_2s32, md_length_squared_2s32 +word length_2s32, md_length_2s32 +word normalize_2s32, md_normalize_2s32 +word mix_2s32, md_mix_2s32 + +word v2s16, md_v2s16 +word vec_2s16, md_vec_2s16 +word add_2s16, md_add_2s16 +word sub_2s16, md_sub_2s16 +word mul_2s16, md_mul_2s16 +word div_2s16, md_div_2s16 +word scale_2s16, md_scale_2s16 +word dot_2s16, md_dot_2s16 +word length_squared_2s16, md_length_squared_2s16 +word length_2s16, md_length_2s16 +word normalize_2s16, md_normalize_2s16 +word mix_2s16, md_mix_2s16 + +word vec2, md_vec2 +word add_vec2, md_add_vec2 +word sub_vec2, md_sub_vec2 +word mul_vec2, md_mul_vec2 +word div_vec2, md_div_vec2 +word scale_vec2, md_scale_vec2 +word dot_vec2, md_dot_vec2 +word length_squared_vec2, md_length_squared_vec2 +word length_vec2, md_length_vec2 +word normalize_vec2, md_normalize_vec2 +word mix_vec2, md_mix_vec2 + +word v3f32, md_v3f32 +word vec_3f32, md_vec_3f32 +word add_3f32, md_add_3f32 +word sub_3f32, md_sub_3f32 +word mul_3f32, md_mul_3f32 +word div_3f32, md_div_3f32 +word scale_3f32, md_scale_3f32 +word dot_3f32, md_dot_3f32 +word length_squared_3f32, md_length_squared_3f32 +word length_3f32, md_length_3f32 +word normalize_3f32, md_normalize_3f32 +word mix_3f32, md_mix_3f32 +word cross_3f32, md_cross_3f32 + +word v3s32, md_v3s32 +word vec_3s32, md_vec_3s32 +word add_3s32, md_add_3s32 +word sub_3s32, md_sub_3s32 +word mul_3s32, md_mul_3s32 +word div_3s32, md_div_3s32 +word scale_3s32, md_scale_3s32 +word dot_3s32, md_dot_3s32 +word length_squared_3s32, md_length_squared_3s32 +word length_3s32, md_length_3s32 +word normalize_3s32, md_normalize_3s32 +word mix_3s32, md_mix_3s32 +word cross_3s32, md_cross_3s32 + +word vec3, md_vec3 +word add_vec3, md_add_vec3 +word sub_vec3, md_sub_vec3 +word mul_vec3, md_mul_vec3 +word div_vec3, md_div_vec3 +word scale_vec3, md_scale_vec3 +word dot_vec3, md_dot_vec3 +word length_squared_vec3, md_length_squared_vec3 +word length_vec3, md_length_vec3 +word normalize_vec3, md_normalize_vec3 +word mix_vec3, md_mix_vec3 +word cross_vec3, md_cross_vec3 + +word v4f32, md_v4f32 +word vec_4f32, md_vec_4f32 +word add_4f32, md_add_4f32 +word sub_4f32, md_sub_4f32 +word mul_4f32, md_mul_4f32 +word div_4f32, md_div_4f32 +word scale_4f32, md_scale_4f32 +word dot_4f32, md_dot_4f32 +word length_squared_4f32, md_length_squared_4f32 +word length_4f32, md_length_4f32 +word normalize_4f32, md_normalize_4f32 +word mix_4f32, md_mix_4f32 + +word v4s32, v4s32 +word vec_4s32, md_vec_4s32 +word add_4s32, md_add_4s32 +word sub_4s32, md_sub_4s32 +word mul_4s32, md_mul_4s32 +word div_4s32, md_div_4s32 +word scale_4s32, md_scale_4s32 +word dot_4s32, md_dot_4s32 +word length_squared_4s32, md_length_squared_4s32 +word length_4s32, md_length_4s32 +word normalize_4s32, md_normalize_4s32 +word mix_4s32, md_mix_4s32 + +word vec4, md_vec4 +word add_vec4, md_add_vec4 +word sub_vec4, md_sub_vec4 +word mul_vec4, md_mul_vec4 +word div_vec4, md_div_vec4 +word scale_vec4, md_scale_vec4 +word dot_vec4, md_dot_vec4 +word length_squared_vec4, md_length_squared_vec4 +word length_vec4, md_length_vec4 +word normalize_vec4, md_normalize_vec4 +word mix_vec4, md_mix_vec4 + +word mat_3x3f32, md_mat_3x3f32 +word make_translate_3x3f32, md_make_translate_3x3f32 +word make_scale_3x3f32, md_make_scale_3x3f32 +word mul_3x3f32, md_mul_3x3f32 + +word mat_4x4f32, md_mat_4x4f32 +word make_translate_4x4f32, md_make_translate_4x4f32 +word make_scale_4x4f32, md_make_scale_4x4f32 + +word make_perspective_4x4f32, md_make_perspective_4x4f32 +word make_orthographic_4x4f32, md_make_orthographic_4x4f32 +word make_look_at_4x4f32, md_make_look_at_4x4f32 +word make_rotate_4x4f32, md_make_rotate_4x4f32 + +word mul_4x4f32, md_mul_4x4f32 +word scale_4x4f32, md_scale_4x4f32 +word inverse_4x4f32, md_inverse_4x4f32 +word derotate_4x4f32, md_derotate_4x4f32 + +word r1u32, md_r1u32 +word rng_1u32, md_rng_1u32 +word shift_1u32, md_shift_1u32 +word pad_1u32, md_pad_1u32 +word center_1u32, md_center_1u32 +word contains_1u32, md_contains_1u32 +word dim_1u32, md_dim_1u32 +word union_1u32, md_union_1u32 +word intersect_1u32, md_intersect_1u32 +word clamp_1u32, md_clamp_1u32 + +word r1s32, md_r1s32 +word rng_1s32, md_rng_1s32 +word shift_1s32, md_shift_1s32 +word pad_1s32, md_pad_1s32 +word center_1s32, md_center_1s32 +word contains_1s32, md_contains_1s32 +word dim_1s32, md_dim_1s32 +word union_1s32, md_union_1s32 +word intersect_1s32, md_intersect_1s32 +word clamp_1s32, md_clamp_1s32 + +word r1u64, md_r1u64 +word rng_1u64, md_rng_1u64 +word shift_1u64, md_shift_1u64 +word pad_1u64, md_pad_1u64 +word center_1u64, md_center_1u64 +word contains_1u64, md_contains_1u64 +word dim_1u64, md_dim_1u64 +word union_1u64, md_union_1u64 +word intersect_1u64, md_intersect_1u64 +word clamp_1u64, md_clamp_1u64 + +word r1s64, md_r1s64 +word rng_1s64, md_rng_1s64 +word shift_1s64, md_shift_1s64 +word pad_1s64, md_pad_1s64 +word center_1s64, md_center_1s64 +word contains_1s64, md_contains_1s64 +word dim_1s64, md_dim_1s64 +word union_1s64, md_union_1s64 +word intersect_1s64, md_intersect_1s64 +word clamp_1s64, md_clamp_1s64 + +word r1f32, md_r1f32 +word rng_1f32, md_rng_1f32 +word shift_1f32, md_shift_1f32 +word pad_1f32, md_pad_1f32 +word center_1f32, md_center_1f32 +word contains_1f32, md_contains_1f32 +word dim_1f32, md_dim_1f32 +word union_1f32, md_union_1f32 +word intersect_1f32, md_intersect_1f32 +word clamp_1f32, md_clamp_1f32 + +word r2s16, md_r2s16 +word r2s16p, md_r2s16p +word rng_2s16, md_rng_2s16 +word shift_2s16, md_shift_2s16 +word pad_2s16, md_pad_2s16 +word center_2s16, md_center_2s16 +word contains_2s16, md_contains_2s16 +word dim_2s16, md_dim_2s16 +word union_2s16, md_union_2s16 +word intersect_2s16, md_intersect_2s16 +word clamp_2s16, md_clamp_2s16 + +word r2s32, md_r2s32 +word r2s32p, md_r2s32p +word rng_2s32, md_rng_2s32 +word shift_2s32, md_shift_2s32 +word pad_2s32, md_pad_2s32 +word center_2s32, md_center_2s32 +word contains_2s32, md_contains_2s32 +word dim_2s32, md_dim_2s32 +word union_2s32, md_union_2s32 +word intersect_2s32, md_intersect_2s32 +word clamp_2s32, md_clamp_2s32 + +word r2s64, md_r2s64 +word r2s64p, md_r2s64p +word rng_2s64, md_rng_2s64 +word shift_2s64, md_shift_2s64 +word pad_2s64, md_pad_2s64 +word center_2s64, md_center_2s64 +word contains_2s64, md_contains_2s64 +word dim_2s64, md_dim_2s64 +word union_2s64, md_union_2s64 +word intersect_2s64, md_intersect_2s64 +word clamp_2s32, md_clamp_2s32 + +word hsv_from_rgb, md_hsv_from_rgb +word rgb_from_hsv, md_rgb_from_hsv +word hsva_from_rgba, md_hsva_from_rgba +word rgba_from_hsva, md_rgba_from_hsva +word rgba_from_u32, md_rgba_from_u32 +word u32_from_rgba, md_u32_from_rgba + +word rgba_from_u32_lit_comp, md_rgba_from_u32_lit_comp + +word rng1s64_list_push, md_rng1s64_list_push +word rng1s64_array_from_list, md_rng1s64_array_from_list +word rng1s64_list_alloc, md_rng1s64_list_alloc +word rng1s64_array_from_list_alloc, md_rng1s64_array_from_list_alloc + +// base/toolchain.h + + // base/strings.h word String8, MD_String8 - // metadesk module // word MsgKind, MD_MsgKind