]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Library/BaseLib/X64/CpuId.S
1. Remove .extern from GCC assembly.
[mirror_edk2.git] / MdePkg / Library / BaseLib / X64 / CpuId.S
index 98d7faaa0601445296ed1fb129383b903082ef21..8612c5d2b01c4ef0e5451ae8b352f63809c4be2b 100644 (file)
@@ -1,60 +1,60 @@
-#------------------------------------------------------------------------------
-#
-# Copyright (c) 2006, Intel Corporation
-# All rights reserved. This program and the accompanying materials
-# are licensed and made available under the terms and conditions of the BSD License
-# which accompanies this distribution.  The full text of the license may be found at
-# http://opensource.org/licenses/bsd-license.php
-#
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-# Module Name:
-#
-#   CpuId.S
-#
-# Abstract:
-#
-#   AsmCpuid function
-#
-# Notes:
-#
-#------------------------------------------------------------------------------
-
-#------------------------------------------------------------------------------
-#  VOID
-#  EFIAPI
-#  AsmCpuid (
-#    IN   UINT32  RegisterInEax,
-#    OUT  UINT32  *RegisterOutEax  OPTIONAL,
-#    OUT  UINT32  *RegisterOutEbx  OPTIONAL,
-#    OUT  UINT32  *RegisterOutEcx  OPTIONAL,
-#    OUT  UINT32  *RegisterOutEdx  OPTIONAL
-#    )
-#------------------------------------------------------------------------------
-.global _AsmCpuid;
-_AsmCpuid:
-    push    %rbx
-    mov     %ecx, %eax
-    push    %rax                         # save Index on stack
-    push    %rdx
-    cpuid
-    test    %r9, %r9
-    jz      L1
-    mov     %ecx, (%r9)
-L1:
-    pop     %rcx
-    jrcxz   L2
-    mov     %eax, (%rcx)
-L2:
-    mov     %r8, %rcx
-    jrcxz   L3
-    mov     %ebx, (%rcx)
-L3:
-    mov     0x38(%rsp), %rcx
-    jrcxz   L4
-    mov     %edx, (%rcx)
-L4:
-    pop     %rax                         # restore Index to rax as return value
-    pop     %rbx
-    ret
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2006 - 2008, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   CpuId.S\r
+#\r
+# Abstract:\r
+#\r
+#   AsmCpuid function\r
+#\r
+# Notes:\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+#------------------------------------------------------------------------------\r
+#  VOID\r
+#  EFIAPI\r
+#  AsmCpuid (\r
+#    IN   UINT32  RegisterInEax,\r
+#    OUT  UINT32  *RegisterOutEax  OPTIONAL,\r
+#    OUT  UINT32  *RegisterOutEbx  OPTIONAL,\r
+#    OUT  UINT32  *RegisterOutEcx  OPTIONAL,\r
+#    OUT  UINT32  *RegisterOutEdx  OPTIONAL\r
+#    )\r
+#------------------------------------------------------------------------------\r
+ASM_GLOBAL ASM_PFX(AsmCpuid)\r
+ASM_PFX(AsmCpuid):\r
+    push    %rbx\r
+    mov     %ecx, %eax\r
+    push    %rax                         # save Index on stack\r
+    push    %rdx\r
+    cpuid\r
+    test    %r9, %r9\r
+    jz      L1\r
+    mov     %ecx, (%r9)\r
+L1:\r
+    pop     %rcx\r
+    jrcxz   L2\r
+    mov     %eax, (%rcx)\r
+L2:\r
+    mov     %r8, %rcx\r
+    jrcxz   L3\r
+    mov     %ebx, (%rcx)\r
+L3:\r
+    mov     0x38(%rsp), %rcx\r
+    jrcxz   L4\r
+    mov     %edx, (%rcx)\r
+L4:\r
+    pop     %rax                         # restore Index to rax as return value\r
+    pop     %rbx\r
+    ret\r