Go to the source code of this file.
|
__INTRIN_INLINE void | __yield (void) |
|
__INTRIN_INLINE void | __break (unsigned int value) |
|
__INTRIN_INLINE unsigned short | _byteswap_ushort (unsigned short value) |
|
__INTRIN_INLINE unsigned | _CountLeadingZeros (long Mask) |
|
__INTRIN_INLINE unsigned | _CountTrailingZeros (long Mask) |
|
__INTRIN_INLINE unsigned char | _BitScanForward (unsigned long *const Index, const unsigned long Mask) |
|
__INTRIN_INLINE char | _InterlockedCompareExchange8 (volatile char *const Destination, const char Exchange, const char Comperand) |
|
__INTRIN_INLINE short | _InterlockedCompareExchange16 (volatile short *const Destination, const short Exchange, const short Comperand) |
|
__INTRIN_INLINE short | _InterlockedExchangeAdd16 (volatile short *const Addend, const short Value) |
|
__INTRIN_INLINE long | _InterlockedCompareExchange (volatile long *const dest, const long exch, const long comp) |
|
__INTRIN_INLINE long long | _InterlockedCompareExchange64 (volatile long long *const dest, const long long exch, const long long comp) |
|
__INTRIN_INLINE void * | _InterlockedCompareExchangePointer (void *volatile *const Destination, void *const Exchange, void *const Comperand) |
|
__INTRIN_INLINE long | _InterlockedExchangeAdd (volatile long *const dest, const long add) |
|
__INTRIN_INLINE long | _InterlockedExchange (volatile long *const dest, const long exch) |
|
__INTRIN_INLINE void * | _InterlockedExchangePointer (void *volatile *const Target, void *const Value) |
|
__INTRIN_INLINE unsigned char | _BitScanReverse (unsigned long *const Index, const unsigned long Mask) |
|
__INTRIN_INLINE char | _InterlockedAnd8 (volatile char *const value, const char mask) |
|
__INTRIN_INLINE short | _InterlockedAnd16 (volatile short *const value, const short mask) |
|
__INTRIN_INLINE long | _InterlockedAnd (volatile long *const value, const long mask) |
|
__INTRIN_INLINE char | _InterlockedOr8 (volatile char *const value, const char mask) |
|
__INTRIN_INLINE short | _InterlockedOr16 (volatile short *const value, const short mask) |
|
__INTRIN_INLINE long | _InterlockedOr (volatile long *const value, const long mask) |
|
__INTRIN_INLINE char | _InterlockedXor8 (volatile char *const value, const char mask) |
|
__INTRIN_INLINE short | _InterlockedXor16 (volatile short *const value, const short mask) |
|
__INTRIN_INLINE long | _InterlockedXor (volatile long *const value, const long mask) |
|
__INTRIN_INLINE long | _InterlockedDecrement (volatile long *const lpAddend) |
|
__INTRIN_INLINE long | _InterlockedIncrement (volatile long *const lpAddend) |
|
__INTRIN_INLINE long | _InterlockedDecrement16 (volatile short *const lpAddend) |
|
__INTRIN_INLINE long | _InterlockedIncrement16 (volatile short *const lpAddend) |
|
__INTRIN_INLINE long | _InterlockedAddLargeStatistic (volatile long long *const Addend, const long Value) |
|
__INTRIN_INLINE void | _disable (void) |
|
__INTRIN_INLINE void | _enable (void) |
|
__INTRIN_INLINE unsigned char | _interlockedbittestandset (volatile long *a, const long b) |
|
__INTRIN_INLINE unsigned char | _interlockedbittestandreset (volatile long *a, const long b) |
|
__INTRIN_INLINE unsigned int | _rotl (const unsigned int value, int shift) |
|
◆ _clz
Value:({
ULONG __value, __arg = (
a); \
asm ("clz\t%0, %1": "=r" (__value): "r" (__arg)); \
__value; })
Definition at line 398 of file intrin_arm.h.
◆ _ReadWriteBarrier
#define _ReadWriteBarrier |
( |
|
void | ) |
__sync_synchronize() |
◆ _ReturnAddress
#define _ReturnAddress |
( |
|
void | ) |
(__builtin_return_address(0)) |
◆ __break()
Definition at line 40 of file intrin_arm.h.
__asm__(".p2align 4, 0x90\n" ".seh_proc __seh2_global_filter_func\n" "__seh2_global_filter_func:\n" "\tsub %rbp, %rax\n" "\tpush %rbp\n" "\t.seh_pushreg %rbp\n" "\tsub $32, %rsp\n" "\t.seh_stackalloc 32\n" "\t.seh_endprologue\n" "\tsub %rax, %rdx\n" "\tmov %rdx, %rbp\n" "\tjmp *%r8\n" "__seh2_global_filter_func_exit:\n" "\t.p2align 4\n" "\tadd $32, %rsp\n" "\tpop %rbp\n" "\tret\n" "\t.seh_endproc")
◆ __yield()
◆ _BitScanForward()
Definition at line 57 of file intrin_arm.h.
58{
61}
_In_ WDFCOLLECTION _In_ ULONG Index
◆ _BitScanReverse()
◆ _byteswap_ushort()
◆ _CountLeadingZeros()
◆ _CountTrailingZeros()
◆ _disable()
Definition at line 365 of file intrin_arm.h.
366{
368 (
369 "cpsid i @ __cli" : : : "memory", "cc"
370 );
371}
◆ _enable()
Definition at line 373 of file intrin_arm.h.
374{
376 (
377 "cpsie i @ __sti" : : : "memory", "cc"
378 );
379}
◆ _InterlockedAddLargeStatistic()
Definition at line 359 of file intrin_arm.h.
360{
363}
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
◆ _InterlockedAnd()
Definition at line 220 of file intrin_arm.h.
221{
224
226
227 do
228 {
231 }
233
235}
GLint GLint GLint GLint GLint x
GLint GLint GLint GLint GLint GLint y
__INTRIN_INLINE long _InterlockedCompareExchange(volatile long *const dest, const long exch, const long comp)
◆ _InterlockedAnd16()
Definition at line 203 of file intrin_arm.h.
204{
207
209
210 do
211 {
214 }
216
218}
__INTRIN_INLINE short _InterlockedCompareExchange16(volatile short *const Destination, const short Exchange, const short Comperand)
◆ _InterlockedAnd8()
Definition at line 186 of file intrin_arm.h.
187{
190
192
193 do
194 {
197 }
199
201}
__INTRIN_INLINE char _InterlockedCompareExchange8(volatile char *const Destination, const char Exchange, const char Comperand)
◆ _interlockedbittestandreset()
Definition at line 386 of file intrin_arm.h.
387{
389}
GLboolean GLboolean GLboolean b
GLboolean GLboolean GLboolean GLboolean a
volatile char *const const char modify _InterlockedAnd
◆ _interlockedbittestandset()
Definition at line 381 of file intrin_arm.h.
382{
384}
__INTRIN_INLINE long _InterlockedOr(volatile long *const value, const long mask)
◆ _InterlockedCompareExchange()
Definition at line 106 of file intrin_arm.h.
107{
109
110 __asm__ __volatile__ (
"0:\n\t"
111 "ldr %1, [%2]\n\t"
112 "cmp %1, %4\n\t"
113 "bne 1f\n\t"
114 "swp %0, %3, [%2]\n\t"
115 "cmp %0, %1\n\t"
116 "swpne %3, %0, [%2]\n\t"
117 "bne 0b\n\t"
118 "1:"
119 :
"=&r" (
a),
"=&r" (
b)
120 :
"r" (
dest),
"r" (exch),
"r" (comp)
121 : "cc", "memory");
122
124}
Referenced by _InterlockedAnd(), _InterlockedCompareExchangePointer(), _InterlockedOr(), and _InterlockedXor().
◆ _InterlockedCompareExchange16()
Definition at line 68 of file intrin_arm.h.
69{
71
73 "ldr %1, [%2]\n\t"
74 "cmp %1, %4\n\t"
75 "bne 1f\n\t"
76 "swp %0, %3, [%2]\n\t"
77 "cmp %0, %1\n\t"
78 "swpne %3, %0, [%2]\n\t"
79 "bne 0b\n\t"
80 "1:"
81 :
"=&r" (
a),
"=&r" (
b)
82 :
"r" (
Destination),
"r" (Exchange),
"r" (Comperand)
83 : "cc", "memory");
84
86}
_In_ PUNICODE_STRING _Inout_ PUNICODE_STRING Destination
Referenced by _InterlockedAnd16(), _InterlockedOr16(), and _InterlockedXor16().
◆ _InterlockedCompareExchange64()
◆ _InterlockedCompareExchange8()
◆ _InterlockedCompareExchangePointer()
◆ _InterlockedDecrement()
Definition at line 339 of file intrin_arm.h.
340{
342}
__INTRIN_INLINE long _InterlockedExchangeAdd(volatile long *const dest, const long add)
◆ _InterlockedDecrement16()
Definition at line 349 of file intrin_arm.h.
350{
352}
__INTRIN_INLINE short _InterlockedExchangeAdd16(volatile short *const Addend, const short Value)
◆ _InterlockedExchange()
◆ _InterlockedExchangeAdd()
Definition at line 143 of file intrin_arm.h.
144{
146
147 __asm__ __volatile__ (
"0:\n\t"
148 "ldr %0, [%3]\n\t"
149 "add %1, %0, %4\n\t"
150 "swp %2, %1, [%3]\n\t"
151 "cmp %0, %2\n\t"
152 "swpne %1, %2, [%3]\n\t"
153 "bne 0b"
154 :
"=&r" (
a),
"=&r" (
b),
"=&r" (
c)
155 :
"r" (
dest),
"r" (add)
156 : "cc", "memory");
157
159}
Referenced by _InterlockedDecrement(), and _InterlockedIncrement().
◆ _InterlockedExchangeAdd16()
Definition at line 88 of file intrin_arm.h.
89{
91
93 "ldr %0, [%3]\n\t"
94 "add %1, %0, %4\n\t"
95 "swp %2, %1, [%3]\n\t"
96 "cmp %0, %2\n\t"
97 "swpne %1, %2, [%3]\n\t"
98 "bne 0b"
99 :
"=&r" (
a),
"=&r" (
b),
"=&r" (
c)
101 : "cc", "memory");
102
104}
Referenced by _InterlockedDecrement16(), and _InterlockedIncrement16().
◆ _InterlockedExchangePointer()
Definition at line 173 of file intrin_arm.h.
174{
176}
__INTRIN_INLINE long _InterlockedExchange(volatile long *const dest, const long exch)
◆ _InterlockedIncrement()
◆ _InterlockedIncrement16()
◆ _InterlockedOr()
◆ _InterlockedOr16()
Definition at line 254 of file intrin_arm.h.
255{
258
260
261 do
262 {
265 }
267
269}
◆ _InterlockedOr8()
Definition at line 237 of file intrin_arm.h.
238{
241
243
244 do
245 {
248 }
250
252}
◆ _InterlockedXor()
Definition at line 322 of file intrin_arm.h.
323{
326
328
329 do
330 {
333 }
335
337}
◆ _InterlockedXor16()
Definition at line 305 of file intrin_arm.h.
306{
309
311
312 do
313 {
316 }
318
320}
◆ _InterlockedXor8()
Definition at line 288 of file intrin_arm.h.
289{
292
294
295 do
296 {
299 }
301
303}
◆ _rotl()