EVM Legacy Assembly


These instructions do not have a direct representation in EVM or Validium VM. Instead, they perform auxiliary operations required for generating the target bytecode.

PUSH $

The same as datasizearrow-up-right.

LLVM IR codegen references:

PUSH #$

The same as dataoffsetarrow-up-right.

LLVM IR codegen references:

ASSIGNIMMUTABLE

The same as setimmutablearrow-up-right.

For more information, see the Differences with Ethereumarrow-up-right.

LLVM IR codegen references:

PUSHIMMUTABLE

The same as loadimmutablearrow-up-right.

For more information, see the Differences with Ethereumarrow-up-right.

LLVM IR codegen references:

PUSHLIB

The same as linkersymbolarrow-up-right.

For more information, see the Differences with Ethereumarrow-up-right.

The LLVM IR generator codearrow-up-right.

PUSHDEPLOYADDRESS

Returns the address the contract is deployed to.

The LLVM IR generator codearrow-up-right.

PUSHSIZE

Can be only found in deploy code. On EVM, returns the total size of the runtime code and constructor arguments.

On Validium VM, it is always 0, since Validium VM does not operate on runtime code in deploy code.

The LLVM IR generator codearrow-up-right.

PUSH data

Pushes a data chunk onto the stack. Data chunks are resolved during the processing of input assembly JSON.

The LLVM IR generator codearrow-up-right.

PUSH tag

Pushes an EVM Legacy Assembly destination block identifier onto the stack.

The LLVM IR generator codearrow-up-right.

Tag

Starts a new EVM Legacy Assembly block. Tags are processed during the translation of EVM Legacy Assembly into EthIR.

Last updated