Sdílet prostřednictvím


MxCsr

Stav registru obsahuje také MxCsr. Konvence volání tento registr rozděluje na těkavou část a stálou část. Těkavá část se skládá ze 6 příznaků stavu, MXCSR [0:5], zatímco zbytek registru, MXCSR [6:15], je považován za stálý.

Stálá část je nastavena na následující standardní hodnoty na začátku provádění programu:

MXCSR[6]         : Denormals are zeros - 0
MXCSR[7:12]      : Exception masks all 1's (all exceptions masked)
MXCSR[13:14]   : Rounding  control - 0 (round to nearest)
MXCSR[15]      : Flush to zero for masked underflow - 0 (off)

Volaný, který mění libovolná stálá pole v rámci MXCSR, je musí obnovit před návratem do jeho volajícího. Kromě toho, volající, který změní některé z těchto polí, musí obnovit jejich standardní hodnoty před vyvoláním volaného, není-li dohodou, že volaný očekává upravené hodnoty.

Existují dvě výjimky pravidla, týkající se permanence příznaků ovládacího prvku:

  • Ve funkcích, kde je dokumentovaný účel dané funkce upraven permanencí MxCsr příznaků.

  • Pokud je prokazatelně správné, že tyto pravidla poruší výsledky v programech, které se chovají/znamenají stejně jako program, kde tato pravidla nebyla porušena, například prostřednictvím analýzy celého programu.

Žádné předpoklady o stavu těkavé části MXCSR nemohou být provedeny přes hranice funkce, pokud to není výslovně uvedeno v dokumentaci funkce.

Viz také

Odkaz

Konvence volání