X-Git-Url: https://scm.cri.ensmp.fr/git/Faustine.git/blobdiff_plain/c7f552fd8888da2f0d8cfb228fe0f28d3df3a12c..b4b6f2ea75b9f0f3ca918f5b84016610bf7a4d4f:/interpretor/preprocessor/faust-0.9.47mr3/architecture/misc.h diff --git a/interpretor/preprocessor/faust-0.9.47mr3/architecture/misc.h b/interpretor/preprocessor/faust-0.9.47mr3/architecture/misc.h new file mode 100644 index 0000000..900643a --- /dev/null +++ b/interpretor/preprocessor/faust-0.9.47mr3/architecture/misc.h @@ -0,0 +1,57 @@ + +#ifndef __misc__ +#define __misc__ + +#include +#include +#include + +// On Intel set FZ (Flush to Zero) and DAZ (Denormals Are Zero) +// flags to avoid costly denormals +#ifdef __SSE__ + #include + #ifdef __SSE2__ + #define AVOIDDENORMALS _mm_setcsr(_mm_getcsr() | 0x8040) + #else + #define AVOIDDENORMALS _mm_setcsr(_mm_getcsr() | 0x8000) + #endif +#else + #define AVOIDDENORMALS +#endif + +struct XXXX_Meta : std::map +{ + void declare (const char* key, const char* value) { (*this)[key]=value; } +}; + +struct Meta +{ + virtual void declare (const char* key, const char* value) = 0; +}; + +struct MY_Meta : Meta, std::map +{ + void declare (const char* key, const char* value) { (*this)[key]=value; } +}; + +#define max(x,y) (((x)>(y)) ? (x) : (y)) +#define min(x,y) (((x)<(y)) ? (x) : (y)) + +inline int lsr (int x, int n) { return int(((unsigned int)x) >> n); } +inline int int2pow2 (int x) { int r=0; while ((1<