fix(x86_64): Make the encoder recognize ModR/M operands #22493
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hello :)
Fixes #20955, I ran into it myself. Now I'm not certain about my x86_64 encoding skills (I just tried to follow how R/Ms are placed on https://www.felixcloutier.com/x86, extrapolated the rest). The sample given in the issue does compile and run though (so does zig itself built with this branch (at least on
x86_64-linux-gnu
)).I also took the liberty to add some logging whenever the encoder can't find an instruction based on a mnemonic. It helped me spot the issue, I hope it might be useful going forward.