1# 2# ConvertAsm.py: Automatically generated from CompareMem.asm 3# 4#------------------------------------------------------------------------------ 5# 6# Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR> 7# This program and the accompanying materials 8# are licensed and made available under the terms and conditions of the BSD License 9# which accompanies this distribution. The full text of the license may be found at 10# http://opensource.org/licenses/bsd-license.php. 11# 12# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 13# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 14# 15# Module Name: 16# 17# CompareMem.S 18# 19# Abstract: 20# 21# CompareMem function 22# 23# Notes: 24# 25# The following BaseMemoryLib instances contain the same copy of this file: 26# 27# BaseMemoryLibRepStr 28# BaseMemoryLibMmx 29# BaseMemoryLibSse2 30# BaseMemoryLibOptDxe 31# BaseMemoryLibOptPei 32# 33#------------------------------------------------------------------------------ 34 35 36#------------------------------------------------------------------------------ 37# INTN 38# EFIAPI 39# InternalMemCompareMem ( 40# IN CONST VOID *DestinationBuffer, 41# IN CONST VOID *SourceBuffer, 42# IN UINTN Length 43# ); 44#------------------------------------------------------------------------------ 45ASM_GLOBAL ASM_PFX(InternalMemCompareMem) 46ASM_PFX(InternalMemCompareMem): 47 pushq %rsi 48 pushq %rdi 49 movq %rcx, %rsi 50 movq %rdx, %rdi 51 movq %r8, %rcx 52 repe cmpsb 53 movzbq -1(%rsi) , %rax 54 movzbq -1(%rdi) , %rdx 55 sub %dl, %al 56 popq %rdi 57 popq %rsi 58 ret 59 60