anchor.diff:    CellInfo := Cell.NodePtr;
     if (CellInfo and NODEPTR_FLAG_ALLOCATED <> 0) then
     begin
  +    {$ifdef LARGEINT}
  +    NodeBuffers := Pointer(@FInfo.NodeAllocator.Buffers);
  +    {$endif}
       CellInfo := PCPFNode(
  -              {$ifdef LARGEINT}FInfo.NodeAllocator.Buffers[CellInfo shr LARGE_NODEPTR_OFFSET] +{$endif}
  +              {$ifdef LARGEINT}NodeBuffers[CellInfo shr LARGE_NODEPTR_OFFSET] +{$endif}
                 CellInfo and NODEPTR_CLEAN_MASK
                  ).NodeInfo;
     end;
  
positive.code:   Node: PCPFNode;
    FinishNode: PCPFNode;
  
    {$ifdef CPUX86}Params: TTileMapParams;{$endif}
  begin
    // stack copy parameters to one register save
    {$ifdef CPUX86}Params := _;{$endif}
  
negative.code:   Inc(NativeUInt(Point), {$ifdef CPUX86}Store.{$endif}Length{Size});
    Dec(Point);
    N := Cardinal(Node.Coordinates);
    {$ifdef LARGEINT}
      PNativeUInt(Point)^ := (NativeUInt(Word(N)) shl 32) + (N shr 16);
    {$else}
      Point.Y := Word(N);
      Point.X := N shr 16;
    {$endif}
    N := Node.NodeInfo;
    {$ifdef CPUX86}
      Inc(Buffer.Values[((N shr 23) and -2) + (N and 1)]);
  