ScanMem8.S revision 4fd606d1f5abe38e1f42c38de1d2e895166bd0f4
af062818b47340eef15700d2f0211576ba3506eevboxsync#
af062818b47340eef15700d2f0211576ba3506eevboxsync# ConvertAsm.py: Automatically generated from ScanMem8.asm
af062818b47340eef15700d2f0211576ba3506eevboxsync#
af062818b47340eef15700d2f0211576ba3506eevboxsync#------------------------------------------------------------------------------
af062818b47340eef15700d2f0211576ba3506eevboxsync#
af062818b47340eef15700d2f0211576ba3506eevboxsync# Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
af062818b47340eef15700d2f0211576ba3506eevboxsync# This program and the accompanying materials
af062818b47340eef15700d2f0211576ba3506eevboxsync# are licensed and made available under the terms and conditions of the BSD License
af062818b47340eef15700d2f0211576ba3506eevboxsync# which accompanies this distribution. The full text of the license may be found at
af062818b47340eef15700d2f0211576ba3506eevboxsync# http://opensource.org/licenses/bsd-license.php.
af062818b47340eef15700d2f0211576ba3506eevboxsync#
af062818b47340eef15700d2f0211576ba3506eevboxsync# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
af062818b47340eef15700d2f0211576ba3506eevboxsync# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
af062818b47340eef15700d2f0211576ba3506eevboxsync#
af062818b47340eef15700d2f0211576ba3506eevboxsync# Module Name:
af062818b47340eef15700d2f0211576ba3506eevboxsync#
af062818b47340eef15700d2f0211576ba3506eevboxsync# ScanMem8.S
af062818b47340eef15700d2f0211576ba3506eevboxsync#
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsync# Abstract:
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsync#
4b9d6701570cb98fd36e209314239d104ec584d3vboxsync# ScanMem8 function
4b9d6701570cb98fd36e209314239d104ec584d3vboxsync#
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsync# Notes:
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsync#
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsync# The following BaseMemoryLib instances contain the same copy of this file:
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsync#
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsync# BaseMemoryLibRepStr
ee6bcfc59fe3b0230aad85e2ef63d0402b7719b2vboxsync# BaseMemoryLibMmx
af062818b47340eef15700d2f0211576ba3506eevboxsync# BaseMemoryLibSse2
af062818b47340eef15700d2f0211576ba3506eevboxsync# BaseMemoryLibOptDxe
af062818b47340eef15700d2f0211576ba3506eevboxsync# BaseMemoryLibOptPei
af062818b47340eef15700d2f0211576ba3506eevboxsync#
af062818b47340eef15700d2f0211576ba3506eevboxsync#------------------------------------------------------------------------------
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#------------------------------------------------------------------------------
af062818b47340eef15700d2f0211576ba3506eevboxsync# CONST VOID *
af062818b47340eef15700d2f0211576ba3506eevboxsync# EFIAPI
af062818b47340eef15700d2f0211576ba3506eevboxsync# InternalMemScanMem8 (
af062818b47340eef15700d2f0211576ba3506eevboxsync# IN CONST VOID *Buffer,
af062818b47340eef15700d2f0211576ba3506eevboxsync# IN UINTN Length,
af062818b47340eef15700d2f0211576ba3506eevboxsync# IN UINT8 Value
af062818b47340eef15700d2f0211576ba3506eevboxsync# );
af062818b47340eef15700d2f0211576ba3506eevboxsync#------------------------------------------------------------------------------
af062818b47340eef15700d2f0211576ba3506eevboxsyncASM_GLOBAL ASM_PFX(InternalMemScanMem8)
af062818b47340eef15700d2f0211576ba3506eevboxsyncASM_PFX(InternalMemScanMem8):
af062818b47340eef15700d2f0211576ba3506eevboxsync pushq %rdi
af062818b47340eef15700d2f0211576ba3506eevboxsync movq %rcx, %rdi
af062818b47340eef15700d2f0211576ba3506eevboxsync movq %rdx, %rcx
movq %r8, %rax
repne scasb
leaq -1(%rdi), %rax
cmovnz %rcx, %rax # set rax to 0 if not found
popq %rdi
ret