audk/ArmPkg/Library/CompilerIntrinsicsLib/memcmp_ms.c

32 lines
728 B
C

//------------------------------------------------------------------------------
//
// Copyright (c) 2019, Pete Batard. All rights reserved.
//
// SPDX-License-Identifier: BSD-2-Clause-Patent
//
//------------------------------------------------------------------------------
#if defined(_M_ARM64)
typedef unsigned __int64 size_t;
#else
typedef unsigned __int32 size_t;
#endif
int memcmp(void *, void *, size_t);
#pragma intrinsic(memcmp)
#pragma function(memcmp)
int memcmp(const void *s1, const void *s2, size_t n)
{
unsigned char const *t1 = s1;
unsigned char const *t2 = s2;
while (n--) {
if (*t1 != *t2)
return (int)*t1 - (int)*t2;
t1++;
t2++;
}
return 0;
}