BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=2198 Under SEV-ES, a CPUID instruction requires the current value of the XCR0 register. In order to retrieve that value, the XGETBV instruction needs to be executed. Provide the necessary support to execute the XGETBV instruction. Cc: Michael D Kinney <michael.d.kinney@intel.com> Cc: Liming Gao <liming.gao@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com> Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com> Regression-tested-by: Laszlo Ersek <lersek@redhat.com>
		
			
				
	
	
		
			35 lines
		
	
	
		
			768 B
		
	
	
	
		
			NASM
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			768 B
		
	
	
	
		
			NASM
		
	
	
	
	
	
| ;------------------------------------------------------------------------------
 | |
| ;
 | |
| ; Copyright (C) 2020, Advanced Micro Devices, Inc. All rights reserved.<BR>
 | |
| ; SPDX-License-Identifier: BSD-2-Clause-Patent
 | |
| ;
 | |
| ; Module Name:
 | |
| ;
 | |
| ;   XGetBv.Asm
 | |
| ;
 | |
| ; Abstract:
 | |
| ;
 | |
| ;   AsmXgetBv function
 | |
| ;
 | |
| ; Notes:
 | |
| ;
 | |
| ;------------------------------------------------------------------------------
 | |
| 
 | |
|     DEFAULT REL
 | |
|     SECTION .text
 | |
| 
 | |
| ;------------------------------------------------------------------------------
 | |
| ; UINT64
 | |
| ; EFIAPI
 | |
| ; AsmXGetBv (
 | |
| ;   IN UINT32  Index
 | |
| ;   );
 | |
| ;------------------------------------------------------------------------------
 | |
| global ASM_PFX(AsmXGetBv)
 | |
| ASM_PFX(AsmXGetBv):
 | |
|     xgetbv
 | |
|     shl     rdx, 32
 | |
|     or      rax, rdx
 | |
|     ret
 | |
| 
 |