vcpkg/ports/sdl2-gfx/001-lrint-arm64.patch
Tatsuro Shibamura 268d7bb406 [sdl2-gfx] Fixed build error ARM64 Windows 10 (#9314)
* [sdl2-gfx] Fixed build error ARM64 Windows 10

* [sdl2-gfx] Update CI baseline

* [sdl2-gfx] Fixed function name

* Revert ci.baseline.txt

* Remove sdl2-gfx:arm64-windows from ci.baseline.txt

Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>
2020-01-27 14:32:23 -08:00

27 lines
681 B
Diff

diff --git a/SDL2_gfxPrimitives.c b/SDL2_gfxPrimitives.c
index f81e6da..91817fd 100755
--- a/SDL2_gfxPrimitives.c
+++ b/SDL2_gfxPrimitives.c
@@ -1771,8 +1771,20 @@ __declspec(naked) long int
__emit(0xE12FFF1E); // bx lr
}
#pragma warning(pop)
+#elif defined(_M_ARM64)
+#include <intrin.h>
+#pragma warning(push)
+#pragma warning(disable: 4716)
+__declspec(naked) long
+ lrint (double f)
+{
+ __emit(0x1e674000); // frintx d0, d0
+ __emit(0x9e780000); // fcvtzs x0, d0
+ __emit(0xd65f03c0); // ret
+}
+#pragma warning(pop)
#else
-#error lrint needed for MSVC on non X86/AMD64/ARM targets.
+#error lrint needed for MSVC on non X86/AMD64/ARM/ARM64 targets.
#endif
#endif