@Override
  public OperationResult execute(final MessageFrame frame, final EVM evm) {
    final long location = clampedToLong(frame.popStackItem());

    final long cost = gasCalculator().mLoadOperationGasCost(frame, location);
    if (frame.getRemainingGas() < cost) {
      return new OperationResult(cost, ExceptionalHaltReason.INSUFFICIENT_GAS);
    }

    final Bytes value = frame.readMutableMemory(location, 32, true).copy();

    frame.pushStackItem(value);
    return new OperationResult(cost, null);
  }
Instantiates a new M load operation.

@param gasCalculator the gas calculator
evm/src/main/java/org/hyperledger/besu/evm/operation/MLoadOperation.java