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

Clarify the semantics of EndOfInstruction() #6

Open
danmatichuk opened this issue Feb 6, 2020 · 0 comments
Open

Clarify the semantics of EndOfInstruction() #6

danmatichuk opened this issue Feb 6, 2020 · 0 comments
Assignees
Labels
enhancement New feature or request question Further information is requested

Comments

@danmatichuk
Copy link
Collaborator

Currently all exceptional control flow is the result of either an assertion failure or encountering unpredictable/undefined behavior. This allows us to model assertion failure with a simple tripped flag, indicating that any state updates should be ignored (as the instruction is necessarily in an invalid/undefined state).

The EndOfInstruction() function, however, indicates that there shouldn't be any further instruction processing but that any current modifications to the system registers should be preserved.

Trying to model this carefully during symbolic execution results in an explosion of complexity, as each evaluated expression needs to check whether or not EndOfInstruction() has been tripped and stop evaluation if so.

Careful analysis needs to be done to clarify both:

  • To what extent is handling this particular control flow necessary for the level of detail necessary for the semantic model we are trying to represent.

  • If necessary, can this be handled elsewhere in a semantic interpretation of this function? For example, can EndOfInstruction simply checkpoint the state when it is evaluated, and have an outer evaluation framework look for the presence of such a check-pointed state.

@danmatichuk danmatichuk added enhancement New feature or request question Further information is requested labels Feb 6, 2020
@danmatichuk danmatichuk self-assigned this Feb 6, 2020
@danmatichuk danmatichuk changed the title Clarify the semantics of EndOfInstruction Clarify the semantics of EndOfInstruction() Feb 6, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request question Further information is requested
Projects
None yet
Development

No branches or pull requests

1 participant