\r
**/\r
\r
-\r
#include "BaseLibInternals.h"\r
\r
/**\r
VOID\r
)\r
{\r
- UINTN Eflags;\r
+ UINTN Eflags;\r
\r
__asm__ __volatile__ (\r
"pushfl \n\t"\r
"popl %0 "\r
: "=r" (Eflags)\r
- );\r
+ );\r
\r
return Eflags;\r
}\r
VOID\r
EFIAPI\r
InternalX86FxSave (\r
- OUT IA32_FX_BUFFER *Buffer\r
+ OUT IA32_FX_BUFFER *Buffer\r
)\r
{\r
__asm__ __volatile__ (\r
"fxsave %0"\r
:\r
: "m" (*Buffer) // %0\r
- );\r
+ );\r
}\r
\r
-\r
/**\r
Restores the current floating point/SSE/SSE2 context from a buffer.\r
\r
VOID\r
EFIAPI\r
InternalX86FxRestore (\r
- IN CONST IA32_FX_BUFFER *Buffer\r
+ IN CONST IA32_FX_BUFFER *Buffer\r
)\r
{\r
__asm__ __volatile__ (\r
"fxrstor %0"\r
:\r
: "m" (*Buffer) // %0\r
- );\r
+ );\r
}\r
\r
-\r
/**\r
Reads the current value of 64-bit MMX Register #0 (MM0).\r
\r
"pop %%eax \n\t"\r
"pop %%edx \n\t"\r
: "=A" (Data) // %0\r
- );\r
+ );\r
\r
return Data;\r
}\r
\r
-\r
/**\r
Reads the current value of 64-bit MMX Register #1 (MM1).\r
\r
"pop %%eax \n\t"\r
"pop %%edx \n\t"\r
: "=A" (Data) // %0\r
- );\r
+ );\r
\r
return Data;\r
}\r
\r
-\r
/**\r
Reads the current value of 64-bit MMX Register #2 (MM2).\r
\r
"pop %%eax \n\t"\r
"pop %%edx \n\t"\r
: "=A" (Data) // %0\r
- );\r
+ );\r
\r
return Data;\r
}\r
\r
-\r
/**\r
Reads the current value of 64-bit MMX Register #3 (MM3).\r
\r
"pop %%eax \n\t"\r
"pop %%edx \n\t"\r
: "=A" (Data) // %0\r
- );\r
+ );\r
\r
return Data;\r
}\r
\r
-\r
/**\r
Reads the current value of 64-bit MMX Register #4 (MM4).\r
\r
"pop %%eax \n\t"\r
"pop %%edx \n\t"\r
: "=A" (Data) // %0\r
- );\r
+ );\r
\r
return Data;\r
}\r
\r
-\r
/**\r
Reads the current value of 64-bit MMX Register #5 (MM5).\r
\r
"pop %%eax \n\t"\r
"pop %%edx \n\t"\r
: "=A" (Data) // %0\r
- );\r
+ );\r
\r
return Data;\r
}\r
\r
-\r
/**\r
Reads the current value of 64-bit MMX Register #6 (MM6).\r
\r
"pop %%eax \n\t"\r
"pop %%edx \n\t"\r
: "=A" (Data) // %0\r
- );\r
+ );\r
\r
return Data;\r
}\r
\r
-\r
/**\r
Reads the current value of 64-bit MMX Register #7 (MM7).\r
\r
"pop %%eax \n\t"\r
"pop %%edx \n\t"\r
: "=A" (Data) // %0\r
- );\r
+ );\r
\r
return Data;\r
}\r
\r
-\r
/**\r
Writes the current value of 64-bit MMX Register #0 (MM0).\r
\r
VOID\r
EFIAPI\r
AsmWriteMm0 (\r
- IN UINT64 Value\r
+ IN UINT64 Value\r
)\r
{\r
__asm__ __volatile__ (\r
"movq %0, %%mm0" // %0\r
:\r
: "m" (Value)\r
- );\r
+ );\r
}\r
\r
-\r
/**\r
Writes the current value of 64-bit MMX Register #1 (MM1).\r
\r
VOID\r
EFIAPI\r
AsmWriteMm1 (\r
- IN UINT64 Value\r
+ IN UINT64 Value\r
)\r
{\r
__asm__ __volatile__ (\r
"movq %0, %%mm1" // %0\r
:\r
: "m" (Value)\r
- );\r
+ );\r
}\r
\r
-\r
/**\r
Writes the current value of 64-bit MMX Register #2 (MM2).\r
\r
VOID\r
EFIAPI\r
AsmWriteMm2 (\r
- IN UINT64 Value\r
+ IN UINT64 Value\r
)\r
{\r
__asm__ __volatile__ (\r
"movq %0, %%mm2" // %0\r
:\r
: "m" (Value)\r
- );\r
+ );\r
}\r
\r
-\r
/**\r
Writes the current value of 64-bit MMX Register #3 (MM3).\r
\r
VOID\r
EFIAPI\r
AsmWriteMm3 (\r
- IN UINT64 Value\r
+ IN UINT64 Value\r
)\r
{\r
__asm__ __volatile__ (\r
"movq %0, %%mm3" // %0\r
:\r
: "m" (Value)\r
- );\r
+ );\r
}\r
\r
-\r
/**\r
Writes the current value of 64-bit MMX Register #4 (MM4).\r
\r
VOID\r
EFIAPI\r
AsmWriteMm4 (\r
- IN UINT64 Value\r
+ IN UINT64 Value\r
)\r
{\r
__asm__ __volatile__ (\r
"movq %0, %%mm4" // %0\r
:\r
: "m" (Value)\r
- );\r
+ );\r
}\r
\r
-\r
/**\r
Writes the current value of 64-bit MMX Register #5 (MM5).\r
\r
VOID\r
EFIAPI\r
AsmWriteMm5 (\r
- IN UINT64 Value\r
+ IN UINT64 Value\r
)\r
{\r
__asm__ __volatile__ (\r
"movq %0, %%mm5" // %0\r
:\r
: "m" (Value)\r
- );\r
+ );\r
}\r
\r
-\r
/**\r
Writes the current value of 64-bit MMX Register #6 (MM6).\r
\r
VOID\r
EFIAPI\r
AsmWriteMm6 (\r
- IN UINT64 Value\r
+ IN UINT64 Value\r
)\r
{\r
__asm__ __volatile__ (\r
"movq %0, %%mm6" // %0\r
:\r
: "m" (Value)\r
- );\r
+ );\r
}\r
\r
-\r
/**\r
Writes the current value of 64-bit MMX Register #7 (MM7).\r
\r
VOID\r
EFIAPI\r
AsmWriteMm7 (\r
- IN UINT64 Value\r
+ IN UINT64 Value\r
)\r
{\r
__asm__ __volatile__ (\r
"movq %0, %%mm7" // %0\r
:\r
: "m" (Value)\r
- );\r
+ );\r
}\r
\r
-\r
/**\r
Reads the current value of Time Stamp Counter (TSC).\r
\r
__asm__ __volatile__ (\r
"rdtsc"\r
: "=A" (Data)\r
- );\r
+ );\r
\r
return Data;\r
}\r