---
eip: 7957
title: EVM64 - EOF support
description: EVM Object Format support for EVM64
author: Wei Tang (@sorpaas)
discussions-to: https://ethereum-magicians.org/t/eip-7937-64-bit-mode-evm-opcodes-evm64/23794
status: Stagnant
type: Standards Track
category: Core
created: 2025-05-26
requires: 3540, 3670, 4200, 7937
---

## Abstract

This EIP defines EOF support for EVM64 with its additional code validation rules and `RJUMPI`, `RJUMPV` opcodes.

## Motivation

EOF defines a stricter code validation rule to improve efficiency. Due to EVM64 using multibyte opcode (the mode opcode `C0`), a small adaptation is needed. This EIP also additionally defines a 64-bit mode `RJUMPI` and `RJUMPV` to be 64-bit.

## Specification

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 and RFC 8174.

We define the following gas cost constant:

| Name | Gas |
|------|-----|
| `G_RJUMPIV64` | `3` |

At EOF contract creation time as defined in [EIP-3670](./eip-3670.md), if the opcode `C0` is encountered and it is not part of PUSH opcode's data, then the interpreter MUST validate that:

* The next opcode exists.
* The next opcode is `RJUMPI64`, `RJUMPV64`, or one of the core 64-bit opcode defined in [EIP-7937](./eip-7937.md) minus `JUMP64` and `JUMPI64`.

For flow operations RJUMPI and RJUMPV, the 64-bit mode has following changes:

* For `RJUMPI64` (0xc0e1), the condition popped from stack is only read for the last 64 bits. Gas cost is `G_RJUMPIV64`.
* For `RJUMPV64` (0xc0e2), the case popped from stack is only read for the last 64 bits. Gas cost is `G_RJUMPIV64`.

Note that:

* `RJUMP` is automatically in 64-bit mode because it does not read or write the stack.

## Rationale

For detailed rationale discussion, please see the core EVM64 definition [EIP-7937](./eip-7937.md).

## Backwards Compatibility

No backward compatibility issues found.

## Test Cases

To be added.

<!-- TODO -->

## Reference Implementation

To be added.

<!-- TODO -->

## Security Considerations

Needs discussion.

## Copyright

Copyright and related rights waived via [CC0](../LICENSE.md).
