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