diff --git a/include/blt/std/assert.h b/include/blt/std/assert.h index f26b485..b29db63 100644 --- a/include/blt/std/assert.h +++ b/include/blt/std/assert.h @@ -14,42 +14,6 @@ namespace blt void b_assert_failed(const char* expression, const char* path, int line); void b_throw(const char* what, const char* path, int line); - -#if defined(__GNUC__) || defined(__llvm__) - #define BLT_ATTRIB_NO_INLINE __attribute__ ((noinline)) -#else - #if defined(_MSC_VER) && !defined(__INTEL_COMPILER) - #define BLT_ATTRIB_NO_INLINE __declspec(noinline) - #else - #define BLT_ATTRIB_NO_INLINE - #endif -#endif - - template - void BLT_ATTRIB_NO_INLINE black_box_ref(const T& val){ - volatile void* hell; - hell = (void*)&val; - } - - template - void BLT_ATTRIB_NO_INLINE black_box(T val){ - volatile void* hell2; - hell2 = (void*)&val; - } - - template - const T& BLT_ATTRIB_NO_INLINE black_box_ref_ret(const T& val){ - volatile void* hell; - hell = (void*)&val; - return val; - } - - template - T BLT_ATTRIB_NO_INLINE black_box_ret(T val){ - volatile void* hell2; - hell2 = (void*)&val; - return val; - } } // prints error with stack trace if assertion fails. Does not stop execution. diff --git a/include/blt/std/system.h b/include/blt/std/system.h index 1aca8a9..b1bd2bd 100755 --- a/include/blt/std/system.h +++ b/include/blt/std/system.h @@ -24,6 +24,42 @@ namespace blt::system { return __rdtsc(); } // TODO: system memory and current CPU usage. (Linux Only currently) + +#if defined(__GNUC__) || defined(__llvm__) + #define BLT_ATTRIB_NO_INLINE __attribute__ ((noinline)) +#else + #if defined(_MSC_VER) && !defined(__INTEL_COMPILER) + #define BLT_ATTRIB_NO_INLINE __declspec(noinline) + #else + #define BLT_ATTRIB_NO_INLINE + #endif +#endif + + template + void BLT_ATTRIB_NO_INLINE black_box_ref(const T& val){ + volatile void* hell; + hell = (void*)&val; + } + + template + void BLT_ATTRIB_NO_INLINE black_box(T val){ + volatile void* hell2; + hell2 = (void*)&val; + } + + template + const T& BLT_ATTRIB_NO_INLINE black_box_ref_ret(const T& val){ + volatile void* hell; + hell = (void*)&val; + return val; + } + + template + T BLT_ATTRIB_NO_INLINE black_box_ret(T val){ + volatile void* hell2; + hell2 = (void*)&val; + return val; + } } #endif //BLT_SYSTEM_H