Leaf function of ENCLU
EMODPE
Extends the access rights of a page of the running enclave, which the enclave may do by itself.
- Instruction
ENCLUwithEAX = 06H- Leaf CPUID
- SGX2
CPUID.(EAX=12H,ECX=0):EAX[1] - Encoding
NP 0F 01 D7- Extensions
- Data
- Intel XED v2026.08.23
Leaf functions of ENCLU
ENCLU performs the leaf function whose number is in EAX. Only applications (CPL 3) may run ENCLU. Intel's SGX SDK gives all ten numbers, Open Enclave the first eight. Intel's future-extensions reference (319433-062) adds EREPORT2 and EGETKEY256, for 256-bit keys, which the manual does not document yet.
| EAX | Leaf function | Summary | Requires |
|---|---|---|---|
00H | EREPORT | Creates a report of the running enclave that a target enclave on the same platform can verify, for local attestation. | SGX1 |
01H | EGETKEY | Returns a 128-bit key from the processor's key hierarchy, such as a sealing key, as a KEYREQUEST structure asks. | SGX1 |
02H | EENTER | Enters an enclave through one of its thread control structures (TCS), at the entry point that the TCS gives. | SGX1 |
03H | ERESUME | Re-enters an enclave that an exception or interrupt left, with the state saved in its SSA frame. | SGX1 |
04H | EEXIT | Leaves the running enclave and continues at the address in RBX, outside it. | SGX1 |
05H | EACCEPT | Lets a running enclave accept a change that system software made to one of its pages with EAUG, EMODT or EMODPR. | SGX2 |
06H | EMODPE | Extends the access rights of a page of the running enclave, which the enclave may do by itself. | SGX2 |
07H | EACCEPTCOPY | Initializes a page that EAUG added by copying another page of the enclave into it, and accepts it. | SGX2 |
08H | EVERIFYREPORT2 | Checks, inside an enclave, the MAC of a report that a TDX trust domain created with SEAMREPORT. | EVERIFYREPORT2 |
09H | EDECCSSA | Decrements the index of the current SSA frame (TCS.CSSA) of the enclave thread, from inside the enclave. | EDECCSSA |
CPUID and processors
EMODPE needs what ENCLU needs: the processor must report one of the alternatives of its ISA set, and the SGX2 bit, CPUID.(EAX=12H,ECX=0):EAX[1], as well.
| ISA set | CPUID | Processors |
|---|---|---|
SGX | SGX | Skylake, Comet Lake, Cannon Lake, Ice Lake (client), Tiger Lake, Skylake-SP, Cascade Lake, Cooper Lake, Ice Lake (server), Sapphire Rapids, Emerald Rapids, Granite Rapids, Diamond Rapids, Goldmont Plus |
Sources
- Intel XED v2026.08.23 (commit
0bcb6237345c): forms, encodings, ISA sets, CPUID bits and chip model. - Intel SGX SDK 2.25: common/inc/internal/inst.h (ENCLU and ENCLS leaf numbers, BSD license)
- Open Enclave SDK: include/openenclave/bits/sgx/sgxtypes.h (ENCLU leaf numbers, MIT license)
- Intel 64 and IA-32 Architectures Software Developer's Manual, Volume 3 (325384-093, September 2026): Volume 3D, page 41-109 (EMODPE)
- Intel Architecture Instruction Set Extensions and Future Features Programming Reference (319433-062, June 2026)
The tables are derived from Intel XED, Copyright Intel Corporation, licensed under the Apache License 2.0; x86-64.net converted and reformatted them. The text is our own.