Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(368)

Side by Side Diff: fusl/arch/arm/atomic_arch.h

Issue 1714623002: [fusl] clang-format fusl (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: headers too Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 __attribute__((__visibility__("hidden"))) 1 __attribute__((__visibility__(
2 extern const void *__arm_atomics[3]; /* gettp, cas, barrier */ 2 "hidden"))) extern const void* __arm_atomics[3]; /* gettp, cas, barrier */
3 3
4 #if ((__ARM_ARCH_6__ || __ARM_ARCH_6K__ || __ARM_ARCH_6ZK__) && !__thumb__) \ 4 #if ((__ARM_ARCH_6__ || __ARM_ARCH_6K__ || __ARM_ARCH_6ZK__) && !__thumb__) || \
5 || __ARM_ARCH_7A__ || __ARM_ARCH_7R__ || __ARM_ARCH >= 7 5 __ARM_ARCH_7A__ || __ARM_ARCH_7R__ || __ARM_ARCH >= 7
6 6
7 #define a_ll a_ll 7 #define a_ll a_ll
8 static inline int a_ll(volatile int *p) 8 static inline int a_ll(volatile int* p) {
9 { 9 int v;
10 » int v; 10 __asm__ __volatile__("ldrex %0, %1" : "=r"(v) : "Q"(*p));
11 » __asm__ __volatile__ ("ldrex %0, %1" : "=r"(v) : "Q"(*p)); 11 return v;
12 » return v;
13 } 12 }
14 13
15 #define a_sc a_sc 14 #define a_sc a_sc
16 static inline int a_sc(volatile int *p, int v) 15 static inline int a_sc(volatile int* p, int v) {
17 { 16 int r;
18 » int r; 17 __asm__ __volatile__("strex %0,%2,%1"
19 » __asm__ __volatile__ ("strex %0,%2,%1" : "=&r"(r), "=Q"(*p) : "r"(v) : " memory"); 18 : "=&r"(r), "=Q"(*p)
20 » return !r; 19 : "r"(v)
20 : "memory");
21 return !r;
21 } 22 }
22 23
23 #if __ARM_ARCH_7A__ || __ARM_ARCH_7R__ || __ARM_ARCH >= 7 24 #if __ARM_ARCH_7A__ || __ARM_ARCH_7R__ || __ARM_ARCH >= 7
24 25
25 #define a_barrier a_barrier 26 #define a_barrier a_barrier
26 static inline void a_barrier() 27 static inline void a_barrier() {
27 { 28 __asm__ __volatile__("dmb ish" : : : "memory");
28 » __asm__ __volatile__ ("dmb ish" : : : "memory");
29 } 29 }
30 30
31 #endif 31 #endif
32 32
33 #define a_pre_llsc a_barrier 33 #define a_pre_llsc a_barrier
34 #define a_post_llsc a_barrier 34 #define a_post_llsc a_barrier
35 35
36 #else 36 #else
37 37
38 #define a_cas a_cas 38 #define a_cas a_cas
39 static inline int a_cas(volatile int *p, int t, int s) 39 static inline int a_cas(volatile int* p, int t, int s) {
40 { 40 for (;;) {
41 » for (;;) { 41 register int r0 __asm__("r0") = t;
42 » » register int r0 __asm__("r0") = t; 42 register int r1 __asm__("r1") = s;
43 » » register int r1 __asm__("r1") = s; 43 register volatile int* r2 __asm__("r2") = p;
44 » » register volatile int *r2 __asm__("r2") = p; 44 int old;
45 » » int old; 45 __asm__ __volatile__("bl __a_cas"
46 » » __asm__ __volatile__ ( 46 : "+r"(r0)
47 » » » "bl __a_cas" 47 : "r"(r1), "r"(r2)
48 » » » : "+r"(r0) : "r"(r1), "r"(r2) 48 : "memory", "r3", "lr", "ip", "cc");
49 » » » : "memory", "r3", "lr", "ip", "cc" ); 49 if (!r0)
50 » » if (!r0) return t; 50 return t;
51 » » if ((old=*p)!=t) return old; 51 if ((old = *p) != t)
52 » } 52 return old;
53 }
53 } 54 }
54 55
55 #endif 56 #endif
56 57
57 #ifndef a_barrier 58 #ifndef a_barrier
58 #define a_barrier a_barrier 59 #define a_barrier a_barrier
59 static inline void a_barrier() 60 static inline void a_barrier() {
60 { 61 __asm__ __volatile__("bl __a_barrier" : : : "memory", "cc", "ip", "lr");
61 » __asm__ __volatile__("bl __a_barrier"
62 » » : : : "memory", "cc", "ip", "lr" );
63 } 62 }
64 #endif 63 #endif
65 64
66 #define a_crash a_crash 65 #define a_crash a_crash
67 static inline void a_crash() 66 static inline void a_crash() {
68 { 67 __asm__ __volatile__(
69 » __asm__ __volatile__(
70 #ifndef __thumb__ 68 #ifndef __thumb__
71 » » ".word 0xe7f000f0" 69 ".word 0xe7f000f0"
72 #else 70 #else
73 » » ".short 0xdeff" 71 ".short 0xdeff"
74 #endif 72 #endif
75 » » : : : "memory"); 73 :
74 :
75 : "memory");
76 } 76 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698