]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Library/BaseLib/X64/CpuIdEx.S
MdePkg: Clean up source files
[mirror_edk2.git] / MdePkg / Library / BaseLib / X64 / CpuIdEx.S
index 62d698a58444f4c29efec11fbd2fee0fe02a4ca5..0bc2540011844167bd07f5e3d2a18b6ace05ce7c 100644 (file)
@@ -1,62 +1,62 @@
-#------------------------------------------------------------------------------
-#
-# Copyright (c) 2006 - 2008, 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:
-#
-#   CpuIdEx.S
-#
-# Abstract:
-#
-#   AsmCpuidEx function
-#
-# Notes:
-#
-#------------------------------------------------------------------------------
-
-#------------------------------------------------------------------------------
-#  UINT32
-#  EFIAPI
-#  AsmCpuidEx (
-#    IN   UINT32  RegisterInEax,
-#    IN   UINT32  RegisterInEcx,
-#    OUT  UINT32  *RegisterOutEax  OPTIONAL,
-#    OUT  UINT32  *RegisterOutEbx  OPTIONAL,
-#    OUT  UINT32  *RegisterOutEcx  OPTIONAL,
-#    OUT  UINT32  *RegisterOutEdx  OPTIONAL
-#    )
-#------------------------------------------------------------------------------
-.global ASM_PFX(AsmCpuidEx)
-ASM_PFX(AsmCpuidEx):
-    push    %rbx
-    movl    %ecx,%eax
-    movl    %edx,%ecx
-    push    %rax
-    cpuid
-    mov     0x38(%rsp), %r10
-    test    %r10, %r10
-    jz      L1
-    mov     %ecx,(%r10)
-L1: 
-    mov     %r8, %rcx
-    jrcxz   L2
-    movl    %eax,(%rcx)
-L2: 
-    mov     %r9, %rcx
-    jrcxz   L3
-    mov     %ebx, (%rcx)
-L3: 
-    mov     0x40(%rsp), %rcx
-    jrcxz   L4
-    mov     %edx, (%rcx)
-L4: 
-    pop     %rax
-    pop     %rbx
-    ret
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\r
+# 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
+#   CpuIdEx.S\r
+#\r
+# Abstract:\r
+#\r
+#   AsmCpuidEx function\r
+#\r
+# Notes:\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+#------------------------------------------------------------------------------\r
+#  UINT32\r
+#  EFIAPI\r
+#  AsmCpuidEx (\r
+#    IN   UINT32  RegisterInEax,\r
+#    IN   UINT32  RegisterInEcx,\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(AsmCpuidEx)\r
+ASM_PFX(AsmCpuidEx):\r
+    push    %rbx\r
+    movl    %ecx,%eax\r
+    movl    %edx,%ecx\r
+    push    %rax                  # save Index on stack\r
+    cpuid\r
+    mov     0x38(%rsp), %r10\r
+    test    %r10, %r10\r
+    jz      L1\r
+    mov     %ecx,(%r10)\r
+L1:\r
+    mov     %r8, %rcx\r
+    jrcxz   L2\r
+    movl    %eax,(%rcx)\r
+L2:\r
+    mov     %r9, %rcx\r
+    jrcxz   L3\r
+    mov     %ebx, (%rcx)\r
+L3:\r
+    mov     0x40(%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