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>
41 lines
993 B
NASM
41 lines
993 B
NASM
;------------------------------------------------------------------------------
|
|
;
|
|
; Copyright (c) 2006 - 2022, Intel Corporation. All rights reserved.<BR>
|
|
; SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
;
|
|
; Module Name:
|
|
;
|
|
; SetMem64.nasm
|
|
;
|
|
; Abstract:
|
|
;
|
|
; SetMem64 function
|
|
;
|
|
; Notes:
|
|
;
|
|
;------------------------------------------------------------------------------
|
|
|
|
DEFAULT REL
|
|
SECTION .text
|
|
|
|
;------------------------------------------------------------------------------
|
|
; VOID *
|
|
; InternalMemSetMem64 (
|
|
; IN VOID *Buffer,
|
|
; IN UINTN Count,
|
|
; IN UINT64 Value
|
|
; )
|
|
;------------------------------------------------------------------------------
|
|
global ASM_PFX(InternalMemSetMem64)
|
|
ASM_PFX(InternalMemSetMem64):
|
|
movq mm0, r8
|
|
mov rax, rcx ; rax <- Buffer
|
|
xchg rcx, rdx ; rcx <- Count
|
|
.0:
|
|
movntq [rdx], mm0
|
|
add rdx, 8
|
|
loop .0
|
|
mfence
|
|
ret
|
|
|