Udostępnij przez


/forceInterlockedFunctions

Dynamicznie wybiera między obciążeniem Armv8.0, instrukcjami wyłącznymi przechowywania lub niepodzielnymi instrukcjami rozszerzenia LSE (Large System Extension) Armv8.1 na podstawie możliwości procesora w czasie wykonywania.

Składnia

/forceInterlockedFunctions[-]

Uwagi

Jeśli to możliwe, ta flaga unika używania wyłącznych instrukcji ładowania i przechowywania Armv8.0, ponieważ te instrukcje mogą spowodować blokady na żywo. Ta flaga wymusza generowanie następujących zablokowanych funkcji wewnętrznych jako funkcji poza wierszem:

Operacja 8 16 32 64 128 Wskaźnik
Dodaj Żaden Żaden Pełny Pełny Żaden Żaden
I Pełny Pełny Pełny Pełny Żaden Żaden
PorównajExchange Pełny Pełny Pełny Pełny Pełny Pełny
Zmniejszyć Żaden Pełny Pełny Pełny Żaden Żaden
Wymiana Pełny Pełny Pełny Pełny Żaden Pełny
WymianaDodaj Pełny Pełny Pełny Pełny Żaden Żaden
Przyrost Żaden Pełny Pełny Pełny Żaden Żaden
lub Pełny Pełny Pełny Pełny Żaden Żaden
Xor Pełny Pełny Pełny Pełny Żaden Żaden
bittestandreset Żaden Żaden Pełny Pełny Żaden Żaden
bittestandset (zestaw bitów) Żaden Żaden Pełny Pełny Żaden Żaden

Klucz:

  • Pełny: obsługuje formularze zwykłe, _acq, _reli _nf .

  • Brak: Nieobsługiwane

Aby uzyskać więcej informacji na temat funkcji wewnętrznych z blokadą, zobacz sekcję "Zablokowane funkcje wewnętrzne" w temacie Arm64 Intrinsics.

Aby ustawić opcję kompilatora /forceInterlockedFunctions w programie Visual Studio

  1. Otwórz okno dialogowe Strony właściwości dla projektu. Aby uzyskać więcej informacji, zobacz Set C++ compiler and build properties in Visual Studio (Ustawianie właściwości kompilatora języka C++ i kompilacji w programie Visual Studio).

  2. Wybierz stronę Właściwości>konfiguracji C/C++>Wiersza polecenia.

  3. W polu Opcje dodatkowe dodaj /forceInterlockedFunctions wartość opcji Włącz. Wybierz przycisk OK , aby zapisać zmiany.

Aby programowo ustawić tę opcję kompilatora

Zobacz także

Cechy wewnętrzne Arm64
Opcje kompilatora MSVC
Składnia wiersza polecenia kompilatora MSVC