Operating System Related Intrinsics

Intrinsic Description

void * __ptr64 _rdteb(void)

Gets TEB address. The TEB address is kept in r13 and maps to the move r=tp instruction.

unsigned __int64 __getReg(int whichReg)

Gets the value from a hardware register based on the index passed in. Produces a corresponding mov = r instruction. Provides access to the following registers:

ar.lc__-ar.ec__-____ar.pfs

ar.unat.-__ar.bsp__-____ar.bspstore

ar.ccv

-ar40 (fpsr) (preferable to use getfpsr/setfpsr)

-ar44 (itc)__-ar21 (fcr)__-ar24 (eflag)
 

-ar25 (csd)__-ar26 (ssd)__-ar27 (cflg)

-ar28 (fsr)__-ar29 (fir)__-ar30 (fdr)

void __setReg(int whichReg, unsigned __int64 value)

Sets the value for a hardware register based on the index passed in. Produces a corresponding mov = r instruction. See __getReg()for supported registers.

void __isrlz(void)

Executes the serialize instruction. Maps to the srlz.i instruction.

void __dsrlz(void)

Serializes the data. Maps to the srlz.d instruction.

void __fwb(void)

Flushes the write buffers. Maps to the fwb instruction.

void __mf(void)

Executes a memory fence instruction. Maps to the mf instruction.

void __mfa(void)

Executes a memory fence, acceptance form instruction. Maps to the mf.a instruction.

void __synci(void)

Enables memory synchronization. Maps to the sync.i instruction.

__int64 __thash(_int64)

Generates a translation hash entry address. Maps to the thash r = r instruction.

__int64 __ttag(__int64)

Generates a translation hash entry tag. Maps to the ttag r=r instruction.

void __ptcl(__int64 va, __int64 pagesz)

Purges the local translation cache. Maps to the ptc.l r, r instruction.

void __ptcg(__int64 va, __int64 pagesz)

Purges the global translation cache. Maps to the ptc.g r, r instruction.

void __ptcga(__int64 va, __int64 pagesz)

Purges the global translation cache and ALAT. Maps to the ptc.ga r, r instruction.

void __ptri(__int64 va, __int64 pagesz)

Purges the translation register. Maps to the ptr.i r, r instruction.

void __ptrd(__int64 va, __int64 pagesz)

Purges the translation register. Maps to the ptr.d r r instruction.

void __invalat (void)

Invalidates ALAT. Maps to the invala instruction.

void __break(int)

Generates a break instruction with an immediate.

void __fc(__int64)

Flushes a cache line associated with the address given by the argument. Maps to the fc r instruction.

void __sum (int mask)

Sets the user mask bits of PSR. Maps to the sum imm24 instruction.

void __rum (int mask)

Resets the user mask.

void __ssm (int mask)

Sets the system mask.

void __rsm (int mask)

Resets the user mask bits of PSR. Maps to the rsm imm24 instruction.

__int64 _ReturnAddress(void)

Get the caller's address.