public LocalVarRemapper(Parameters params, int additionalShift) {
    this.additionalShift = additionalShift;
    this.params = params;

    remapValues = new StackValue[params.getArgsSizeOnStack()];

    int realSize = 0;
    for (ParameterInfo info : params) {
      Integer shift = params.getDeclarationSlot(info);
      if (!info.isSkippedOrRemapped()) {
        remapValues[shift] = StackValue.local(realSize, AsmTypes.OBJECT_TYPE);
        realSize += info.getType().getSize();
      } else {
        remapValues[shift] = info.isRemapped() ? info.getRemapValue() : null;
      }
    }

    actualParamsSize = realSize;
  }