
Volume 1, Part 1: Application Programming Model
1:83
Instructions are provided to transfer between the branch registers and the general
registers. The move to branch register instruction can also optionally include branch
hints. See
“Branch Prediction Hints” on page 1:78
Instructions are defined to transfer between the predicate register file and a general
register. These instructions operate in a “broadside” manner whereby multiple predicate
registers are transferred in parallel (predicate register N is transferred to and from bit N
of a general register). The move to predicate instruction (
mov pr=
) transfers a general
register to multiple predicate registers according to a mask specified by an immediate.
The mask contains one bit for each of the static predicate registers (PR 1 through PR 15
– PR 0 is hardwired to 1) and one bit for all of the rotating predicates (PR 16 through
PR63). A predicate register is written from the corresponding bit in a general register if
the corresponding mask bit is set. If the mask bit is clear then the predicate register is
not modified. The rotating predicates are transferred as if CFM.rrb.pr were zero. The
actual value in CFM.rrb.pr is ignored and remains unchanged. The move from predicate
instruction (
mov =pr
) transfers the entire predicate register file into a general register
target.
In addition, instructions are defined to move values between the general register file
and the user mask (
mov psr.um=
and
mov =psr.um
). The
sum
and
rum
instructions set
and reset the user mask. The user mask is the non-privileged subset of the Process
Status Register (PSR).
The
mov =pmd[]
instruction is defined to move from a performance monitor data (PMD)
register to a general register. If the operating system has not enabled reading of
performance monitor data registers in user level then all zeroes are returned. The
mov
=cpuid[]
instruction is defined to move from a processor identification register to a
general register.
The
mov =ip
instruction is provided for copying the current value of the instruction
pointer (IP) into a general register.
4.8
Character and Bit Strings
A small set of special instructions accelerate operations on character and bit-field data.
4.8.1
Character Strings
The compute zero index instructions (
czx.l
,
czx.r
) treat the general register source as
either eight 1-byte or four 2-byte elements and write the general register target with
the index of the first zero element found. If there are no zero elements in the source,
the target is written with a constant one higher than the largest possible index (8 for
the 1-byte form, 4 for the 2-byte form). The
czx.l
instruction scans the source from
left to right with the left-most element having an index of zero. The
czx.r
instruction
scans from right to left with the right-most element having an index of zero.
summarizes the compute zero index instructions.
Содержание 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 ...