/QIPF_fr32 (Obere 96 Gleitkommaregister nicht verwenden)
Aktualisiert: November 2007
Weist den Compiler an, beim Kompilieren für Itanium nur die unteren 32 Gleitkommaregister und nicht die oberen 96 Gleitkommaregister zu verwenden.
/QIPF_fr32
Hinweise
Hinweis: |
---|
/QIPF_fr32 ist nur in Compilern verfügbar, die auf Itanium abzielen. Diese Compileroption ist nicht in Compilern verfügbar, die auf x64 oder x86 abzielen. |
Beim Schreiben eines Gerätetreibers, der im Kernelmoduskontext ausgeführt wird, wird die Kompilierung mit /QIPF_fr32 dringend empfohlen. Wenn eine Anwendung aus dem Kernelmodus wechselt und eines der oberen 96 Register nicht intakt ist, wie es bei einem Interrupt vorkommen kann, tritt beim Wechsel der Anwendung in den Benutzermodus ein Fehler auf. Betrachten Sie folgendes Szenario:
Eine Anwendung wird in Benutzermodus ausgeführt, und es tritt ein Interrupt auf.
Die Steuerung wird an den Kernel übergeben, wobei die oberen 96 Gleitkommaregister nicht gespeichert werden.
Der Kernel ruft einen Treiber auf, der ohne /QIPF_fr32 kompiliert wurde.
Der Treiber zerstört eines der oberen Gleitkommaregister.
Der Treiber kehrt in den Kernelmodus zurück.
Bei Rückkehr des Kernels aus dem Interrupt wird eines der oberen Gleitkommaregister der Anwendung wird zerstört.
Neben der korrekten Ausführung von Anwendungen, die vom Kernelmodus in den Benutzermodus wechseln, wird mit /QIPF_fr32 auch die Leistung der Kontextänderungen im Benutzermodus verbessert (die oberen 96 Gleitkommaregister müssen nicht gespeichert oder neu geladen werden).
So legen Sie diese Compileroption in der Visual Studio-Entwicklungsumgebung fest
- /QIPF_fr32 ist in der Visual Studio-Entwicklungsumgebung nicht verfügbar.
So legen Sie diese Compileroption programmgesteuert fest
- Siehe AdditionalOptions.