1:132
Volume 1, Part 1: IA-32 Application Execution Model in an Intel
®
Itanium
®
System Environment
(last byte of a multiple byte operand or instruction) is truncated (wrapped) at the
4G-byte virtual boundary
•
IA-32 64-bit Address Generation:
The resultant 32-bit virtual address is
converted into a 64-bit virtual address by zero extending to 64-bits, this places all
IA-32 instruction set memory references within the first 4G-bytes of the 64-bit
virtual address space within virtual region 0.
If IA-32 code is utilizing a flat segmented model (segment bases are set to zero) then
IA-32 and Itanium architecture-based code can freely exchange pointers after a pointer
has been zero extended to 64-bits. For segmented IA-32 code, effective address
pointers must be first transformed into a virtual address before they are shared with
Itanium architecture-based code.
6.2.3.3
Self Modifying Code
While operating in the IA-32 instruction set, self modifying code and instruction cache
coherency (coherency with respect to the local processor’s data cache) is supported for
all IA-32 programs. Self modifying code detection is directly supported at the same
level of compatibility as the Pentium processor
.
Software must insert an IA-32 branch
instruction between the store operation and the instruction modified for the updated
instruction bytes to be recognized.
It is undefined whether the processor will detect a IA-32 self modifying code event for
the following conditions; 1) PSR.dt or PSR.it is 0, or 2) there are virtual aliases to
different physical addresses between the instruction and data TLBs. To ensure self
modifying code works correctly for IA-32 applications, the operating system must
ensure that there are no virtual aliases to different physical addresses between the
instruction and data TLBs.
When switching from the Itanium instruction set to the IA-32 instruction set, and while
executing Itanium instructions, self modifying code and instruction cache coherency are
not directly supported by the processor hardware. Specifically, if a modification is made
to IA-32 instructions by Itanium instructions, Itanium architecture-based code must
explicitly synchronize the instruction caches with the code sequence defined in
“Memory Consistency” on page 1:72
. Otherwise the modification may or may not be
observed by subsequent IA-32 instructions.
When switching from the IA-32 to the Itanium instruction sets, modification of the local
instruction cache contents by IA-32 instructions is detected by the processor hardware.
The processor ensures that the instruction cache is made coherent with respect to the
modification and all subsequent Itanium instruction fetches see the modification.
6.2.3.4
Memory Ordering Interactions
IA-32 instructions are mapped into the Itanium memory ordering model as follows:
• All IA-32 stores have
release
semantics
• All IA-32 loads have
acquire
semantics
• All IA-32 read-modify-write or lock instructions have
release
and
acquire
semantics (fully fenced).
Содержание 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 ...