From 05d5723de150b3af2126cd03354501fbd5dbd8e7 Mon Sep 17 00:00:00 2001 From: sideoflamp <136824724+sideoflamp@users.noreply.github.com> Date: Fri, 16 Jun 2023 10:09:22 -0400 Subject: [PATCH 1/2] Support OFS_PAUSE_INTRIN on aarch64 --- OFS-lib/OFS_Util.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/OFS-lib/OFS_Util.h b/OFS-lib/OFS_Util.h index ed0488122..0033f6910 100644 --- a/OFS-lib/OFS_Util.h +++ b/OFS-lib/OFS_Util.h @@ -20,9 +20,13 @@ #include "OFS_Profiling.h" #include "OFS_FileLogging.h" +#ifdef __x86_64__ || _WIN32 || _WIN64 #include "emmintrin.h" // for _mm_pause - #define OFS_PAUSE_INTRIN _mm_pause +#elif __aarch64__ +#include +#define OFS_PAUSE_INTRIN std::this_thread::yield +#endif // helper for FontAwesome. Version 4.7.0 2016 ttf #define ICON_FOLDER_OPEN "\xef\x81\xbc" @@ -517,4 +521,4 @@ class Util { static uint32_t RandomColor(float s, float v, float alpha = 1.f) noexcept; }; -#define FMT(fmt, ...) Util::Format(fmt, __VA_ARGS__) \ No newline at end of file +#define FMT(fmt, ...) Util::Format(fmt, __VA_ARGS__) From 1f4bb99b779ecd6c914792e6c646b46da5627e4e Mon Sep 17 00:00:00 2001 From: sideoflamp <136824724+sideoflamp@users.noreply.github.com> Date: Fri, 23 Jun 2023 11:57:17 -0400 Subject: [PATCH 2/2] Swap macro around If aarch64 then use yield, otherwise use _mm_pause. --- OFS-lib/OFS_Util.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/OFS-lib/OFS_Util.h b/OFS-lib/OFS_Util.h index 0033f6910..5e82b64f5 100644 --- a/OFS-lib/OFS_Util.h +++ b/OFS-lib/OFS_Util.h @@ -20,12 +20,12 @@ #include "OFS_Profiling.h" #include "OFS_FileLogging.h" -#ifdef __x86_64__ || _WIN32 || _WIN64 -#include "emmintrin.h" // for _mm_pause -#define OFS_PAUSE_INTRIN _mm_pause -#elif __aarch64__ +#if __aarch64__ #include #define OFS_PAUSE_INTRIN std::this_thread::yield +#else +#include "emmintrin.h" // for _mm_pause +#define OFS_PAUSE_INTRIN _mm_pause #endif // helper for FontAwesome. Version 4.7.0 2016 ttf