-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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
common: Fix multiple _xgetbv() error on GCC 8 #2419
Conversation
GCC 8 now provides _xgetbv, so avoid using our own definition in that case.
it can be merged |
I am not sure this is the proper fix... |
More in detail: I have done a clean build of 8f6a3d9 Using the original definition of _xgetbv (by reverting the file and removing the definition) works. |
Here there are some more data on the segfault Core was generated by `./PCSX2'. Thread 1 (Thread 0xf5328e80 (LWP 4453)): actually, the last instructions executed are but here esi=0x1 which does not make sense |
Esi is this. The pointer object. Maybe there is a stack corruption. Anyway, do we really need xgetbv. Any modern OS should support AVX. I'm surprised we don't have issue on gsdx side too |
Actually I believe that I did not get to initializing gsdx yet (so, perhaps
the issue is also there).
I have opened a new bug report.
luca
…On Sun, May 6, 2018 at 12:41 PM Gregory Hainaut ***@***.***> wrote:
Esi is this. The pointer object. Maybe there is a stack corruption.
Anyway, do we really need xgetbv. Any modern OS should support AVX.
I'm surprised we don't have issue on gsdx side too
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#2419 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AHAatDoyveI0Pu7JDzvE-wklDx8uGzQuks5tvtNXgaJpZM4TzYKq>
.
|
Would you be able to dump asm code for cpudetect.cpp.o file in both case. You can use objdump. |
Sure... |
Here there is a dump of a working cpudetect built with debug |
Nice. Generated code seem corrupted too. Great. Potentially it is a 32 bits issue only. |
I think GCC's _xgetbv() is broken on 64-bit too. It immediately overwrites one of the output registers. https://godbolt.org/g/K1NnPk |
I can understand that 32 bits is barely tested but seriously 64 bits... |
GCC 8 now provides _xgetbv, so avoid using our own definition in that case.
Fixes #2417.