xengcc_intrin.h

来自「xen虚拟机源代码安装包」· C头文件 代码 · 共 60 行

H
60
字号
#ifndef _ASM_IA64_XENGCC_INTRIN_H#define _ASM_IA64_XENGCC_INTRIN_H/* * Flushrs instruction stream. */#define ia64_flushrs() asm volatile ("flushrs;;":::"memory")#define ia64_loadrs() asm volatile ("loadrs;;":::"memory")#define ia64_get_rsc()                          \({                                  \    unsigned long val;                     \    asm volatile ("mov %0=ar.rsc;;" : "=r"(val) :: "memory");  \    val;                               \})#define ia64_set_rsc(val)                       \    asm volatile ("mov ar.rsc=%0;;" :: "r"(val) : "memory")#define ia64_get_bspstore()     \({                                  \    unsigned long val;                     \    asm volatile ("mov %0=ar.bspstore;;" : "=r"(val) :: "memory");  \    val;                               \})#define ia64_set_bspstore(val)                       \    asm volatile ("mov ar.bspstore=%0;;" :: "r"(val) : "memory")#define ia64_get_rnat()     \({                                  \    unsigned long val;                     \    asm volatile ("mov %0=ar.rnat;" : "=r"(val) :: "memory");  \    val;                               \})#define ia64_set_rnat(val)                       \    asm volatile ("mov ar.rnat=%0;;" :: "r"(val) : "memory")#define ia64_ttag(addr)							\({										\	__u64 ia64_intri_res;							\	asm volatile ("ttag %0=%1" : "=r"(ia64_intri_res) : "r" (addr));	\	ia64_intri_res;								\})#define ia64_get_dcr()                          \({                                      \    __u64 result;                               \    asm volatile ("mov %0=cr.dcr" : "=r"(result) : );           \    result;                                 \})#define ia64_set_dcr(val)                           \({                                      \    asm volatile ("mov cr.dcr=%0" :: "r"(val) );            \})#endif /* _ASM_IA64_XENGCC_INTRIN_H */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?