문제

높은 수준을 나타내는 함수를 찾고 있습니다. an에 대한 인터페이스 원자 CAS 인텔 x86에서.

나는 인라인 ASM으로 그것을 할 수 있다는 것을 알고 있지만 (필요한 경우), 내가 할 수 있다면 다른 사람으로부터 코드를 가져 오는 것입니다.

도움이 되었습니까?

해결책

문서에서 : http://www.digitalmars.com/d/2.0/overview.html

인라인 어셈블러

장치 드라이버, 고성능 시스템 애플리케이션, 임베디드 시스템 및 전문 코드는 때때로 작업을 완료하기 위해 어셈블리 언어로 딥해야합니다. D 구현은 인라인 어셈블러를 구현할 필요는 없지만 언어의 일부와 일부는 정의됩니다. 대부분의 어셈블리 코드 요구 사항을 처리 할 수있어 별도의 어셈블러 또는 DLL이 필요하지 않습니다.

많은 D 구현은 또한 I/O 포트 조작에 대한 C의 고유의 지원, 특수 부동물 포인트 작업에 대한 직접 액세스 등 C의 지원과 유사하게 고유 기능을 지원할 것입니다.

따라서 이론적으로 CMPXCHG를 직접 사용할 수 있습니다.


편집하다

당신은 다음을 원할 수 있습니다 : http://www.dsource.org/projects/tango/browser/trunk/tango/core/atomic.d?rev=4277

어떤 이유로 든로드하는 데 시간이 걸리지 만 내부적으로 CMPXCHG 명령을 사용하고 있습니다. 목적을 위해이를 재조정하는 것은 사소한 일이어야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top