Skip to content
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

Support breakpoints on AVX-512 instructions #89705

Merged
merged 12 commits into from
Aug 11, 2023

Conversation

BruceForstall
Copy link
Member

@BruceForstall BruceForstall commented Jul 31, 2023

Support AVX-512 EVEX instruction encodings in debugger patch decode. This allows setting breakpoints on EVEX encoded instructions with RIP-relative memory operands.

This is done by extending the existing table generation and usage mechanism.

In addition to the EVEX addition, various fixes were made to the non-EVEX decodings. Partially this is because the tables were regenerated using gdb 12 (compared to the original construction several years ago), which appears to have some disassembly fixes. In addition, the C# table generating code was updated to compile with the current compiler. Also, various bugs I noticed in the table generation were fixed.

Also, obsolete AMD 3DNow! and XOP instructions and encodings were removed, to avoid their complications.

Resolves #87843

@ghost
Copy link

ghost commented Jul 31, 2023

Tagging subscribers to this area: @tommcdon
See info in area-owners.md if you want to be subscribed.

Issue Details

null

Author: BruceForstall
Assignees: BruceForstall
Labels:

area-Diagnostics-coreclr

Milestone: -

@filipnavara filipnavara added area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI and removed area-Diagnostics-coreclr labels Jul 31, 2023
@ghost
Copy link

ghost commented Jul 31, 2023

Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch
See info in area-owners.md if you want to be subscribed.

Issue Details

null

Author: BruceForstall
Assignees: BruceForstall
Labels:

area-CodeGen-coreclr

Milestone: -

@BruceForstall BruceForstall added area-Diagnostics-coreclr and removed area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI labels Jul 31, 2023
@ghost
Copy link

ghost commented Jul 31, 2023

Tagging subscribers to this area: @tommcdon
See info in area-owners.md if you want to be subscribed.

Issue Details

null

Author: BruceForstall
Assignees: BruceForstall
Labels:

area-Diagnostics-coreclr

Milestone: -

@BruceForstall BruceForstall changed the title WIP Support breakpoints on AVX-512 instructions Aug 2, 2023
@BruceForstall BruceForstall marked this pull request as ready for review August 2, 2023 23:12
@BruceForstall BruceForstall requested a review from hoyosjs August 2, 2023 23:12
@BruceForstall
Copy link
Member Author

BruceForstall commented Aug 3, 2023

Note: this needs an additional change to support EVEX embedded broadcast (e.g., #84821, #87946)

A question is whether we need to support disp8*N. It does affect instruction size, so possibly the answer is yes.

@tommcdon tommcdon requested review from noahfalk and mikem8361 August 3, 2023 13:32
@JulieLeeMSFT JulieLeeMSFT added this to the 8.0.0 milestone Aug 4, 2023
@BruceForstall
Copy link
Member Author

@noahfalk @mikem8361 @hoyosjs This is ready to be reviewed.

@BruceForstall BruceForstall force-pushed the UpdateAmd64DebuggerDisasm branch from abd9e7a to 958208f Compare August 8, 2023 04:10
Copy link
Member

@tommcdon tommcdon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was a large change and difficult to sign off based off of code inspection, so signing based off of adhoc debugger validation.

@BruceForstall BruceForstall merged commit 08f0dc8 into dotnet:main Aug 11, 2023
@BruceForstall BruceForstall deleted the UpdateAmd64DebuggerDisasm branch August 11, 2023 16:56
@ghost ghost locked as resolved and limited conversation to collaborators Sep 10, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

AVX-512 debugger support: breakpoints
4 participants