diff --git a/include/intrin.hpp b/include/intrin.hpp index 6a9b9412..b4ce875a 100644 --- a/include/intrin.hpp +++ b/include/intrin.hpp @@ -19,28 +19,36 @@ namespace FXSR { void _fxsave(void *mem_addr) { +#ifdef a64 __builtin_ia32_fxsave(mem_addr); +#endif } void _fxrstor(void *mem_addr) { +#ifdef a64 __builtin_ia32_fxrstor(mem_addr); +#endif } void _fxsave64(void *mem_addr) { +#ifdef a64 asmv("fxsaveq (%0)" : : "r"(mem_addr) : "memory"); +#endif } void _fxrstor64(void *mem_addr) { +#ifdef a64 asmv("fxrstorq (%0)" : : "r"(mem_addr) : "memory"); +#endif } }