anchor.diff:        Count: NativeUInt;
         _Padding: array[1..64 - SizeOf(TSyncStack) - SizeOf(NativeUInt)] of Byte;
       end;
  +  private
  +    {class} function GrowThreadHeaps: PThreadHeap;
  +    {class} function GrowInternalRecords: PInternalRecord;
  +  public
  +    {class} function InternalRecordPop: PInternalRecord; {$ifdef INLINESUPPORT}inline;{$endif}
  +    {class} procedure InternalRecordPush(const InternalRecord: PInternalRecord); {$ifdef INLINESUPPORT}inline;{$endif}
  +
  +    {class} function K64BlockCachePop: MemoryBlock;
  +    {class} function K64BlockCachePush(const K64Block: MemoryBlock): Boolean;
  +
  +    {class} function ExcludePagesRecord(const SupposedPages: SupposedPtr): PInternalRecord;
  +    {class} procedure IncludePagesRecord(const PagesRecord: PInternalRecord);
     end;
     PGlobalStorage = ^TGlobalStorage;
   
  
positive.code:     FNextHeap: PThreadHeap;
      FK1LineSmalls: array[1..8] of PK1LineSmall;
      FMarkerNotSelf: SupposedPtr;
      
    public
      // 1kb-lines (small) + 64kb pool (small) routine
      QK1LineFull: PK1LineSmall;
  
negative.code:     Result := Pointer(Item {$ifdef CPUX64}and X64_SYNCSTACK_MASK{$endif});
      if (Result = nil) then Exit;
  
      NewItem := PSupposedPtr(Result)^ {$ifdef CPUX64}+ (Item and X64_SYNCSTACK_CLEAR){$endif};
    until (Item = AtomicCmpExchange(F.Handle, NewItem, Item));
  end;
  
  function TSyncStack.PopList: Pointer;
  var
    Item, NewItem: SupposedPtr;
  begin
  