anchor.diff:  end;
   
   class function BigInteger.Compare(const Left, Right: BigInteger): Integer;
  -type
  -  PInteger = ^Integer;
  -begin
  +var
  +  LSize, RSize: Integer;
  +begin
  +  LSize := Left.FSize and SizeMask;
  +  RSize := Right.FSize and SizeMask;
     // Avoid comparing -0 and +0, so make all zeroes simply 0.
  -  if Left.FData = nil then
  -    PInteger(@Left.FSize)^ := 0;
  -  if Right.FData = nil then
  -    PInteger(@Right.FSize)^ := 0;
  -  Result := InternalCompare(PLimb(Left.FData), PLimb(Right.FData), Left.FSize and SizeMask, Right.FSize and SizeMask);
  +  Result := InternalCompare(PLimb(Left.FData), PLimb(Right.FData), LSize, RSize);
     if Left.FSize < 0 then
       if Right.FSize < 0 then
         Result := -Result
  
positive.code: begin
    if not Assigned(Left.FData) then
    begin
      ShallowCopy(Right, Result);
      Exit;
    end
    else if not Assigned(Right.FData) then
    begin
      ShallowCopy(Left, Result);
      Exit;
    end;
  
  
negative.code: 
      if Comparison = 0 then
      begin
        Result.FSize := 0;
        Result.FData := nil;
        Exit;
      end;
  
  