Frage

Ich suche nach einer Funktion, die ein hohes Niveau präsentiert D Schnittstelle zu einem Atom CAS für Intel x86.

Ich weiß, dass ich es mit Inline-ASM tun kann (und notwendig, wenn ich will), aber ich würde lieber nur greifen Code von jemandem anderes, wenn ich kann.

War es hilfreich?

Lösung

Aus der Dokumentation unter: http://www.digitalmars.com/d/ 2.0 / overview.html

  

Inline-Assembler

     

Die Gerätetreiber, hohe Leistung   Systemanwendungen, eingebettete Systeme,   und spezialisierte Code manchmal müssen   Tauchen Sie ein in Assembler-Sprache zu bekommen die   Job erledigt. Während D-Implementierungen   nicht erforderlich, um die Inline zu implementieren   Assembler ist definiert, und ein Teil von   die Sprache. Die meisten Assembler-Code Bedürfnisse   können damit behandelt werden, die Beseitigung der   muß für separate Monteure oder DLL.

     

Viele D-Implementierungen werden auch   intrinsische Funktionen unterstützen   analog zu C Unterstützung von   intrinsics für I / O-Port-Manipulation,   direkter Zugang zu speziellem floating   Point-Operationen, etc.

So können Sie in der Theorie könnte direkt den cmpxchg verwenden.


Bearbeiten

Sie wollen aussehen kann unter: http://www.dsource.org/projects/tango/browser/trunk/tango/core/Atomic.d?rev=4277

Es dauert eine Weile, aus irgendeinem Grunde zu laden, aber es wird mit der cmpxchg Anweisung intern, sollte es trivial wäre es für Ihre Zwecke zu umrüsten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top