Volume 2, Part 2: Floating-point System Software
2:591
At the application level, a user floating-point exception handler could handle the
Itanium floating-point exception directly. This is the traditional operating system
approach of providing a signal handler with a pointer to a machine-dependent data
structure. It would be more convenient for the application developer if the operating
system were to first transform the results to make them IEEE-754 conforming and then
present the exception to the user in an abstracted manner. It is recommended that the
operating system include such a software layer to enable application developers that
want to handle floating-point exceptions in their application. The IEEE Floating-point
Exception Filter provides this convenience to the developer through three functions.
• The first function of the IEEE Filter is to map the Itanium architecture's result to the
IEEE-754 conforming result. This includes the wrapping of the exponent for
Overflow and Underflow exceptions. The Itanium architecture keeps the exponent
in the 17-bit format, which is not wrapped (i.e. scaled) with the appropriate value
for the destination precision.
• The second function of an IEEE Filter is to transform the interruption information to
a format that is easier to interpret and to invoke a user handler for the exception.
The user's handler may then provide a value to be substituted for the IEEE default
result, based on the operation, exception and inputs.
• The third function of the filter is to hide the complexities of the parallel instructions
from the user. If a floating-point fault occurs in the high half of a parallel
floating-point instruction and there is a user handler provided, the parallel
instruction is split into two scalar instructions. The result for the high half comes
from the user handler, while the low half is emulated by the IEEE Filter. The two
results are combined back into a parallel result and execution is continued. More
complicated cases can also occur with multiple faults and/or traps occurring in the
same instruction.
Note:
Usage of the IEEE Filter should not be compulsory
–
the user should be able to
choose to handle enabled floating-point exceptions directly. The IEEE filter just
hides the details of the instruction set and frees the user handler from having to
emulate instructions directly and potentially incorrectly.
8.1.2.1
Invalid Operation Exception (Fault)
The exception-enabled response of an Itanium floating-point arithmetic instruction to
an Invalid Operation exception is to leave the operands unchanged and to set the V bit
in the ISR.code field of the ISR register. The operating system kernel, reached via the
floating-point fault vector, will then invoke the user floating-point exception handler, if
one has been registered.
8.1.2.2
Divide by Zero Exception (Fault)
The exception-enabled response of an Itanium floating-point arithmetic instruction to a
Divide-by-Zero exception is to leave the operands unchanged and to set the Z bit in the
ISR.code field of the ISR register. The operating system kernel, reached via the
floating-point fault vector, will then invoke the user floating-point exception handler, if
one has been registered.
Содержание ITANIUM ARCHITECTURE - SOFTWARE DEVELOPERS VOLUME 3 REV 2.3
Страница 1: ......
Страница 11: ...x Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Страница 12: ...1 1 Intel Itanium Architecture Software Developer s Manual Rev 2 3 Part I Application Architecture Guide ...
Страница 13: ...1 2 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Страница 33: ...1 22 Volume 1 Part 1 Introduction to the Intel Itanium Architecture ...
Страница 57: ...1 46 Volume 1 Part 1 Execution Environment ...
Страница 147: ...1 136 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Страница 149: ...1 138 Volume 1 Part 2 About the Optimization Guide ...
Страница 191: ...1 180 Volume 1 Part 2 Predication Control Flow and Instruction Stream ...
Страница 230: ......
Страница 248: ...236 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Страница 249: ...2 1 Intel Itanium Architecture Software Developer s Manual Rev 2 3 Part I System Architecture Guide ...
Страница 250: ...2 2 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Страница 264: ...2 16 Volume 2 Part 1 Intel Itanium System Environment ...
Страница 380: ...2 132 Volume 2 Part 1 Interruptions ...
Страница 398: ...2 150 Volume 2 Part 1 Register Stack Engine ...
Страница 486: ...2 238 Volume 2 Part 1 IA 32 Interruption Vector Descriptions ...
Страница 749: ...2 501 Intel Itanium Architecture Software Developer s Manual Rev 2 3 Part II System Programmer s Guide ...
Страница 750: ...2 502 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Страница 754: ...2 506 Volume 2 Part 2 About the System Programmer s Guide ...
Страница 796: ...2 548 Volume 2 Part 2 Interruptions and Serialization ...
Страница 808: ...2 560 Volume 2 Part 2 Context Management ...
Страница 842: ...2 594 Volume 2 Part 2 Floating point System Software ...
Страница 850: ...2 602 Volume 2 Part 2 IA 32 Application Support ...
Страница 862: ...2 614 Volume 2 Part 2 External Interrupt Architecture ...
Страница 870: ...2 622 Volume 2 Part 2 Performance Monitoring Support ...
Страница 891: ......
Страница 941: ...3 42 Volume 3 Instruction Reference cmp illegal_operation_fault PR p1 0 PR p2 0 Interruptions Illegal Operation fault ...
Страница 1099: ...3 200 Volume 3 Instruction Reference padd Interruptions Illegal Operation fault ...
Страница 1191: ...3 292 Volume 3 Pseudo Code Functions Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Страница 1295: ...3 396 Volume 3 Resource and Dependency Semantics ...
Страница 1296: ......
Страница 1302: ...402 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Страница 1494: ...4 192 Volume 4 Base IA 32 Instruction Reference FWAIT Wait See entry for WAIT ...
Страница 1564: ...4 262 Volume 4 Base IA 32 Instruction Reference LES Load Full Pointer See entry for LDS LES LFS LGS LSS ...
Страница 1565: ...Volume 4 Base IA 32 Instruction Reference 4 263 LFS Load Full Pointer See entry for LDS LES LFS LGS LSS ...
Страница 1568: ...4 266 Volume 4 Base IA 32 Instruction Reference LGS Load Full Pointer See entry for LDS LES LFS LGS LSS ...
Страница 1583: ...Volume 4 Base IA 32 Instruction Reference 4 281 LSS Load Full Pointer See entry for LDS LES LFS LGS LSS ...
Страница 1647: ...Volume 4 Base IA 32 Instruction Reference 4 345 ROL ROR Rotate See entry for RCL RCR ROL ROR ...
Страница 1663: ...Volume 4 Base IA 32 Instruction Reference 4 361 SHL SHR Shift Instructions See entry for SAL SAR SHL SHR ...
Страница 1668: ...4 366 Volume 4 Base IA 32 Instruction Reference SIDT Store Interrupt Descriptor Table Register See entry for SGDT SIDT ...
Страница 1884: ...4 582 Volume 4 IA 32 SSE Instruction Reference ...
Страница 1885: ...Index Intel Itanium Architecture Software Developer s Manual Rev 2 3 Index ...
Страница 1886: ...Index Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Страница 1898: ...INDEX Index 12 Index for Volumes 1 2 3 and 4 ...