
Volume 1, Part 1: Execution Environment
1:43
br.ia
work like other instructions for the purposes of register dependency; i.e., if their
qualifying predicate is 0, they are not considered readers or writers of other resources.
Branches
br.cloop
,
br.cexit
,
br.ctop
,
br.wexit
, and
br.wtop
are exceptional in
that they are always readers or writers of their resources, regardless of the value of
their qualifying predicate. An indirect
brp
is considered a reader of the specified BR.
The
ld8.fill
and
st8.spill
instructions implicitly access the User NaT Collection
application register (UNAT). For these instructions the restriction on dynamic RAW
register dependencies with respect to UNAT applies at the bit level. These instructions
may appear in the same instruction group provided they do not access the same bit of
UNAT. RAW UNAT dependencies between
ld8.fill
or
st8.spill
instructions and mov
ar= or mov =ar instructions accessing UNAT must not occur within the same instruction
group.
For the purposes of resource dependencies, CFM is treated as a single resource.
3.4.2
WAW Dependency Special Cases
There are three special cases in which WAW register dependencies within an instruction
group are permitted. The special cases are compare-type instructions, floating-point
instructions, and the
st8.spill
instruction.
The set of compare-type instructions includes:
cmp
,
cmp4
,
tbit
,
tnat
,
tf
,
fcmp
,
frsqrta
,
frcpa
, and
fclass
. Compare-type instructions in the same instruction group
may target the same predicate register provided:
• The compare-type instructions are either all AND-type compares or all OR-type
compares (AND-type compares correspond to “.and” and “.andcm” completers;
OR-type compares correspond to “.or” and “.orcm” completers), or
• The compare-type instructions all target PR0. All WAW dependencies for PR0 are
allowed; the compares can be of any types and can be of differing types.
All other WAW dependencies within an instruction group are disallowed, including WAW
register dependencies with move to PR instructions that access the same predicate
registers as another writer.
Note:
The move to PR instructions only writes those PRs indicated by its mask, but
the move from PR instructions always reads all the predicate registers.
Floating-point instructions implicitly write the Floating-point Status Register (FPSR) and
the Processor Status Register (PSR). Multiple floating-point instructions may appear in
the same instruction group since the restriction on WAW register dependencies with
respect to the FPSR and PSR do not apply. The state of FPSR and PSR after executing
the instruction group will be the logical OR of all writes.
The
st8.spill
instruction implicitly writes the UNAT register. For this instruction the
restriction on WAW register dependencies with respect to UNAT applies at the bit level.
Multiple
st8.spill
instructions may appear in the same instruction group provided
they do not write the same bit of UNAT. WAW register dependencies between
st8.spill
instructions and
mov ar=
instructions targeting UNAT must not occur within
the same instruction group.
Содержание 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 ...