diff options
author | David Robillard <d@drobilla.net> | 2012-08-17 02:14:07 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2012-08-17 02:14:07 +0000 |
commit | 318b37d8b556add13b3f156f31c9e72eca339a16 (patch) | |
tree | ca7b881f8980a41eca77602b474f29964b5c89db /src/server/util.hpp | |
parent | a42744e1068a8630d8034df73bb344ca21a53b32 (diff) | |
download | ingen-318b37d8b556add13b3f156f31c9e72eca339a16.tar.gz ingen-318b37d8b556add13b3f156f31c9e72eca339a16.tar.bz2 ingen-318b37d8b556add13b3f156f31c9e72eca339a16.zip |
Implement real logging system, LV2 log extension support, and purge evil/ugly/untranslatable C++ stream printing.
Remove coloured log stuff from Raul.
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4717 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/server/util.hpp')
-rw-r--r-- | src/server/util.hpp | 39 |
1 files changed, 4 insertions, 35 deletions
diff --git a/src/server/util.hpp b/src/server/util.hpp index 8f5a39ee..106d09de 100644 --- a/src/server/util.hpp +++ b/src/server/util.hpp @@ -19,7 +19,7 @@ #include <cstdlib> -#include "raul/log.hpp" +#include "ingen/Log.hpp" #include "raul/Path.hpp" #include "ingen_config.h" @@ -35,48 +35,17 @@ # define REALTIME #endif -#ifdef USE_ASSEMBLY -# if SIZEOF_VOID_P==8 -# define cpuid(a, b, c, d, n) asm("xchgq %%rbx, %1; cpuid; xchgq %%rbx, %1": "=a" (a), "=r" (b), "=c" (c), "=d" (d) : "a" (n)); -# else -# define cpuid(a, b, c, d, n) asm("xchgl %%ebx, %1; cpuid; xchgl %%ebx, %1": "=a" (a), "=r" (b), "=c" (c), "=d" (d) : "a" (n)); -# endif -#endif - namespace Ingen { namespace Server { /** Set flags to disable denormal processing. */ inline void -set_denormal_flags() +set_denormal_flags(Ingen::Log& log) { -#ifdef USE_ASSEMBLY #ifdef __SSE__ - unsigned long a, b, c, d0, d1; - cpuid(a, b, c, d1, 1); - if (d1 & 1<<25) { /* It has SSE support */ - _MM_SET_FLUSH_ZERO_MODE(_MM_FLUSH_ZERO_ON); - const int family = (a >> 8) & 0xF; - const int extfamily = (a >> 20) & 0xFF; - const int model = (a >> 4) & 0xF; - const int stepping = a & 0xF; - cpuid(a, b, c, d0, 0); - if (b == 0x756e6547) { /* It's an Intel */ - if (family == 15 && extfamily == 0 && model == 0 && stepping < 7) { - return; - } - } - if (d1 & 1<<26) { /* bit 26, SSE2 support */ - _mm_setcsr(_mm_getcsr() | 0x8040); // set DAZ and FZ bits of MXCSR - Raul::info << "Set SSE denormal fix flag" << endl; - } - } else { - Raul::warn << "This code has been built with SSE support, but your processor does" - << " not support the SSE instruction set, exiting." << std::endl; - exit(EXIT_FAILURE); - } -#endif + _mm_setcsr(_mm_getcsr() | 0x8040); + log.info("Set SSE denormal-are-zero and flush-to-zero flags\n"); #endif } |