anchor.diff:  begin
     if (Size > 0) then
     begin
  -    SpinLock(SupposedPtr(FSpin));
  +    // inline SpinLock
  +    repeat
  +      if (Self.FSpin <> 0) then SpinWait(SupposedPtr(Self.FSpin), High(NativeUInt));
  +    until (0 = AtomicCmpExchange(SupposedPtr(Self.FSpin), 1, 0));
       try
         Result := Self.GetMemory(Size);
       finally
  -      FSpin := 0; // SpinUnlock(FSpin)
  +      FSpin := 0; // inline SpinUnlock
       end;
     end else
     begin
  
positive.code:   // inline SpinLock
    ThreadHeap := UnknownThreadHeap;
    repeat
      if (ThreadHeap.Spin <> 0) then SpinWait(ThreadHeap.Spin, High(NativeUInt));
    until (0 = AtomicCmpExchange(ThreadHeap.Spin, 1, 0));
    try
      // reget
      ThreadHeap.ErrorAddr := ErrorAddr;
  
negative.code:   {$else .CPUX64}
      mov rax, [RDX].TK1LineSmall.Header.Flags
      and rax, 15
      lea r8, DEFAULT_BITSETS_SMALL
      cmp r9, [r8 + rax * 8]
      je @penalty_dispose_line
    {$endif}
  
  