@Override
  public OperationResult execute(final MessageFrame frame, final EVM evm) {
    Code code = frame.getCode();
    if (code.getEofVersion() == 0) {
      return InvalidOperation.INVALID_RESULT;
    }

    int pc = frame.getPC();
    int section = code.readBigEndianU16(pc + 1);
    CodeSection info = code.getCodeSection(section);
    int operandStackSize = frame.stackSize();
    if (operandStackSize > 1024 - info.getMaxStackHeight() + info.getInputs()) {
      return callfStackOverflow;
    }
    frame.getReturnStack().push(new ReturnStack.ReturnStackItem(frame.getSection(), pc + 2));
    frame.setPC(info.getEntryPoint() - 1); // will be +1ed at end of operations loop
    frame.setSection(section);

    return callfSuccess;
  }
Instantiates a new Call F operation.

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