ScanMem32.S revision 4fd606d1f5abe38e1f42c38de1d2e895166bd0f4
3853N/A#------------------------------------------------------------------------------
3853N/A#
3853N/A# Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
3853N/A# This program and the accompanying materials
3853N/A# are licensed and made available under the terms and conditions of the BSD License
3853N/A# which accompanies this distribution. The full text of the license may be found at
3853N/A# http://opensource.org/licenses/bsd-license.php.
3853N/A#
3853N/A# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
3853N/A# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
3853N/A#
3853N/A# Module Name:
3853N/A#
3853N/A# ScanMem32.Asm
3853N/A#
3853N/A# Abstract:
3853N/A#
3853N/A# ScanMem32 function
3853N/A#
3853N/A# Notes:
3853N/A#
3853N/A# The following BaseMemoryLib instances contain the same copy of this file:
3853N/A#
3853N/A# BaseMemoryLibRepStr
5027N/A# BaseMemoryLibMmx
3853N/A# BaseMemoryLibSse2
3853N/A# BaseMemoryLibOptDxe
3853N/A# BaseMemoryLibOptPei
3853N/A#
4500N/A#------------------------------------------------------------------------------
3853N/A
3853N/AASM_GLOBAL ASM_PFX(InternalMemScanMem32)
3853N/A
3853N/A#------------------------------------------------------------------------------
3853N/A# CONST VOID *
3853N/A# EFIAPI
3853N/A# InternalMemScanMem32 (
3853N/A# IN CONST VOID *Buffer,
3853N/A# IN UINTN Length,
3853N/A# IN UINT32 Value
3853N/A# );
3853N/A#------------------------------------------------------------------------------
3853N/AASM_PFX(InternalMemScanMem32):
3853N/A push %edi
3853N/A movl 12(%esp), %ecx
3853N/A movl 8(%esp), %edi
3853N/A movl 16(%esp), %eax
4294N/A repne scasl
4294N/A leal -4(%edi), %eax
3853N/A cmovnz %ecx, %eax
3853N/A pop %edi
3853N/A ret
3853N/A