내장 함수 _interlockedbittestandreset
Microsoft 전용
주소 a
의 비트를 b
0으로 설정하고 원래 값을 반환하는 명령을 생성합니다.
구문
unsigned char _interlockedbittestandreset(
long *a,
long b
);
unsigned char _interlockedbittestandreset_acq(
long *a,
long b
);
unsigned char _interlockedbittestandreset_HLEAcquire(
long *a,
long b
);
unsigned char _interlockedbittestandreset_HLERelease(
long *a,
long b
);
unsigned char _interlockedbittestandreset_nf(
long *a,
long b
);
unsigned char _interlockedbittestandreset_rel(
long *a,
long b
);
unsigned char _interlockedbittestandreset64(
__int64 *a,
__int64 b
);
unsigned char _interlockedbittestandreset64_acq(
__int64 *a,
__int64 b
);
unsigned char _interlockedbittestandreset64_nf(
__int64 *a,
__int64 b
);
unsigned char _interlockedbittestandreset64_rel(
__int64 *a,
__int64 b
);
unsigned char _interlockedbittestandreset64_HLEAcquire(
__int64 *a,
__int64 b
);
unsigned char _interlockedbittestandreset64_HLERelease(
__int64 *a,
__int64 b
);
매개 변수
a
[in] 검사할 메모리에 대한 포인터입니다.
b
[in] 테스트할 비트 위치입니다.
반환 값
b
로 지정된 위치에 있는 비트의 원래 값입니다.
요구 사항
Intrinsic | 아키텍처 | 헤더 |
---|---|---|
_interlockedbittestandreset |
x86, ARM, x64, ARM64 | <intrin.h> |
_interlockedbittestandreset_acq , , _interlockedbittestandreset_nf _interlockedbittestandreset_rel |
ARM, ARM64 | <intrin.h> |
_interlockedbittestandreset64_acq , , _interlockedbittestandreset64_nf _interlockedbittestandreset64_rel |
ARM64 | <intrin.h> |
_interlockedbittestandreset_HLEAcquire , _interlockedbittestandreset_HLERelease |
x86, x64 | <immintrin.h> |
_interlockedbittestandreset64 |
x64, ARM64 | <intrin.h> |
_interlockedbittestandreset64_HLEAcquire , _interlockedbittestandreset64_HLERelease |
X64 | <immintrin.h> |
설명
x86 및 x64 프로세서에서 이러한 내장 함수는 원자성 작업에서 지정된 비트를 읽고 0으로 설정하는 명령을 사용합니다 lock btr
.
ARM 프로세서에서는 임계 영역의 시작 및 끝과 같은 위치에서 의미 체계를 획득하고 해제하려면 _acq
및 _rel
접미사가 포함된 내장 함수를 사용합니다. ("no fence") 접미사가 있는 _nf
ARM 내장 함수는 메모리 장벽으로 작동하지 않습니다.
HLE(Hardware Lock Elision) 명령을 지원하는 Intel 프로세서에서 _HLEAcquire
및 _HLERelease
접미사가 포함된 내장 함수는 하드웨어에서 잠금 쓰기 단계를 제거하여 성능을 향상시킬 수 있는 힌트를 프로세서에 포함합니다. HLE을 지원하지 않는 프로세서에서 이러한 내장 함수를 호출하면 힌트가 무시됩니다.
이러한 루틴은 내장 함수로만 사용할 수 있습니다.
Microsoft 전용 종료