Browse Source

Test build for forcely disabling denormals

Signed-off-by: falkTX <falktx@falktx.com>
tags/23.02
falkTX 2 years ago
parent
commit
a1d2dbc67f
Signed by: falkTX <falktx@falktx.com> GPG Key ID: CDBAA37ABC74FBA0
2 changed files with 19 additions and 1 deletions
  1. +1
    -1
      dpf
  2. +18
    -0
      src/CardinalPlugin.cpp

+ 1
- 1
dpf

@@ -1 +1 @@
Subproject commit 5a69a71bdf773c582b94fba62f56af286c5f7333
Subproject commit 0057b1940c84e7ecbfd192fe02bf03c557f1ee93

+ 18
- 0
src/CardinalPlugin.cpp View File

@@ -1192,6 +1192,24 @@ protected:
void run(const float** const inputs, float** const outputs, const uint32_t frames,
const MidiEvent* const midiEvents, const uint32_t midiEventCount) override
{
// TESTING make this revert itself if proven to work
#if defined(__SSE2_MATH__)
_mm_setcsr(_mm_getcsr() | 0x8040);
#elif defined(__aarch64__)
uint64_t c;
__asm__ __volatile__("mrs %0, fpcr \n"
"orr %0, %0, #0x1000000\n"
"msr fpcr, %0 \n"
"isb \n"
: "=r"(c) :: "memory");
#elif defined(__arm__) && !defined(__SOFTFP__)
uint32_t c;
__asm__ __volatile__("vmrs %0, fpscr \n"
"orr %0, %0, #0x1000000\n"
"vmsr fpscr, %0 \n"
: "=r"(c) :: "memory");
#endif
rack::contextSet(context);
const bool bypassed = context->bypassed;


Loading…
Cancel
Save