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

What A 3.0 Might Look Like #32

Open
1 of 4 tasks
iximeow opened this issue Dec 16, 2023 · 2 comments
Open
1 of 4 tasks

What A 3.0 Might Look Like #32

iximeow opened this issue Dec 16, 2023 · 2 comments

Comments

@iximeow
Copy link
Owner

iximeow commented Dec 16, 2023

idle wishlist of things i'd like to break for a 2.0 version of the disassembler.. yaxpeax-x86 was one of the first crates i'd published and has some poor API choices as a result.

  • {long,protected,real}_mode need better names
    • years ago i'd had the mistaken impression that you could only run 16-bit code in real mode, 32-bit in protected mode, 64-bit in long mode. the actual hardware-allowed behavior is more subtle and controlled by a few different bits. these really should just be x86_64/x86_32/x86_16 or... something, talking about the bit width of the instruction set.
  • multiple-register operands should be structure-style with named fields
    • Operand docs speak for themselves. which RegSpec is the base, or first register in the address? which is second? which RegSpec is the mask register in RegIndexBaseScaleDispMasked? this would be a little more reasonable as RegIndexBase { base: RegSpec, index: RegSpec } and so on. this will change in 2.0
  • instruction encoding
    • doesn't necessarily need a breaking change, may happen before or after 2.0, but by 2.0 i'd like to have an idea of if there need to be changes here or in yaxpeax-arch..
  • address the open issues re. register names and RegSpec relationships
    • again probably won't need breaking changes. i just want to address these wrinkles before worrying about larger breaking changes.
@iximeow
Copy link
Owner Author

iximeow commented Dec 16, 2023

  • ... real_mode, or whatever name it should be, should not have eip probably... or should have an ip. both? unsure.
    • nothing actually constructs eipin either protected_mode or real_mode. i think this RegSpec constructor and variant will get deleted.

@iximeow
Copy link
Owner Author

iximeow commented Dec 17, 2023

@iximeow iximeow changed the title What A 2.0 Might Look Like What A 3.0 Might Look Like Jun 24, 2024
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

No branches or pull requests

1 participant