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.
Summary of Contents for ITANIUM ARCHITECTURE - SOFTWARE DEVELOPERS VOLUME 3 REV 2.3
Page 1: ......
Page 11: ...x Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Page 13: ...1 2 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Page 33: ...1 22 Volume 1 Part 1 Introduction to the Intel Itanium Architecture ...
Page 57: ...1 46 Volume 1 Part 1 Execution Environment ...
Page 147: ...1 136 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Page 149: ...1 138 Volume 1 Part 2 About the Optimization Guide ...
Page 191: ...1 180 Volume 1 Part 2 Predication Control Flow and Instruction Stream ...
Page 230: ......
Page 248: ...236 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Page 250: ...2 2 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Page 264: ...2 16 Volume 2 Part 1 Intel Itanium System Environment ...
Page 380: ...2 132 Volume 2 Part 1 Interruptions ...
Page 398: ...2 150 Volume 2 Part 1 Register Stack Engine ...
Page 486: ...2 238 Volume 2 Part 1 IA 32 Interruption Vector Descriptions ...
Page 750: ...2 502 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Page 754: ...2 506 Volume 2 Part 2 About the System Programmer s Guide ...
Page 796: ...2 548 Volume 2 Part 2 Interruptions and Serialization ...
Page 808: ...2 560 Volume 2 Part 2 Context Management ...
Page 842: ...2 594 Volume 2 Part 2 Floating point System Software ...
Page 850: ...2 602 Volume 2 Part 2 IA 32 Application Support ...
Page 862: ...2 614 Volume 2 Part 2 External Interrupt Architecture ...
Page 870: ...2 622 Volume 2 Part 2 Performance Monitoring Support ...
Page 891: ......
Page 1099: ...3 200 Volume 3 Instruction Reference padd Interruptions Illegal Operation fault ...
Page 1295: ...3 396 Volume 3 Resource and Dependency Semantics ...
Page 1296: ......
Page 1302: ...402 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Page 1494: ...4 192 Volume 4 Base IA 32 Instruction Reference FWAIT Wait See entry for WAIT ...
Page 1647: ...Volume 4 Base IA 32 Instruction Reference 4 345 ROL ROR Rotate See entry for RCL RCR ROL ROR ...
Page 1884: ...4 582 Volume 4 IA 32 SSE Instruction Reference ...
Page 1885: ...Index Intel Itanium Architecture Software Developer s Manual Rev 2 3 Index ...
Page 1886: ...Index Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Page 1898: ...INDEX Index 12 Index for Volumes 1 2 3 and 4 ...