1:78
Volume 1, Part 1: Application Programming Model
only during the epilog phase and is initialized to one more than the number of epilog
stages. If the qualifying predicate is zero during the speculative stages of the prolog,
EC will be decremented during this part of the prolog, and the initialization value for EC
is increased accordingly.
4.5.2
Branch Prediction Hints
Information about branch behavior can be provided to the processor to improve branch
prediction. This information can be encoded in two ways: with branch hints as part of a
branch instruction (referred to as hints), and with separate Branch Predict instructions
(
brp
) where the entire instruction is hint information. Hints and
brp
instructions do not
affect the functional behavior of the program and may be ignored by the processor.
Branch instructions can provide three types of hints:
•
Whether prediction strategy:
This describes (for COND, CALL and RET type
branches) how the processor should predict the branch condition. (For the loop type
branches, prediction is based on LC and EC.) The suggested strategies that can be
hinted are shown in
•
Sequential prefetch:
This indicates how much code the processor should prefetch
at the branch target (shown in
). Please see the processor-specific
documentation for further information.
•
Predictor deallocation:
This provides re-use information to allow the hardware to
better manage branch prediction resources. Normally, prediction resources keep
track of the most-recently executed branches. However, sometimes the
most-recently executed branch is not useful to remember, either because it will not
be re-visited any time soon or because a hint instruction will re-supply the
information prior to re-visiting the branch. In such cases, this hint can be used to
free up the prediction resources.
Table 4-26.
Whether Prediction Hint on Branches
Completer
Strategy
Operation
spnt
Static Not-Taken
Ignore this branch, do not allocate prediction resources for this
branch.
sptk
Static Taken
Always predict taken, do not allocate prediction resources for
this branch.
dpnt
Dynamic Not-Taken
Use dynamic prediction hardware. If no dynamic history
information exists for this branch, predict not-taken.
dptk
Dynamic Taken
Use dynamic prediction hardware. If no dynamic history
information exists for this branch, predict taken.
Table 4-27.
Sequential Prefetch Hint on Branches
Completer
Sequential Prefetch
Hint
Operation
few
Prefetch few lines
When prefetching code at the branch target, stop prefetching
after a few (implementation-dependent number of) lines.
many
Prefetch many lines
When prefetching code at the branch target, prefetch more
lines (also an implementation-dependent number).
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 ...