]>
Commit | Line | Data |
---|---|---|
482704df PB |
1 | //------------------------------------------------------------------------------\r |
2 | //\r | |
3 | // Copyright (c) 2019, Pete Batard. All rights reserved.\r | |
53aabb97 | 4 | // Copyright (c) 2021, Arm Limited. All rights reserved.<BR>\r |
482704df PB |
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 = dest;\r | |
22 | unsigned char const *s = src;\r | |
23 | \r | |
24 | if (d < s) {\r | |
53aabb97 | 25 | while (n-- != 0) {\r |
482704df | 26 | *d++ = *s++;\r |
53aabb97 | 27 | }\r |
482704df PB |
28 | } else {\r |
29 | d += n;\r | |
30 | s += n;\r | |
53aabb97 | 31 | while (n-- != 0) {\r |
482704df | 32 | *--d = *--s;\r |
53aabb97 | 33 | }\r |
482704df PB |
34 | }\r |
35 | \r | |
36 | return dest;\r | |
37 | }\r |