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

add ASO prefix to E8 call opcode #46

Merged
merged 1 commit into from
Jun 21, 2023
Merged

add ASO prefix to E8 call opcode #46

merged 1 commit into from
Jun 21, 2023

Conversation

Ptival
Copy link
Contributor

@Ptival Ptival commented Jun 8, 2023

While the specification seems to imply that this is reserved and unspecified, there is a compiler out there producing binaries where 67 e8 is used, supposedly as a means to alignment, as the prefix ought to have no effect on this instruction.

Kind of want to open this to discussion: do we want flexdis86 to be somewhat lax with the specification, recognizing binaries that compilers produce even when they use somewhat under-specified corners of the ISA semantics, or do we want to be stringent and reject such binaries?

@Ptival Ptival requested a review from RyanGlScott June 8, 2023 17:21
Copy link
Contributor

@RyanGlScott RyanGlScott left a comment

Choose a reason for hiding this comment

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

I think this is fine, assuming that it doesn't introduce any ambiguities described in this Note. (My reading of the Note has led me to conclude that this patch shouldn't introduce any additional complications.) I am also aligned with making the disassembler more permissive to handle binaries in the wild, as this is something that we have already done in the past. (See the commit history for opcode.xml for examples of this.)

My only suggestion would be to include a comment explaining why this (peculiar) prefix is allowed here, perhaps citing the example from https://reviews.llvm.org/D120592#3348274 as a place where this prefix can arise in practice.

While the specification seems to imply that this is reserved and
unspecified, there is a compiler out there producing binaries where `67
e8` is used, supposedly as a means to alignment, as the prefix ought to
have no effect on this instruction.
@Ptival Ptival merged commit fff3cf3 into main Jun 21, 2023
@Ptival Ptival deleted the vr/call-aso branch June 21, 2023 10:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants