MxCsr
O estado do registro também inclui MxCsr.A convenção de chamada divide esse registro em parte volátil e uma parte não-volátil.A parte volátil consiste nos sinalizadores de 6 status MXCSR [0: 5], enquanto o restante do registro, MXCSR [6: 15] é considerado não-volátil.
A parte não-volátil é definida para os seguintes valores padrão no início da execução do programa:
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)
Precisa de um computador chamado que modifica qualquer um dos campos não-volátil em MXCSR restauração-las antes de retornar para seu chamador.Além disso, um chamador tenha modificado qualquer um desses campos deve restaurá-las aos seus valores padrão antes de invocar um computador chamado, a menos por contrato o computador chamado espera que os valores modificados.
Há duas exceções às regras sobre a volatilidade não-dos sinalizadores de controle:
Em funções no qual a finalidade documentada determinada função é modificar MxCsr não volátil sinalizadores.
Quando está provavelmente correta que a violação dessas regras resultados em um programas que se comporta/significa o mesmo que um programa em que essas regras não estão violadas, por exemplo, por meio da análise de todo programa.
Podem ser feitas sem suposições sobre o estado da parte volátil de MXCSR em um limite de função, a menos que especificamente descrito na documentação da função.