COP1: Difference between revisions
Jump to navigation
Jump to search
Content added Content deleted
Line 182: | Line 182: | ||
* Perform the operation |
* Perform the operation |
||
* If the operation underflowed, the following happens: |
* If the operation underflowed, the following happens: |
||
** If "Flush Denorm To Zero" is 1 AND "Enable: Underflow" is 0 AND "Enable: Inexact" is 0, the result is flushed and Underflow and Inexact are signaled. In most cases this means that it is set to 0 or "negative 0". (Two exception: If the rounding mode is "Ceil" and the result is positive, it will be set to the smallest positive value instead; similarly, "Floor" will set a negative result to the negative value that is closest to 0). |
|||
** Otherwise, fire Unimplemented Operations |
|||
* If the operation is invalid (for example: Infinity-Infinity, 0.0 / 0.0 or SQRT(-2)), set result to sNAN (specifically 0x7FBFFFFF (for floats) or 0x7FF7FFFFFFFFFFFF (for doubles)) and signal Invalid Operation is signaled. |
* If the operation is invalid (for example: Infinity-Infinity, 0.0 / 0.0 or SQRT(-2)), set result to sNAN (specifically 0x7FBFFFFF (for floats) or 0x7FF7FFFFFFFFFFFF (for doubles)) and signal Invalid Operation is signaled. |
||
* If the operation was a division by zero, signal division by zero |
* If the operation was a division by zero, signal division by zero |