summaryrefslogtreecommitdiffstats
path: root/src/server/util.hpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2012-08-17 02:14:07 +0000
committerDavid Robillard <d@drobilla.net>2012-08-17 02:14:07 +0000
commit318b37d8b556add13b3f156f31c9e72eca339a16 (patch)
treeca7b881f8980a41eca77602b474f29964b5c89db /src/server/util.hpp
parenta42744e1068a8630d8034df73bb344ca21a53b32 (diff)
downloadingen-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.hpp39
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
}