Intel ITANIUM ARCHITECTURE - SOFTWARE DEVELOPERS MANUAL VOLUME 1 REV 2.3 Manual page 952

Hide thumbs Also See for ITANIUM ARCHITECTURE - SOFTWARE DEVELOPERS MANUAL VOLUME 1 REV 2.3:
Table of Contents

Advertisement

epc — Enter Privileged Code
epc
Format:
This instruction increases the privilege level. The new privilege level is given by the TLB
Description:
entry for the page containing this instruction. This instruction can be used to implement
calls to higher-privileged routines without the overhead of an interruption.
Before increasing the privilege level, a check is performed. The PFS.ppl (previous
privilege level) is checked to ensure that it is not more privileged than the current
privilege level. If this check fails, the instruction takes an Illegal Operation fault.
If the check succeeds, then the privilege is increased as follows:
• If instruction address translation is enabled and the page containing the epc
instruction has execute-only page access rights and the privilege level assigned to
the page is higher than (numerically less than) the current privilege level, then the
current privilege level is set to the privilege level field in the translation for the page
containing the epc instruction. This instruction can promote but cannot demote,
and the new privilege comes from the TLB entry.
If instruction address translation is disabled, then the current privilege level is set
to 0 (most privileged).
Instructions after the epc in the same instruction group may be executed at the old
privilege level or the new, higher privilege level. Instructions in subsequent
instruction groups will be executed at the new, higher privilege level.
• If the page containing the epc instruction has any other access rights besides
execute-only, or if the privilege level assigned to the page is lower or equal to
(numerically greater than or equal to) the current privilege level, then no action is
taken (the current privilege level is unchanged).
Note that the ITLB is actually only read once, at instruction fetch. Information from the
access rights and privilege level fields from the translation is then used in executing this
instruction.
This instruction cannot be predicated.
Operation:
if (AR[PFS].ppl u< PSR.cpl)
illegal_operation_fault();
if (PSR.it)
PSR.cpl = tlb_enter_privileged_code();
else
PSR.cpl = 0;
Illegal Operation fault
Interruptions:
Volume 3: Instruction Reference
epc
B8
3:53

Advertisement

Table of Contents
loading

This manual is also suitable for:

Itanium architecture 2.3

Table of Contents