]>
Commit | Line | Data |
---|---|---|
1 | // ------------------------------------------------------------------------------\r | |
2 | //\r | |
3 | // Copyright (c) 2019, Pete Batard. All rights reserved.\r | |
4 | // Copyright (c) 2021, Arm Limited. All rights reserved.<BR>\r | |
5 | //\r | |
6 | // SPDX-License-Identifier: BSD-2-Clause-Patent\r | |
7 | //\r | |
8 | // ------------------------------------------------------------------------------\r | |
9 | \r | |
10 | #if defined (_M_ARM64)\r | |
11 | typedef unsigned __int64 size_t;\r | |
12 | #else\r | |
13 | typedef unsigned __int32 size_t;\r | |
14 | #endif\r | |
15 | \r | |
16 | int\r | |
17 | memcmp (\r | |
18 | void *,\r | |
19 | void *,\r | |
20 | size_t\r | |
21 | );\r | |
22 | \r | |
23 | #pragma intrinsic(memcmp)\r | |
24 | #pragma function(memcmp)\r | |
25 | int\r | |
26 | memcmp (\r | |
27 | const void *s1,\r | |
28 | const void *s2,\r | |
29 | size_t n\r | |
30 | )\r | |
31 | {\r | |
32 | unsigned char const *t1;\r | |
33 | unsigned char const *t2;\r | |
34 | \r | |
35 | t1 = s1;\r | |
36 | t2 = s2;\r | |
37 | \r | |
38 | while (n-- != 0) {\r | |
39 | if (*t1 != *t2) {\r | |
40 | return (int)*t1 - (int)*t2;\r | |
41 | }\r | |
42 | \r | |
43 | t1++;\r | |
44 | t2++;\r | |
45 | }\r | |
46 | \r | |
47 | return 0;\r | |
48 | }\r |