From af1a266670d040d2f4083ff309d732d648afba2a Mon Sep 17 00:00:00 2001 From: Angelos Mouzakitis Date: Tue, 10 Oct 2023 14:33:42 +0000 Subject: Add submodule dependency files Change-Id: Iaf8d18082d3991dec7c0ebbea540f092188eb4ec --- roms/edk2/MdePkg/Library/BaseLib/Ia32/CpuIdEx.nasm | 61 ++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 roms/edk2/MdePkg/Library/BaseLib/Ia32/CpuIdEx.nasm (limited to 'roms/edk2/MdePkg/Library/BaseLib/Ia32/CpuIdEx.nasm') diff --git a/roms/edk2/MdePkg/Library/BaseLib/Ia32/CpuIdEx.nasm b/roms/edk2/MdePkg/Library/BaseLib/Ia32/CpuIdEx.nasm new file mode 100644 index 000000000..f381069c6 --- /dev/null +++ b/roms/edk2/MdePkg/Library/BaseLib/Ia32/CpuIdEx.nasm @@ -0,0 +1,61 @@ +;------------------------------------------------------------------------------ +; +; Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.
+; SPDX-License-Identifier: BSD-2-Clause-Patent +; +; Module Name: +; +; CpuIdEx.Asm +; +; Abstract: +; +; AsmCpuidEx function +; +; Notes: +; +;------------------------------------------------------------------------------ + + SECTION .text + +;------------------------------------------------------------------------------ +; 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 ebx + push ebp + mov ebp, esp + mov eax, [ebp + 12] + mov ecx, [ebp + 16] + cpuid + push ecx + mov ecx, [ebp + 20] + jecxz .0 + mov [ecx], eax +.0: + mov ecx, [ebp + 24] + jecxz .1 + mov [ecx], ebx +.1: + mov ecx, [ebp + 32] + jecxz .2 + mov [ecx], edx +.2: + mov ecx, [ebp + 28] + jecxz .3 + pop DWORD [ecx] +.3: + mov eax, [ebp + 12] + leave + pop ebx + ret + -- cgit 1.2.3-korg