]> git.proxmox.com Git - mirror_edk2.git/blob - ArmPkg/Library/CompilerIntrinsicsLib/memcmp_ms.c
ArmPkg: Fix Ecc error 3002 in CompilerIntrinsicsLib
[mirror_edk2.git] / ArmPkg / Library / CompilerIntrinsicsLib / memcmp_ms.c
1 //------------------------------------------------------------------------------
2 //
3 // Copyright (c) 2019, Pete Batard. All rights reserved.
4 // Copyright (c) 2021, Arm Limited. All rights reserved.<BR>
5 //
6 // SPDX-License-Identifier: BSD-2-Clause-Patent
7 //
8 //------------------------------------------------------------------------------
9
10 #if defined(_M_ARM64)
11 typedef unsigned __int64 size_t;
12 #else
13 typedef unsigned __int32 size_t;
14 #endif
15
16 int memcmp(void *, void *, size_t);
17 #pragma intrinsic(memcmp)
18 #pragma function(memcmp)
19 int memcmp(const void *s1, const void *s2, size_t n)
20 {
21 unsigned char const *t1 = s1;
22 unsigned char const *t2 = s2;
23
24 while (n-- != 0) {
25 if (*t1 != *t2)
26 return (int)*t1 - (int)*t2;
27 t1++;
28 t2++;
29 }
30
31 return 0;
32 }