Ich weiß, dass wenn Sie Inline-Assembler mit GCC verwenden, können Sie die Assembly-Abschnitte mit dem Schlüsselwort volatile
dekorieren, damit der Optimierer keine Dinge bewegt.Benötigt Inline Assembly in MS C++ etwas wie volatile, um Optimierer zu vermeiden
Gibt es eine ähnliche Sache in Microsoft C++, oder lässt der Optimierer standardmäßig Inline-Code allein?
Ich kann keine Dokumentation darüber finden, was MS C++ bei der Optimierung von Inline Assembler tun wird. Das Fehlen von "Interface" -Deklarationen (wie GCC-Constraints) und die vage Aussage, dass Registerinhalte vor dem Eingeben eines Inline-Asm-Blocks gespeichert werden, zeigen jedoch, dass MS Inline Asm völlig undurchsichtig ist und daher nicht wegoptimiert wird. – JimmyB