diff options
Diffstat (limited to 'src/VBox/Devices/EFI/Firmware/MdePkg/Library/BaseLib/Ia32/WriteDr4.nasm')
-rw-r--r-- | src/VBox/Devices/EFI/Firmware/MdePkg/Library/BaseLib/Ia32/WriteDr4.nasm | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/VBox/Devices/EFI/Firmware/MdePkg/Library/BaseLib/Ia32/WriteDr4.nasm b/src/VBox/Devices/EFI/Firmware/MdePkg/Library/BaseLib/Ia32/WriteDr4.nasm new file mode 100644 index 00000000..590effba --- /dev/null +++ b/src/VBox/Devices/EFI/Firmware/MdePkg/Library/BaseLib/Ia32/WriteDr4.nasm @@ -0,0 +1,39 @@ +;------------------------------------------------------------------------------ +; +; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR> +; SPDX-License-Identifier: BSD-2-Clause-Patent +; +; Module Name: +; +; WriteDr4.Asm +; +; Abstract: +; +; AsmWriteDr4 function +; +; Notes: +; +;------------------------------------------------------------------------------ + + SECTION .text + +;------------------------------------------------------------------------------ +; UINTN +; EFIAPI +; AsmWriteDr4 ( +; IN UINTN Value +; ); +;------------------------------------------------------------------------------ +global ASM_PFX(AsmWriteDr4) +ASM_PFX(AsmWriteDr4): + mov eax, [esp + 4] + ; + ; DR4 is alias to DR6 only if DE (in CR4) is cleared. Otherwise, writing to + ; this register will cause a #UD exception. + ; + ; MS assembler doesn't support this instruction since no one would use it + ; under normal circustances. Here opcode is used. + ; + DB 0xf, 0x23, 0xe0 + ret + |