diff --git a/MIPs/MIP-18.md b/MIPs/MIP-18.md index 628ffa4..cebb259 100644 --- a/MIPs/MIP-18.md +++ b/MIPs/MIP-18.md @@ -101,6 +101,8 @@ Neither opcode needs immediate arguments, so neither uses the argument encodings Under MIP-7, the extended opcodes `0xAE 0x00` and `0xAE 0x01` currently behave like `INVALID`. Existing code that executes either sequence halts exceptionally today and will execute successfully after this MIP. Such code is not expected to exist in practice, because the sequences have never had defined behavior on Monad or Ethereum. +A trailing `EXTENSION` byte has no selector and MUST halt exceptionally, as [MIP-7](./MIP-7.md) specifies. + `JUMPDEST` analysis is unaffected. ## Security Considerations diff --git a/MIPs/MIP-7.md b/MIPs/MIP-7.md index 4504a0d..e1d7fdf 100644 --- a/MIPs/MIP-7.md +++ b/MIPs/MIP-7.md @@ -25,6 +25,7 @@ EIP-8163 reserves the `EXTENSION` (`0xAE`) opcode on Ethereum L1 specifically to ### Extended Opcode Encoding The `EXTENSION` opcode (`0xAE`) MUST be immediately followed by a 1-byte extension selector. The extension selector MUST NOT be `0x5B` (`JUMPDEST`) or in the range `0x60`-`0x7F` (`PUSH1`-`PUSH32`). An extension selector in this excluded range MUST cause an exceptional halt, consuming all remaining gas. +An `EXTENSION` byte at the end of code has no selector and MUST cause an exceptional halt, consuming all remaining gas. Define **extended opcode** as the 2-byte sequence `0xAE XX`.