
Volume 2, Part 1: Processor Abstraction Layer
2:359
11.10.2.1.3 Making PAL Procedure Calls in Physical or Virtual Mode
PAL procedure calls which are made in physical mode must obey the calling conventions
described in this chapter, but there are no additional restrictions beyond those noted
above. PAL procedure calls made in virtual mode must have the region occupied by
PAL_PROC virtually mapped with an ITR. It needs to map this same area with either a
DTR or DTC using the same translation as the ITR. In addition, it must also provide a
DTR or DTC mapping for any memory buffer pointers passed as arguments to a
procedure. It is the responsibility of the caller to provide these mappings.
If the caller chooses to map the PAL_PROC area or any memory pointers with a DTC it
must call the procedure with PSR.ic = 1 to handle any TLB faults that could occur. The
PAL_PROC code needs to be mapped with an ITR. Unpredictable results may occur if it
is mapped with an ITC register.
11.10.2.1.4 Dependence on the PAL Memory Buffer
The PAL_MEMORY_BUFFER procedure must be called to establish a PAL memory buffer
before calling certain PAL procedures that are dependent on the buffer.
11.10.2.2 Processor State
The PAL procedures are only available to the code running at privilege level 0. They
must run in physical mode (unless specified as callable in virtual mode). PAL
procedures are not interruptible by external interrupt or NMI, since PSR.i must be 0
when the PAL procedure is called. PAL procedures are not interruptible by PMI events, if
PSR.ic is 0. If PSR.ic is 1, PAL procedures can be interrupted by PMI events. PAL
procedures can be interrupted by machine checks and initialization events.
Generally PAL procedures will not enable interruptions not already enabled by the caller.
Any PAL call that might cause interruptions (besides data TLB faults, see Section
11.10.2.1.3, “Making PAL Procedure Calls in Physical or Virtual Mode”), must install an
IVA handler to handle them. PAL_TEST_PROC may generate any interruptions it needs
to test the processor.
defines the requirements for the PSR at entry to and at exit from a PAL
procedure call. The operating system must follow the state requirements for PSR shown
below. PAL procedure calls made by SAL may impose additional requirements.
PAL_TEST_PROC may change PSR bits shown as unchanged in order to test the
processor. These bits will be preserved in this case. PSR bits are described in increasing
bit number order. Any PSR bit numbers not specified are reserved and unchanged.
Table 11-56. State Requirements for PSR
PSR Bit
Description
Entry
Exit
Class
be
big-endian memory access enable
0
0
preserved
up
user performance monitor enable
C
C
unchanged
ac
alignment check
C
C
preserved
mfl
floating-point registers f2-f31 written
C
C
preserved
mfh
floating-point registers f32-f127 written
C
C
preserved
ic
interruption state collection enable
0
0
unchanged
1
1
preserved
i
interrupt enable
0
0
unchanged
Содержание 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 ...