]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Library/BaseLib/X64/GccInlinePriv.c
MdePkg: Fix AsmReadMsr64() and AsmWriteMsr64() with GCC toolchain
[mirror_edk2.git] / MdePkg / Library / BaseLib / X64 / GccInlinePriv.c
index e4920f21165b57a3d45cadf51ae704efa09d081b..244bd62ee67fbd79c0e393186593f514f76c7d17 100644 (file)
@@ -80,7 +80,7 @@ AsmReadMsr64 (
   }\r
   FilterAfterMsrRead (Index, &Value);\r
 \r
-  return (((UINT64)HighData) << 32) | LowData;\r
+  return Value;\r
 }\r
 \r
 /**\r
@@ -111,11 +111,10 @@ AsmWriteMsr64 (
   UINT32 HighData;\r
   BOOLEAN Flag;\r
 \r
-  LowData  = (UINT32)(Value);\r
-  HighData = (UINT32)(Value >> 32);\r
-\r
   Flag = FilterBeforeMsrWrite (Index, &Value);\r
   if (Flag) {\r
+    LowData  = (UINT32)(Value);\r
+    HighData = (UINT32)(Value >> 32);\r
     __asm__ __volatile__ (\r
       "wrmsr"\r
       :\r