Disclaimer: I’m currently analyzing the JUMPDEST situation, and might propose a different approach to it (that there are reasons for the extension opcode to be JUMPDEST-analysis neutral).
This is more of an editorial suggestion to current approach:
In the Jumpdest Analysis section, the rule is too weak. In current form 0xEE605B would cause the 0x5B to be an invalid jump destination. I think it should read:
As for
PUSH1opcode, an immediate data byte following a0xEEbyte is skipped over during JUMPDEST analysis.
In particular:
- In
0xEE5Bthe0x5Bis not a valid jump destination - In
0xEE605Bthe0x5Bis a valid jump destination - In
0xEE615B5Bboth0x5B’s are valid jump destinations etc.
For completeness: we’re unfortunate EIP-8024 is considered for Amsterdam, complicating things. If it goes in, 0xE6EE5B, 0xEEE65B (and similar) must be dealt with.