![Intel ITANIUM ARCHITECTURE - SOFTWARE DEVELOPERS VOLUME 3 REV 2.3 Скачать руководство пользователя страница 606](http://html.mh-extra.com/html/intel/itanium-architecture-software-developers-volume-3-rev-2-3/itanium-architecture-software-developers-volume-3-rev-2-3_manual_2073404606.webp)
2:358
Volume 2, Part 1: Processor Abstraction Layer
11.10.2 PAL Calling Conventions
The following general rules govern the definition of the PAL procedure calling
conventions.
11.10.2.1 Overview of Calling Conventions
There are two calling conventions supported for PAL procedures: static registers only
and stacked registers. Any single PAL procedure will support only one of the two calling
conventions. In addition, PAL procedure may be called in either physical mode
(PSR.it=0, PSR.rt=0, and PSR.dt=0) or virtual mode (PSR.it=1, PSR.rt=1, and
PSR.dt=1).
11.10.2.1.1 Static Registers Only
This calling convention is intended for boot time usage before main memory may be
available or error recovery situations, where memory or the RSE may not be reliable.
All parameters are passed in the lower 32 static general registers. The stacked registers
will not be used within the procedure. No memory arguments may be passed as
parameters to or from PAL procedures written using the static register calling
convention. To avoid RSE activity, static register PAL procedures must be called with the
br.cond instruction, not the br.call instruction. Please refer to
for a detailed
list of the general register usage for static registers only calling convention.
11.10.2.1.2 Stacked Registers
This calling convention is intended for usage after memory has been made available,
and for procedures which require memory pointers as arguments. The stacked registers
are also used for parameter passing and local variable allocation. This convention
conforms to the
Itanium Software Conventions and Runtime Architecture Guide
. Thus,
procedures using the stacked register calling convention can be written in the C
language. There are two exceptions to the runtime conventions.
1. The first argument to the procedure must also be copied to GR28 prior to making
the procedure call. This allows procedures written using both static and stacked
register calling conventions to call a single PAL_PROC entrypoint. This should be
accomplished by having the stacked register procedures call a stub module which
copies GR32 to GR28, then call PAL_PROC. It is the responsibility of the caller to
provide this stub. Please refer to
for a detailed list of the general
register usage for the stacked register calling convention.
2. Floating point registers 32-127 are preserved (rather than scratch, as in the
normal Itanium Software Conventions), except on the PAL_TEST_PROC
procedure. This allows OSs to avoid having to save and restore these registers
around a stacked-convention PAL procedure call.
PAL_VP_SAVE
271 Opt.
Stacked Virt.
Dep.
Save virtual processor state on the logical
processor.
PAL_VP_TERMINATE
272 Opt.
Stacked Virt.
Dep.
Terminates operation for the specified virtual
processor.
Table 11-55.PAL Virtualization Support Procedures (Continued)
Procedure
Idx
Class
Conv.
Mode
Buffer
Description
Содержание 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 ...