REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3790 Replace Opcode with the corresponding instructions. The code changes have been verified with CompareBuild.py tool, which can be used to compare the results of two different EDK II builds to determine if they generate the same binaries. (tool link: https://github.com/mdkinney/edk2/tree/sandbox/CompareBuild) Signed-off-by: Jason Lou <yun.lou@intel.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn> Cc: Zhiguang Liu <zhiguang.liu@intel.com>
40 lines
1014 B
NASM
40 lines
1014 B
NASM
;------------------------------------------------------------------------------
|
|
;
|
|
; Copyright (c) 2006 - 2022, Intel Corporation. All rights reserved.<BR>
|
|
; SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
;
|
|
; Module Name:
|
|
;
|
|
; WriteDr5.Asm
|
|
;
|
|
; Abstract:
|
|
;
|
|
; AsmWriteDr5 function
|
|
;
|
|
; Notes:
|
|
;
|
|
;------------------------------------------------------------------------------
|
|
|
|
SECTION .text
|
|
|
|
;------------------------------------------------------------------------------
|
|
; UINTN
|
|
; EFIAPI
|
|
; AsmWriteDr5 (
|
|
; IN UINTN Value
|
|
; );
|
|
;------------------------------------------------------------------------------
|
|
global ASM_PFX(AsmWriteDr5)
|
|
ASM_PFX(AsmWriteDr5):
|
|
mov eax, [esp + 4]
|
|
;
|
|
; DR5 is alias to DR7 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.
|
|
;
|
|
mov dr5, eax
|
|
ret
|
|
|