-
Notifications
You must be signed in to change notification settings - Fork 5.2k
[APX] Follow up on #104637: rename extended registers and bug fixes. #114713
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
Conversation
Hi @BruceForstall, I made the changes to revert the raw byte code in contetx2.S. Looks like some builds are still failing: OSX/tvOS, linux with GCC and musl.
Also regarding this question, I have renamed the registers, and the layout should be arbitrary, we use But I do have another open to discuss, I've logged the details in context.cpp. It would be much appreciated if you could share some thoughts. |
I presume we will never support APX on OSX/tvOS or any Apple product, since they are actively deprecating Intel processor support. So the build should work around that with
This is a question about CONTEXT handling in the PAL -- @janvorli or @jkotas might be better to answer. |
@Ruihan-Yin there is no need to copy the contents of the CONTEXT in one block. You can copy the APX part separately. It was just a convenience when there was one extra block, so we could do a single copy. |
Thanks for the clarification, I will make the changes accordingly. |
Now that we still have dependency on GCC and musl, we can let the raw byte code stay for a little longer. But I can still cover the needed changes for renaming and context copy in this PR |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR renames extended registers from Egprx to Rx and fixes the copy logic for the CONTEXT structure related to AVX512 and APX handling.
- Renamed register fields from Egpr16–Egpr31 to R16–R31 in the PAL header.
- Updated memcpy calls in context.cpp to use the new register naming.
- Adjusted the assignment operator to separate APX register copying while handling AVX512.
Reviewed Changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
File | Description |
---|---|
src/coreclr/pal/src/thread/context.cpp | Updated memcpy calls and assignment operator logic to reflect register renaming and fix copy issues. |
src/coreclr/pal/inc/pal.h | Renamed structure members from Egpr16–Egpr31 to R16–R31. |
Comments suppressed due to low confidence (1)
src/coreclr/pal/inc/pal.h:1523
- [nitpick] The register fields have been renamed to 'R16-R31'; please verify that all related code references are updated accordingly.
DWORD64 R16;
failures look irrelevant, rerunning CI |
make sure we APX registers are copied to the right memory location. Co-authored-by: Copilot <[email protected]>
Hi @BruceForstall, could you please give this another review? Thanks! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, thank you!
resolving the comments from #104637.
renamed
Egprx
toRx
.Fixed the copy logic for
CONTEXT
data structure, now it should be able to correctly handle the cases with Avx512 and APX.