Compartir a través de


MxCsr

El estado del registro también incluye MxCsr. La convención de llamada divide este registro en una parte variable y otra no variable. La parte variable está compuesta por los 6 marcadores de estado (MXCSR[0:5]), mientras el resto del registro (MXCSR[6:15]) se considera no variable.

La parte no variable se establece en los valores estándar siguientes al inicio de la ejecución del 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)

Un destinatario que modifica cualquiera de los campos no variables incluidos en MXCSR debe restaurarlos antes de devolverlos a su llamador. Además, un llamador que haya modificado alguno de estos campos debe restaurarlos a sus valores estándar antes de invocar a un destinatario, salvo que, por un acuerdo, el destinatario espere los valores modificados.

Hay dos excepciones a las reglas sobre marcadores de control no volátiles:

  • En funciones donde el propósito documentado de la función determinada es modificar los marcadores de MxCsr no variables.

  • Cuando se ha demostrado que es correcto que la infracción de estas reglas resulta en un programa que se comporta como un programa donde no se infringen estas reglas (o es equivalente a él), por ejemplo, mediante análisis de todo el programa.

No se pueden hacer suposiciones respecto al estado de la parte variable de MXCSR en el límite de una función, excepto que se describa específicamente en la documentación de una función.

Vea también

Referencia

Convención de llamada