76 |
dmsg(1,("Copyright (C) 2003, 2004 by Benno Senoner and Christian Schoenebeck\n")); |
dmsg(1,("Copyright (C) 2003, 2004 by Benno Senoner and Christian Schoenebeck\n")); |
77 |
dmsg(1,("Copyright (C) 2005 Christian Schoenebeck\n")); |
dmsg(1,("Copyright (C) 2005 Christian Schoenebeck\n")); |
78 |
|
|
79 |
if (tune) |
if (tune) { |
|
{ |
|
80 |
// detect and print system / CPU specific features |
// detect and print system / CPU specific features |
|
String sFeatures; |
|
81 |
Features::detect(); |
Features::detect(); |
82 |
#if ARCH_X86 |
dmsg(1,("Detected features: %s\n", Features::featuresAsString().c_str())); |
83 |
if (Features::supportsMMX()) sFeatures += " MMX"; |
// prevent slow denormal FPU modes |
84 |
if (Features::supportsSSE()) sFeatures += " SSE"; |
Features::enableDenormalsAreZeroMode(); |
|
if (Features::supportsSSE2()) { |
|
|
sFeatures += " SSE2"; |
|
|
|
|
|
// enable denormals-are-zeros mode |
|
|
int x; |
|
|
__asm__ __volatile__ ( |
|
|
"stmxcsr %0\n\t" |
|
|
"movl %0, %%eax\n\t" |
|
|
"orl $0x40, %%eax\n\t" |
|
|
"movl %%eax, %0\n\t" |
|
|
"ldmxcsr %0\n\t" |
|
|
:: "m" (x) |
|
|
: "%eax" |
|
|
); |
|
|
} |
|
|
#endif // ARCH_X86 |
|
|
if (!sFeatures.size()) sFeatures = " None"; |
|
|
dmsg(1,("Detected features:%s\n",sFeatures.c_str())); |
|
85 |
} |
} |
86 |
|
|
87 |
// create LinuxSampler instance |
// create LinuxSampler instance |