Skip to content

Register initialization #96

Answered by Boyan-MILANOV
r4dr3fr4d asked this question in Q&A
Discussion options

You must be logged in to vote

We intentionally initialize all registers to concrete values. Using 0 as a default seems to make a lot of sense.

Initializing registers with symbolic variables by default could have some wanted side-effects. For instance, on X64, let's assume that we initialize all ZMM registers with symbolic variables. If we then set sub-registers like XMM or YMM to concrete values, the whole ZMM registers will still hold symbolic expressions (because the upper bits are still symbolic). And then it is likely that the more instructions we run that modify those sub-registers, the more complex the symbolic expressions become. Hence, we would propagate useless symbolic data even though the program is doing p…

Replies: 1 comment 3 replies

Comment options

You must be logged in to vote
3 replies
@r4dr3fr4d
Comment options

@Boyan-MILANOV
Comment options

@r4dr3fr4d
Comment options

Answer selected by Boyan-MILANOV
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants