]> git.proxmox.com Git - mirror_edk2.git/blob - MdePkg/Library/BaseMemoryLibOptDxe/X64/CompareMem.nasm
MdePkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / MdePkg / Library / BaseMemoryLibOptDxe / X64 / CompareMem.nasm
1 ;------------------------------------------------------------------------------
2 ;
3 ; Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
4 ; SPDX-License-Identifier: BSD-2-Clause-Patent
5 ;
6 ; Module Name:
7 ;
8 ; CompareMem.Asm
9 ;
10 ; Abstract:
11 ;
12 ; CompareMem function
13 ;
14 ; Notes:
15 ;
16 ; The following BaseMemoryLib instances contain the same copy of this file:
17 ;
18 ; BaseMemoryLibRepStr
19 ; BaseMemoryLibMmx
20 ; BaseMemoryLibSse2
21 ; BaseMemoryLibOptDxe
22 ; BaseMemoryLibOptPei
23 ;
24 ;------------------------------------------------------------------------------
25
26 DEFAULT REL
27 SECTION .text
28
29 ;------------------------------------------------------------------------------
30 ; INTN
31 ; EFIAPI
32 ; InternalMemCompareMem (
33 ; IN CONST VOID *DestinationBuffer,
34 ; IN CONST VOID *SourceBuffer,
35 ; IN UINTN Length
36 ; );
37 ;------------------------------------------------------------------------------
38 global ASM_PFX(InternalMemCompareMem)
39 ASM_PFX(InternalMemCompareMem):
40 push rsi
41 push rdi
42 mov rsi, rcx
43 mov rdi, rdx
44 mov rcx, r8
45 repe cmpsb
46 movzx rax, byte [rsi - 1]
47 movzx rdx, byte [rdi - 1]
48 sub rax, rdx
49 pop rdi
50 pop rsi
51 ret
52