anchor.diff:      Next: PThreadDeferred;
       ReturnAddress: SupposedPtr;
       {
  +      Address: Pointer:31/63;
         IsSmall: Boolean:1;
       }
     end;
  
positive.code: 
          if (Duplicate <> nil) then
          begin
            Self.ErrorAddr := Pointer(Duplicate.ReturnAddress and -2);
            Self.RaiseInvalidPtr;
          end;
        end;
  
negative.code: procedure TThreadHeap.PushThreadDeferred(P: Pointer; ReturnAddress: Pointer;
    IsSmall: Boolean);
  begin
    PThreadDeferred(P).ReturnAddress := SupposedPtr(ReturnAddress) +
      (SupposedPtr(IsSmall) shl HIGH_NATIVE_BIT);
    Deferreds.Push(P);
  end;
  
  