-
Notifications
You must be signed in to change notification settings - Fork 554
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
Add support for drx_expand_scatter_gather() and instr_is_{scatter,gather}() on AArch32 #3837
Comments
This issue includes arm support for drx_expand_scatter_gather(), right? Maybe add that to the title. |
Xref #2985 which is the x86 issue. |
hgreving2304
pushed a commit
that referenced
this issue
Sep 17, 2019
…o scalar sequences. (#3831) Adds the function drx_expand_scatter_gather() that is capable of expanding AVX-512 scatter and gather and AVX2 gather instructions into equivalent sequences of scalar code. WARNING: Do not use yet, support is incomplete. In particular, * Certain registers may be clobbered by the sequence and will not be restored. * Application state may not be properly restored if the sequence is getting interrupted. * drreg may fail if used in other phases in addition to app2app (xref #3823). Furthermore, * AArch64 support is missing (xref #3837). * The qword index and value versions are not supported in 32-bit mode. Adds a limited test for the expanded sequences. The test works with above limitations, because the clobbered registers are not live in the test application and the application does not check the mask state until the instruction is complete. In the test application this may result in occasional duplicated scalar loads and stores, but will not break the test. Adds a check for the mask registers to test client.avx512ctx. Issue: #2985, #3837
jackgallagher-arm
added a commit
that referenced
this issue
Jun 26, 2023
The existing drx_expand_scatter_gather() function is > 2000 lines of code, including helper functions, and most of it is very x86 specific. In preparation for writing the AArch64 version of this function, this commit moves the x86 implementation of drx_expand_scatter_gather() out of drx.c into its own architecture specific files, and creates dummy implementations for other architectures. The behaviour of the function should be unchanged on all platforms. As we develop the AArch64 version of drx_expand_scatter_gather(), any parts of the original x86 implementation which are usefull to both can be pulled out into helper functions which are shared between both architectures. Issues: #5844, #5036, #3837
github-merge-queue bot
pushed a commit
that referenced
this issue
Jun 27, 2023
The existing drx_expand_scatter_gather() function is > 2000 lines of code, including helper functions, and most of it is very x86 specific. In preparation for writing the AArch64 version of this function, this commit moves the x86 implementation of drx_expand_scatter_gather() out of drx.c into its own architecture specific files, and creates dummy implementations for other architectures. The behaviour of the function should be unchanged on all platforms. As we develop the AArch64 version of drx_expand_scatter_gather(), any parts of the original x86 implementation which are usefull to both can be pulled out into helper functions which are shared between both architectures. Issues: #5844, #5036, #3837
This only covers AArch32; #5036 covers AArch64. |
Turns out there are not any AArch32 scatter-gather instructions so we're closing this and leaving just #5036 as it has more discussion/content. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
The functions instr_is_scatter() and instr_is_gather() will be added along with a patch shortly. This issue covers support for ARM/AArch64.
The text was updated successfully, but these errors were encountered: