What does NTSTATUS 0xC000008D (STATUS_FLOAT_DENORMAL_OPERAND) mean?

 
Previous Next
STATUS_ARRAY_BOUNDS_EXCEEDED STATUS_FLOAT_DIVIDE_BY_ZERO

STATUS_FLOAT_DENORMAL_OPERAND

A denormal operand triggered the floating-point exception policy

A denormal, or subnormal, value is a very small nonzero floating-point number below the normal exponent range. x87 and SIMD environments expose controls for denormal handling, and Microsoft runtimes normally mask floating-point exceptions. This status therefore often appears only after code deliberately changes the control word or MXCSR.

Capture both the operands and the active environment. DAZ and FTZ modes can convert denormal inputs or results to zero, while strict IEEE-oriented code may preserve them. A library that changes floating-point controls without restoring them can make an unrelated later operation trap, so compare the environment at thread start, library entry, and the faulting instruction.

What to inspect

  • Record x87 control/status words and MXCSR, including exception masks and DAZ/FTZ.
  • Identify the denormal operand and the instruction consuming it.
  • Check libraries that modify floating-point state on the same thread.
  • Choose preserve-versus-flush behavior explicitly rather than masking the symptom.

References


Looking for a different code? Search another status or error code.