20 lines
1.0 KiB
C
20 lines
1.0 KiB
C
#ifndef _KERNEL_AMD64_FX_H
|
|
#define _KERNEL_AMD64_FX_H
|
|
|
|
#define fx_save(buf) \
|
|
do { \
|
|
__asm__ volatile ("fxsave64 (%0)" ::"r"((buf)) : "memory"); \
|
|
} while (0)
|
|
|
|
#define fx_restore(buf) \
|
|
do { \
|
|
__asm__ volatile ("fxrstor64 (%0)" ::"r"((buf)) : "memory"); \
|
|
} while (0)
|
|
|
|
#define fx_init(buf) \
|
|
do { \
|
|
__asm__ volatile ("fninit; fxsave64 (%0)" ::"r"((buf)) : "memory"); \
|
|
} while (0)
|
|
|
|
#endif // _KERNEL_AMD64_FX_H
|