
Volume 3: Instruction Reference
3:21
br
the branch condition is simply the value of the specified predicate register. These basic
branch types are:
•
cond:
If the qualifying predicate is 1, the branch is taken. Otherwise it is not taken.
•
call:
If the qualifying predicate is 1, the branch is taken and several other actions
occur:
• The current values of the Current Frame Marker (CFM), the EC application
register and the current privilege level are saved in the Previous Function State
application register.
• The caller’s stack frame is effectively saved and the callee is provided with a
frame containing only the caller’s output region.
• The rotation rename base registers in the CFM are reset to 0.
• A return link value is placed in BR
b
1
.
•
return:
If the qualifying predicate is 1, the branch is taken and the following
occurs:
• CFM, EC, and the current privilege level are restored from PFS. (The privilege
level is restored only if this does not increase privilege.)
• The caller’s stack frame is restored.
• If the return lowers the privilege, and PSR.lp is 1, then a Lower-Privilege
Transfer trap is taken.
•
ia:
The branch is taken unconditionally, if it is not intercepted by the OS. The effect
of the branch is to invoke the IA-32 instruction set (by setting PSR.is to 1) and
begin processing IA-32 instructions at the virtual linear target address contained in
BR
b
2
{31:0}. If the qualifying predicate is not PR 0, an Illegal Operation fault is
raised. If instruction set transitions are disabled (PSR.di is 1), then a Disabled
Instruction Set Transition fault is raised.
The IA-32 target effective address is calculated relative to the current code
segment, i.e. EIP{31:0} = BR
b
2
{31:0} - CSD.base. The IA-32 instruction set can
be entered at any privilege level, provided PSR.di is 0. If PSR.dfh is 1, a Disabled FP
Register fault is raised on the target IA-32 instruction. No register bank switch nor
change in privilege level occurs during the instruction set transition.
Software must ensure the code segment descriptor (CSD) and selector (CS) are
loaded before issuing the branch. If the target EIP value exceeds the code segment
limit or has a code segment privilege violation, an IA_32_Exception(GPFault) is
raised on the target IA-32 instruction. For entry into 16-bit IA-32 code, if BR
b
2
is
not within 64K-bytes of CSD.base a GPFault is raised on the target instruction.
EFLAG.rf is unmodified until the successful completion of the first IA-32 instruction.
PSR.da, PSR.id, PSR.ia, PSR.dd, and PSR.ed are cleared to zero after
br.ia
completes execution and before the first IA-32 instruction begins execution.
EFLAG.rf is not cleared until the target IA-32 instruction successfully completes.
Software must set PSR properly before branching to the IA-32 instruction set;
otherwise processor operation is undefined. See
for details.
Software must issue a
mf
instruction before the branch if memory ordering is
required between IA-32 processor consistent and Itanium unordered memory
references. The processor does not ensure Itanium-instruction-set-generated
writes into the instruction stream are seen by subsequent IA-32 instruction fetches.
br.ia
does not perform an instruction serialization operation. The processor does
ensure that prior writes (even in the same instruction group) to GRs and FRs are
observed by the first IA-32 instruction. Writes to ARs within the same instruction
Содержание 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 ...