/forceInterlockedFunctions

Secara dinamis memilih antara beban Armv8.0, menyimpan instruksi eksklusif, atau instruksi atom Armv8.1 Large System Extension (LSE) berdasarkan kemampuan CPU saat runtime.

Sintaksis

/forceInterlockedFunctions -[]

Komentar

Jika memungkinkan, bendera ini menghindari penggunaan instruksi eksklusif muat dan penyimpanan Armv8.0, karena petunjuk ini dapat menghasilkan livelock. Bendera ini memaksa intrinsik yang saling terkait berikut untuk dihasilkan sebagai fungsi out-of-line:

Operasi 8 16 32 64 128 Penunjuk
Tambahkan Tidak ada Tidak ada Penuh Penuh Tidak ada Tidak ada
Dan Penuh Penuh Penuh Penuh Tidak ada Tidak ada
Bandingkan Pertukaran Penuh Penuh Penuh Penuh Penuh Penuh
Keputusan Tidak ada Penuh Penuh Penuh Tidak ada Tidak ada
Pertukaran Penuh Penuh Penuh Penuh Tidak ada Penuh
PertukaranTambahkan Penuh Penuh Penuh Penuh Tidak ada Tidak ada
Peningkatan Tidak ada Penuh Penuh Penuh Tidak ada Tidak ada
Atau Penuh Penuh Penuh Penuh Tidak ada Tidak ada
Xor Penuh Penuh Penuh Penuh Tidak ada Tidak ada
bittestandreset Tidak ada Tidak ada Penuh Penuh Tidak ada Tidak ada
bittestandset Tidak ada Tidak ada Penuh Penuh Tidak ada Tidak ada

Kunci:

  • Penuh: mendukung polos, _acq, , _reldan _nf bentuk.

  • Tidak ada: Tidak didukung

Untuk informasi selengkapnya tentang intrinsik yang saling terkait, lihat bagian "Intrinsik yang saling terkait" di Intrinsik Arm64.

Untuk mengatur /forceInterlockedFunctions opsi pengkompilasi di Visual Studio

  1. Buka kotak dialog Halaman Properti untuk proyek. Untuk informasi selengkapnya, lihat Mengatur pengkompilasi C++ dan membuat properti di Visual Studio.

  2. Pilih halaman properti Properti>> Perintah.

  3. Di kotak Opsi tambahan , tambahkan /forceInterlockedFunctions untuk mengaktifkan. Pilih OK untuk menyimpan perubahan.

Untuk mengatur opsi pengkompilasi ini secara terprogram

Lihat juga

Arm64 Intrinsik
Opsi pengkompilasi MSVC
Sintaks baris perintah pengkompilasi MSVC