|
@@ -1192,6 +1192,24 @@ protected: |
|
|
void run(const float** const inputs, float** const outputs, const uint32_t frames,
|
|
|
void run(const float** const inputs, float** const outputs, const uint32_t frames,
|
|
|
const MidiEvent* const midiEvents, const uint32_t midiEventCount) override
|
|
|
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);
|
|
|
rack::contextSet(context);
|
|
|
|
|
|
|
|
|
const bool bypassed = context->bypassed;
|
|
|
const bool bypassed = context->bypassed;
|
|
|