Freigeben über


Richtlinien für wenn EMMS verwenden

[Diese Dokumentation ist nur eine Vorschau und wird in späteren Versionen ggf. geändert. Blank topics are included as placeholders.]

Microsoft-spezifisch

Diese Richtlinien helfen Ihnen, zu bestimmen, wann die EMMS-Anweisung verwendet:

  • Wenn die nächste Anweisung eine Gleitkommaanweisung ist, verwenden Sie _mm_empty nach einer Anweisung MMX (z. B. vor dem diese von Berechnungen auf Gleitkommas, Doubles oder langen Doubles).

  • Leer, wenn nicht bereits leer. Wenn die folgende Anweisung ein Register MMX verwendet, führt _mm_empty einen Vorgang ohne Nutzen (No-Op).

  • Verwenden Sie verschiedene Funktionen für Bereiche, die Gleitkommaanweisungen und die Verwendung der Anweisungen verwendet werden, die MMX. Dies schließt das Benötigen eine EMMS-Anweisung im Text einer wichtigen Schleife.

  • Verwenden Sie _mm_empty während der Laufzeitinitialisierung eines __m64 und FROM FP Datentypen. Dadurch wird das Zurücksetzen des Registers zwischen Datentyp übergängen sicher. Verwenden von SOAP-Codierung finden Sie im folgenden Beispiel.

Korrigieren von EMMS-Verwendung im Initialisierungscode

Falsche Verwendung

Richtiger Verwendung

__m64 x = _m_paddd(y, z);
float f = init();
__m64 x = _m_paddd(y, z);
float f = (_mm_empty(), init());

Darüber hinaus müssen Sie sämtliche Situationen berücksichtigen, wenn der Code eine Anweisung MMX generiert:

  • Wenn MMX direkt verwendet werden.

  • Wenn die Streaming SIMD-Erweiterungen verwendet werden (für diese systeminternen Funktionen die Daten der Verwendung MMX).

  • Wenn eine Anweisung durch MMX Inlineassembly verwendet wird.

  • Wenn eine __m64 Datentyp der Variablen verwiesen wird.

Weitere EMMS Dokumentation finden Sie in der Intel-Dokumentation an.

Systeminterne Funktionen MMX verwenden den __m64 Datentyp, der nicht auf x64 Prozessoren unterstützt wird.

Siehe auch

Referenz

MMX Technologie

Intrinsic Support Technologie-allgemeine MMX Komponenten