OpenCore  1.0.4
OpenCore Bootloader
Loading...
Searching...
No Matches
OcCompilerIntrinsicsLib.c
Go to the documentation of this file.
1
8#include <Library/BaseLib.h>
9
10GLOBAL_REMOVE_IF_UNREFERENCED BOOLEAN gOcCompilerIntrinsicsLib;
11
12#if defined (MDE_CPU_IA32) && defined (__clang__) && defined (__apple_build_version__) && __apple_build_version__ < 11000000
13
26UINT64
27__udivdi3 (
28 IN UINT64 Dividend,
29 IN UINT64 Divisor
30 )
31{
32 return DivU64x64Remainder (Dividend, Divisor, NULL);
33}
34
35#endif
36
37typedef UINTN size_t;
38
39#if defined (_MSC_EXTENSIONS) && !defined (__clang__) && !defined (__GNUC__)
40void *
41memset (
42 void *Buffer,
43 int Value,
44 size_t Length
45 );
46
47 #pragma intrinsic(memset)
48 #pragma function(memset)
49#endif
50void *
52 void *Buffer,
53 int Value,
54 size_t Length
55 )
56{
57 unsigned char *d = Buffer;
58
59 while (Length--) {
60 *d++ = (unsigned char)Value;
61 }
62
63 return Buffer;
64}
65
66#if defined (_MSC_EXTENSIONS) && !defined (__clang__) && !defined (__GNUC__)
67void *
68memcpy (
69 void *DestinationBuffer,
70 const void *SourceBuffer,
71 size_t Length
72 );
73
74 #pragma intrinsic(memcpy)
75 #pragma function(memcpy)
76#endif
77void *
79 void *DestinationBuffer,
80 const void *SourceBuffer,
81 size_t Length
82 )
83{
84 unsigned char *d = DestinationBuffer;
85 unsigned char const *s = SourceBuffer;
86
87 while (Length--) {
88 *d++ = *s++;
89 }
90
91 return DestinationBuffer;
92}
UINT64 Length
GLOBAL_REMOVE_IF_UNREFERENCED BOOLEAN gOcCompilerIntrinsicsLib
OC_TYPING_BUFFER_ENTRY Buffer[OC_TYPING_BUFFER_SIZE]
Definition OcTypingLib.h:42
#define size_t
Definition Ubsan.h:87
UINT64 EFIAPI DivU64x64Remainder(IN UINT64 Dividend, IN UINT64 Divisor, OUT UINT64 *Remainder OPTIONAL)
Definition UserMath.c:59
#define memset(ptr, c, len)
#define memcpy(Dst, Src, Size)
Definition lzvn.h:57