anchor.diff:    SaveLeft: PLimb;
     LeftSize, RightSize: Integer;
   asm
  -        .PUSHNV RSI
  +.PUSHNV RSI
           .PUSHNV RDI
           .PUSHNV RBX
   
  
positive.code:   Result.FData := Copy(Value.FData);
  end;
  
  class function BigInteger.Abs(const Value: BigInteger): BigInteger;
  begin
    ShallowCopy(Value, Result);
  
negative.code: class function BigInteger.Log2(const Value: BigInteger): Double;
  begin
    Result := Log(Value, 2.0);
  end;
  
  function BigInteger.Log(Base: Double): Double;
  begin
    Result := Log(Self, Base);
  end;
  
  function BigInteger.Log10: Double;
  begin
    Result := Log(Self, 10.0);
  end;
  
  function BigInteger.Log2: Double;
  begin
    Result := Log(Self, 2.0);
  end;
  
  class operator BigInteger.LogicalNot(const Value: BigInteger): BigInteger;
  