]> git.proxmox.com Git - mirror_edk2.git/blob - MdePkg/Library/BaseLib/X64/Pvalidate.nasm
MdePkg/BaseLib: add support for PVALIDATE instruction
[mirror_edk2.git] / MdePkg / Library / BaseLib / X64 / Pvalidate.nasm
1 ;-----------------------------------------------------------------------------
2 ;
3 ; Copyright (c) 2021, AMD. All rights reserved.<BR>
4 ; SPDX-License-Identifier: BSD-2-Clause-Patent
5 ;
6 ;-----------------------------------------------------------------------------
7
8 %include "Nasm.inc"
9
10 SECTION .text
11
12 ;-----------------------------------------------------------------------------
13 ; UINT32
14 ; EFIAPI
15 ; AsmPvalidate (
16 ; IN UINT32 PageSize
17 ; IN UINT32 Validate,
18 ; IN UINT64 Address
19 ; )
20 ;-----------------------------------------------------------------------------
21 global ASM_PFX(AsmPvalidate)
22 ASM_PFX(AsmPvalidate):
23 mov rax, r8
24
25 PVALIDATE
26
27 ; Save the carry flag.
28 setc dl
29
30 ; The PVALIDATE instruction returns the status in rax register.
31 cmp rax, 0
32 jne PvalidateExit
33
34 ; Check the carry flag to determine if RMP entry was updated.
35 cmp dl, 0
36 je PvalidateExit
37
38 ; Return the PVALIDATE_RET_NO_RMPUPDATE.
39 mov rax, 255
40
41 PvalidateExit:
42 ret