code: protected boolean setupReturnObjectValueForExitTrace() {
          Type type = getReturnTypeForTrace();
          if (type.equals(Type.VOID_TYPE)) {
              return false;
          }
          if (isConstructor()) {
              visitVarInsn(ALOAD, 0);
          } else if (type != Type.VOID_TYPE) {
              if (type.getSize() == 2) {
                  visitInsn(DUP2);
              } else {
                  visitInsn(DUP);
              }
          }
          box(type, isResultSensitive());
          return true;
      }
docs: If the return type of the method being processed is something other than <code>void</code>, duplicate or box the value to put a copy of the return
  value on the top of the stack that can be consumed by an exit trace. If
  the return type of the method is void, the stack is left unhcanged as there
  is nothing to copy or trace.
  
  @return true if an object was placed on the stack for the exit trace