_interlockedbittestandset fungsi intrinsik
Khusus Microsoft
Hasilkan instruksi untuk memeriksa bit b
alamat a
dan mengembalikan nilainya saat ini sebelum mengaturnya ke 1.
Sintaks
unsigned char _interlockedbittestandset(
long *a,
long b
);
unsigned char _interlockedbittestandset_acq(
long *a,
long b
);
unsigned char _interlockedbittestandset_HLEAcquire(
long *a,
long b
);
unsigned char _interlockedbittestandset_HLERelease(
long *a,
long b
);
unsigned char _interlockedbittestandset_nf(
long *a,
long b
);
unsigned char _interlockedbittestandset_rel(
long *a,
long b
);
unsigned char _interlockedbittestandset64(
__int64 *a,
__int64 b
);
unsigned char _interlockedbittestandset64_acq(
__int64 *a,
__int64 b
);
unsigned char _interlockedbittestandset64_nf(
__int64 *a,
__int64 b
);
unsigned char _interlockedbittestandset64_rel(
__int64 *a,
__int64 b
);
unsigned char _interlockedbittestandset64_HLEAcquire(
__int64 *a,
__int64 b
);
unsigned char _interlockedbittestandset64_HLERelease(
__int64 *a,
__int64 b
);
Parameter
a
[di] Penunjuk ke memori untuk diperiksa.
b
[di] Posisi bit untuk diuji.
Nilai hasil
Nilai bit pada posisi b
sebelum diatur.
Persyaratan
Intrinsik | Arsitektur | Header |
---|---|---|
_interlockedbittestandset |
x86, ARM, x64, ARM64 | <intrin.h> |
_interlockedbittestandset_acq , _interlockedbittestandset_nf , _interlockedbittestandset_rel |
ARM, ARM64 | <intrin.h> |
_interlockedbittestandset64_acq , _interlockedbittestandset64_nf , _interlockedbittestandset64_rel |
ARM64 | <intrin.h> |
_interlockedbittestandset_HLEAcquire , _interlockedbittestandset_HLERelease |
x86, x64 | <immintrin.h> |
_interlockedbittestandset64 |
x64, ARM64 | <intrin.h> |
_interlockedbittestandset64_HLEAcquire , _interlockedbittestandset64_HLERelease |
x64 | <immintrin.h> |
Keterangan
Pada prosesor x86 dan x64, intrinsik ini menggunakan lock bts
instruksi untuk membaca dan mengatur bit yang ditentukan ke 1. Operasi ini atomik.
Pada prosesor ARM dan ARM64, gunakan intrinsik dengan _acq
akhiran dan _rel
untuk memperoleh dan melepaskan semantik, seperti di awal dan akhir bagian penting. Intrinsik ARM dengan _nf
akhiran ("tanpa pagar") tidak bertindak sebagai pengralang memori.
Pada prosesor Intel yang mendukung instruksi Hardware Lock Elision (HLE), intrinsik dengan _HLEAcquire
akhiran dan _HLERelease
menyertakan petunjuk ke prosesor yang dapat mempercepat performa dengan menghilangkan langkah tulis kunci di perangkat keras. Jika intrinsik ini dipanggil pada prosesor yang tidak mendukung HLE, petunjuk diabaikan.
Rutinitas ini hanya tersedia sebagai intrinsik.
END Khusus Microsoft
Baca juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk