eip-7939: implement the CLZ opcode #2825
Draft
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
blocked on: #2823
Implementing the CLZ (Counting Leading Zeros) opcode introduced in EIP-7939.
The opcode returns the number of leading zeros in an evm word. There is a special case for 0, in which the returned value is 256. It has a gas cost of five, similar to the other
Wlowopcodes, and is available from the Osaka schedule onwards.To compute the number of leading zeros of a number, we use the
log2IntK builtin, as it returns the index of the highest set bit, which we then subtract from 255.