-
Notifications
You must be signed in to change notification settings - Fork 298
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
Optimize JUMPDEST analysis #306
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
BenchmarksTime are in µs. Haswell 4.0 GHz, Clang 12
Haswell 4.0 GHz, GCC 10
|
lib/evmone/baseline.cpp
Outdated
JumpdestMap m(code_size); | ||
// Bitmask for PUSH instructions identification. | ||
// It removes the lower 5 bits of a PUSH instruction with information about the data length. | ||
// The remaining top 3 bits of every PUSH instruction is 0b011, i.e. 0x60, OP_PUSH1. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This sentence confused is what confused me, but probably it's just me.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Better now?
b04b001
to
05d6e10
Compare
Optimize the build_jumpdest_map() procedure for JUMPDEST analysis. - "is push opcode" conditions has been changed to (op & 0xE0) == 0x60. - the op == JUMPDEST condition has been marked as unlikely.
05d6e10
to
d7abe19
Compare
Optimize the build_jumpdest_map() procedure for JUMPDEST analysis.