background image

41-70 Vol. 3D

SGX INSTRUCTION REFERENCES

Concurrency Restrictions

Operation

Temp Variables in EACCEPTCOPY Operational Flow

IF (DS:RBX is not 64Byte Aligned)

THEN #GP(0); FI;

IF ( (DS:RCX is not 4KByte Aligned) or (DS:RDX is not 4KByte Aligned) )

THEN #GP(0); FI;

IF ((DS:RBX is not within CR_ELRANGE) or (DS:RCX is not within CR_ELRANGE) or (DS:RDX is not within CR_ELRANGE))

THEN #GP(0); FI;

IF (DS:RBX does not resolve within an EPC) 

THEN #PF(DS:RBX); FI;

IF (DS:RCX does not resolve within an EPC) 

THEN #PF(DS:RCX); FI;

IF (DS:RDX does not resolve within an EPC) 

THEN #PF(DS:RDX); FI;

IF ( (EPCM(DS:RBX &~FFFH).VALID = 0) or (EPCM(DS:RBX &~FFFH).R = 0) or (EPCM(DS:RBX &~FFFH).PENDING ≠ 0) or 

(EPCM(DS:RBX &~FFFH).MODIFIED ≠ 0) or (EPCM(DS:RBX &~FFFH).BLOCKED ≠ 0) or (EPCM(DS:RBX &~FFFH).PT ≠ PT_REG) or 
(EPCM(DS:RBX &~FFFH).ENCLAVESECS ≠ CR_ACTIVE_SECS) or
(EPCM(DS:RBX &~FFFH).ENCLAVEADDRESS ≠ DS:RBX) )
THEN #PF(DS:RBX); FI;

Table 41-50.  Concurrency Restrictions of EACCEPTCOPY with Intel® SGX Instructions - 1of 2

Operation

EEXIT

EADD

EBLOCK

ECRE

ATE

EDBGRD/

WR

EENTER/

ERESUME

EEXTEND

EGETKEY

EINIT

ELDB/ELDU

EPA

Param Targ VA

SECS Targ SECS Targ SECS SECS

Targ SECS TCS SSA SECS Targ SECS Param SECS SECS Targ VA

SECS VA

EACCE

PTCOP

Y

Targ
Src

U

Y

U

Y

SECIN

FO

U

Y

U

U

Table 41-51.  Concurrency Restrictions of EACCEPTCOPY with Intel® SGX Instructions - 2 of 2

Operation

EREMOVE

EREPORT

ETRA

CK

EWB

EAUG

EMODPE

EMODPR

EMODT

EACCEPT

EACCEPTCOPY

Param Targ SECS Param SECS SECS

SRC VA

SECS Targ SECS Targ SECI

NFO

Targ SECS Targ SECS Targ SECI

NFO

SECS Targ SRC SECI

NFO

EACCE

PTCOP

Y

Targ

N

N

N

N

Src

Y

Y

Y

Y

U

Y

Y

SECIN

FO

U

Y

Y

Y

Y

Y

Y

Name

Type

Size (bits)

Description

SCRATCH_SECINFO

SECINFO

512

Scratch storage for holding the contents of DS:RBX.