]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Library/BaseTimerLibLocalApic/x86TimerLib.c
Make EDK Module Package pass Intel IPF compiler with /Ox switch.
[mirror_edk2.git] / MdePkg / Library / BaseTimerLibLocalApic / x86TimerLib.c
index 09b614119da174b1d272aa25bfc414935249eb13..235fe7be6d73950f95c03dce369510a2dbe7db90 100644 (file)
 **/\r
 \r
 //\r
-// The following 2 arrays are used in calculating the frequency of local APIC\r
+// The following array is used in calculating the frequency of local APIC\r
 // timer. Refer to IA-32 developers' manual for more details.\r
 //\r
-\r
-GLOBAL_REMOVE_IF_UNREFERENCED\r
-CONST UINT32                          mTimerLibLocalApicFrequencies[] = {\r
-  100000000,\r
-  133000000,\r
-  200000000,\r
-  166000000\r
-};\r
-\r
 GLOBAL_REMOVE_IF_UNREFERENCED\r
 CONST UINT8                           mTimerLibLocalApicDivisor[] = {\r
   0x02, 0x04, 0x08, 0x10,\r
@@ -73,7 +64,7 @@ InternalX86GetTimerFrequency (
   )\r
 {\r
   return\r
-    mTimerLibLocalApicFrequencies[AsmMsrBitFieldRead32 (44, 16, 18)] /\r
+    PcdGet32(PcdFSBClock) /\r
     mTimerLibLocalApicDivisor[MmioBitFieldRead32 (ApicBase + 0x3e0, 0, 3)];\r
 }\r
 \r
@@ -210,7 +201,7 @@ GetPerformanceCounter (
   VOID\r
   )\r
 {\r
-  return (UINT32)InternalX86GetTimerTick (InternalX86GetApicBase ());\r
+  return (UINT64)(UINT32)InternalX86GetTimerTick (InternalX86GetApicBase ());\r
 }\r
 \r
 /**\r
@@ -255,5 +246,5 @@ GetPerformanceCounterProperties (
     *EndValue = 0;\r
   }\r
 \r
-  return InternalX86GetTimerFrequency (ApicBase);\r
+  return (UINT64) InternalX86GetTimerFrequency (ApicBase);;\r
 }\r