Volume 1, Part 1: IA-32 Application Execution Model in an Intel
®
Itanium
®
System Environment
1:133
Instruction set transitions do not automatically fence memory data references. To
ensure proper ordering software needs to take into account the following ordering
rules.
Transitions from Itanium instruction set to IA-32 instruction set
• All data dependencies are honored, IA-32 loads see the results of all prior Itanium
stores
• IA-32 stores (
release
) can not pass any prior Itanium load or store
• IA-32 loads (
acquire
) can pass prior Itanium unordered loads or any prior Itanium
store to a different address. Itanium architecture-based software can prevent IA-32
loads from passing prior Itanium loads and stores by issuing an
acquire
operation
(or
mf
) before the instruction set transition.
Transitions from IA-32 instruction set to Itanium instruction set
• All data dependencies are honored, Itanium loads see the results of all prior IA-32
stores
• Itanium stores or loads can not pass prior IA-32 loads (
acquire
)
• Itanium unordered stores or any Itanium load can pass prior IA-32 stores (
release
)
to a different address. Itanium architecture-based software can prevent Itanium
loads and stores from passing prior IA-32 stores by issuing a
release
operation (or
mf
) after the instruction set transition.
6.2.4
IA-32 Usage of Intel
®
Itanium
®
Registers
This section lists software considerations for the Itanium general and floating-point
registers, and the ALAT when interacting with IA-32 code.
6.2.4.1
Register Stack Engine
Software must ensure that all dirty registers in the register stack have been flushed to
the backing store using a
flushrs
instruction before starting IA-32 execution via either
the
br.ia
or
rfi
. Any dirty registers left in the current and prior register stack frames
are left in an undefined state. Software can not rely on the value of these registers
across an instruction set transition.
Once IA-32 instruction set execution is entered, the RSE is effectively disabled,
regardless of any RSE control register enabling conditions.
After exiting the IA-32 instruction set due to a
jmpe
instruction or interruption, all
stacked registers are marked as invalid and the number of clean registers is set to zero.
6.2.4.2
ALAT
IA-32 instruction set execution leaves the contents of the ALAT undefined. Software
cannot rely on ALAT state being preserved across an instruction set transition. On entry
to IA-32 code, existing entries in the ALAT are ignored. For details on the ALAT, refer to
Section 4.4.5.2, “Data Speculation and Instructions” on page 1:64
.
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 ...