minimize intrin
This commit is contained in:
@@ -1,58 +1,30 @@
|
|||||||
fn void memory_copy(void *dst, void *src, usize n) {
|
fn void memory_copy(void *dst, void *src, usize n) {
|
||||||
#if PLATFORM_CLANG
|
IF_PLATFORM_CLANG_ELSE(__builtin_memcpy(dst, src, n), memcpy(dst, src, n));
|
||||||
__builtin_memcpy(dst, src, n);
|
|
||||||
#else
|
|
||||||
memcpy(dst, src, n);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn void memory_move(void *dest, const void *src, usize n) {
|
fn void memory_move(void *dest, const void *src, usize n) {
|
||||||
#if PLATFORM_CLANG
|
IF_PLATFORM_CLANG_ELSE(__builtin_memmove(dest, src, n), memmove(dest, src, n));
|
||||||
__builtin_memmove(dest, src, n);
|
|
||||||
#else
|
|
||||||
memmove(dest, src, n);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn void memory_set(void *dst, i32 c, usize size) {
|
fn void memory_set(void *dst, i32 c, usize size) {
|
||||||
#if PLATFORM_CLANG
|
IF_PLATFORM_CLANG_ELSE(__builtin_memset(dst, c, size), memset(dst, c, size));
|
||||||
__builtin_memset(dst, c, size);
|
|
||||||
#else
|
|
||||||
memset(dst, c, size);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn void memory_zero(void *dst, usize size) {
|
fn void memory_zero(void *dst, usize size) {
|
||||||
memory_set(dst, 0, size);
|
memory_set(dst, 0, size);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
f32 f32_sqrt(f32 x) { return IF_PLATFORM_CLANG_ELSE(__builtin_sqrtf(x), sqrtf(x)); }
|
||||||
#if PLATFORM_CLANG
|
f64 f64_sqrt(f64 x) { return IF_PLATFORM_CLANG_ELSE(__builtin_sqrt(x), sqrt(x)); }
|
||||||
f32 f32_sqrt(f32 x) { return __builtin_sqrtf(x); }
|
f32 f32_ceil(f32 x) { return IF_PLATFORM_CLANG_ELSE(__builtin_ceilf(x), ceilf(x)); }
|
||||||
f64 f64_sqrt(f64 x) { return __builtin_sqrt(x); }
|
f64 f64_ceil(f64 x) { return IF_PLATFORM_CLANG_ELSE(__builtin_ceil(x), ceil(x)); }
|
||||||
f32 f32_ceil(f32 x) { return __builtin_ceilf(x); }
|
f32 f32_floor(f32 x) { return IF_PLATFORM_CLANG_ELSE(__builtin_floorf(x), floorf(x)); }
|
||||||
f64 f64_ceil(f64 x) { return __builtin_ceil(x); }
|
f64 f64_floor(f64 x) { return IF_PLATFORM_CLANG_ELSE(__builtin_floor(x), floor(x)); }
|
||||||
f32 f32_floor(f32 x) { return __builtin_floorf(x); }
|
f32 f32_abs(f32 x) { return IF_PLATFORM_CLANG_ELSE(__builtin_fabsf(x), fabsf(x)); }
|
||||||
f64 f64_floor(f64 x) { return __builtin_floor(x); }
|
f64 f64_abs(f64 x) { return IF_PLATFORM_CLANG_ELSE(__builtin_fabs(x), fabs(x)); }
|
||||||
f32 f32_abs(f32 x) { return __builtin_fabsf(x); }
|
f32 f32_round(f32 x) { return IF_PLATFORM_CLANG_ELSE(__builtin_roundf(x), roundf(x)); }
|
||||||
f64 f64_abs(f64 x) { return __builtin_fabs(x); }
|
f64 f64_round(f64 x) { return IF_PLATFORM_CLANG_ELSE(__builtin_round(x), round(x)); }
|
||||||
f32 f32_round(f32 x) { return __builtin_roundf(x); }
|
f64 f64_mod(f64 a, f64 b) { return IF_PLATFORM_CLANG_ELSE(__builtin_fmod(a, b), fmod(a, b)); }
|
||||||
f64 f64_round(f64 x) { return __builtin_round(x); }
|
f32 f32_mod(f32 a, f32 b) { return IF_PLATFORM_CLANG_ELSE(__builtin_fmodf(a, b), fmodf(a, b)); }
|
||||||
f64 f64_mod(f64 a, f64 b) { return __builtin_fmod(a, b); }
|
|
||||||
f32 f32_mod(f32 a, f32 b) { return __builtin_fmodf(a, b); }
|
|
||||||
#else
|
|
||||||
fn f32 f32_sqrt(f32 x) { return sqrtf(x); }
|
|
||||||
fn f64 f64_sqrt(f64 x) { return sqrt(x); }
|
|
||||||
fn f32 f32_ceil(f32 x) { return ceilf(x); }
|
|
||||||
fn f64 f64_ceil(f64 x) { return ceil(x); }
|
|
||||||
fn f32 f32_floor(f32 x) { return floorf(x); }
|
|
||||||
fn f64 f64_floor(f64 x) { return floor(x); }
|
|
||||||
fn f32 f32_abs(f32 x) { return fabsf(x); }
|
|
||||||
fn f64 f64_abs(f64 x) { return fabs(x); }
|
|
||||||
fn f32 f32_round(f32 x) { return roundf(x); }
|
|
||||||
fn f64 f64_round(f64 x) { return round(x); }
|
|
||||||
fn f64 f64_mod(f64 a, f64 b) { return fmod(a, b); }
|
|
||||||
fn f32 f32_mod(f32 a, f32 b) { return fmodf(a, b); }
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -76,6 +76,11 @@
|
|||||||
#define SWITCH_PLATFORM_WINDOWS_WASM_ELSE(WINDOWS, WASM, ELSE) ELSE
|
#define SWITCH_PLATFORM_WINDOWS_WASM_ELSE(WINDOWS, WASM, ELSE) ELSE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if PLATFORM_CLANG
|
||||||
|
#define IF_PLATFORM_CLANG_ELSE(IF, ELSE) IF
|
||||||
|
#else
|
||||||
|
#define IF_PLATFORM_CLANG_ELSE(IF, ELSE) ELSE
|
||||||
|
#endif
|
||||||
|
|
||||||
#if PLATFORM_WINDOWS
|
#if PLATFORM_WINDOWS
|
||||||
#define IF_PLATFORM_WINDOWS(x) x
|
#define IF_PLATFORM_WINDOWS(x) x
|
||||||
|
|||||||
Reference in New Issue
Block a user