-
Notifications
You must be signed in to change notification settings - Fork 757
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
XXH3 and Windows ARM builds #220
Comments
Good point, thanks for notification @carstenskyboxlabs ! We should likely enforce that this code path is only valid for Side note : it would be great if I could find a way to test Visual Studio compilation for ARM, and automate such a test into AppveyorCI. It would have caught this issue, and potential future ones. |
Thanks for the response. |
When I run these steps using CMake and Visual Studio 2019:
I get this error:
I don't have much experience with appveyor.yml, but following the existing pattern, I think this will let you generate and run for ARM:
|
Thanks @v-strob for the hint ! Worth trying ! |
This should probably work. It should fix ARM compilation, and it should improve x64 performance #if defined(_MSC_VER) && defined(_M_IX86)
# include <intrin.h>
# define XXH_mult32to64 __emulu
#else
# define XXH_mult32to64(x, y) ((U64)((x) & 0xFFFFFFFF) * (U64)((y) & 0xFFFFFFFF))
#endif |
Fixed in |
I have a problem with using
xxh3.h
on Widows while building for an ARM architecture.The problem is that
__emulu
is an x64/x86 only windows internal macro (MS Docs).Where it's defined only checks for an
_MSC_VER
before using it. It would be very helpful if this could check architecture as well. Say either by not including it when ARM or only using it on x64/x86 processors. Thanks.The text was updated successfully, but these errors were encountered: