]>
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 | void* memmove(void *, const void *, size_t);\r | |
17 | #pragma intrinsic(memmove)\r | |
18 | #pragma function(memmove)\r | |
19 | void* memmove(void *dest, const void *src, size_t n)\r | |
20 | {\r | |
21 | unsigned char *d;\r | |
22 | unsigned char const *s;\r | |
23 | \r | |
24 | d = dest;\r | |
25 | s = src;\r | |
26 | \r | |
27 | if (d < s) {\r | |
28 | while (n-- != 0) {\r | |
29 | *d++ = *s++;\r | |
30 | }\r | |
31 | } else {\r | |
32 | d += n;\r | |
33 | s += n;\r | |
34 | while (n-- != 0) {\r | |
35 | *--d = *--s;\r | |
36 | }\r | |
37 | }\r | |
38 | \r | |
39 | return dest;\r | |
40 | }\r |