Return
STOP
Original EVM instruction.
This instruction is a RETURN with an empty data payload.
LLVM IR
The same as for RETURN.
The LLVM IR generator code is common for Yul and EVMLA representations.
RETURN
Original EVM instruction.
This instruction works differently in deploy code. For more information, see the ZKsync Era documentation.
LLVM IR
define void @__return(i256 %0, i256 %1, i256 %2) "noinline-oz" #5 personality i32()* @__personality {
entry:
%abi = call i256@__aux_pack_abi(i256 %0, i256 %1, i256 %2)
tail call void @llvm.syncvm.return(i256 %abi)
unreachable
}
The LLVM IR generator code is common for Yul and EVMLA representations.
REVERT
Original EVM instruction.
LLVM IR
define void @__revert(i256 %0, i256 %1, i256 %2) "noinline-oz" #5 personality i32()* @__personality {
entry:
%abi = call i256@__aux_pack_abi(i256 %0, i256 %1, i256 %2)
tail call void @llvm.syncvm.revert(i256 %abi)
unreachable
}
The LLVM IR generator code is common for Yul and EVMLA representations.
EraVM
See also EraVM instruction revert
: when returning from near calls
and when returning from far calls.
INVALID
Original EVM instruction.
This instruction is a REVERT with an empty data payload, but it also burns all the available gas.
LLVM IR
The same as for REVERT.
The LLVM IR generator code is common for Yul and EVMLA representations.
EraVM
See also EraVM instruction revert
: when returning from near calls
and when returning from far calls.