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

Uniform handling of undefined aflags #541

Open
3 tasks
lkorenc opened this issue Sep 9, 2021 · 0 comments
Open
3 tasks

Uniform handling of undefined aflags #541

lkorenc opened this issue Sep 9, 2021 · 0 comments
Assignees
Labels
x86 Related to x86/x86-64/AMD64 lifting support

Comments

@lkorenc
Copy link
Contributor

lkorenc commented Sep 9, 2021

After some instructions, value inside some arithmetic flags may be undefined. X86 semantics currently handle this non-uniformly by either using __remill_undefined_* intrinsics, storing arbitrary values, or ignoring the undefined value altogether.

Ideal solution would be to always use __remill_undefined_* but add an extra argument, that can be used to indicate a preferred value.
Unfortunately a list of all affected instructions is rather long. Non-exhaustive list of instructions to check:

  • IDIV
  • ROR, RCL, ...
  • BTS, BTR, BTC, ...
@lkorenc lkorenc added the x86 Related to x86/x86-64/AMD64 lifting support label Sep 9, 2021
@lkorenc lkorenc self-assigned this Sep 9, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
x86 Related to x86/x86-64/AMD64 lifting support
Projects
None yet
Development

No branches or pull requests

1 participant