diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/asm-x86/local_64.h | 30 |
1 files changed, 14 insertions, 16 deletions
diff --git a/include/asm-x86/local_64.h b/include/asm-x86/local_64.h index 92330f8135f8..50e99eddd628 100644 --- a/include/asm-x86/local_64.h +++ b/include/asm-x86/local_64.h | |||
@@ -5,32 +5,30 @@ static inline void local_inc(local_t *l) | |||
5 | { | 5 | { |
6 | __asm__ __volatile__( | 6 | __asm__ __volatile__( |
7 | "incq %0" | 7 | "incq %0" |
8 | :"=m" (l->a.counter) | 8 | :"+m" (l->a.counter)); |
9 | :"m" (l->a.counter)); | ||
10 | } | 9 | } |
11 | 10 | ||
12 | static inline void local_dec(local_t *l) | 11 | static inline void local_dec(local_t *l) |
13 | { | 12 | { |
14 | __asm__ __volatile__( | 13 | __asm__ __volatile__( |
15 | "decq %0" | 14 | "decq %0" |
16 | :"=m" (l->a.counter) | 15 | :"+m" (l->a.counter)); |
17 | :"m" (l->a.counter)); | ||
18 | } | 16 | } |
19 | 17 | ||
20 | static inline void local_add(long i, local_t *l) | 18 | static inline void local_add(long i, local_t *l) |
21 | { | 19 | { |
22 | __asm__ __volatile__( | 20 | __asm__ __volatile__( |
23 | "addq %1,%0" | 21 | "addq %1,%0" |
24 | :"=m" (l->a.counter) | 22 | :"+m" (l->a.counter) |
25 | :"ir" (i), "m" (l->a.counter)); | 23 | :"ir" (i)); |
26 | } | 24 | } |
27 | 25 | ||
28 | static inline void local_sub(long i, local_t *l) | 26 | static inline void local_sub(long i, local_t *l) |
29 | { | 27 | { |
30 | __asm__ __volatile__( | 28 | __asm__ __volatile__( |
31 | "subq %1,%0" | 29 | "subq %1,%0" |
32 | :"=m" (l->a.counter) | 30 | :"+m" (l->a.counter) |
33 | :"ir" (i), "m" (l->a.counter)); | 31 | :"ir" (i)); |
34 | } | 32 | } |
35 | 33 | ||
36 | /** | 34 | /** |
@@ -48,8 +46,8 @@ static inline int local_sub_and_test(long i, local_t *l) | |||
48 | 46 | ||
49 | __asm__ __volatile__( | 47 | __asm__ __volatile__( |
50 | "subq %2,%0; sete %1" | 48 | "subq %2,%0; sete %1" |
51 | :"=m" (l->a.counter), "=qm" (c) | 49 | :"+m" (l->a.counter), "=qm" (c) |
52 | :"ir" (i), "m" (l->a.counter) : "memory"); | 50 | :"ir" (i) : "memory"); |
53 | return c; | 51 | return c; |
54 | } | 52 | } |
55 | 53 | ||
@@ -67,8 +65,8 @@ static inline int local_dec_and_test(local_t *l) | |||
67 | 65 | ||
68 | __asm__ __volatile__( | 66 | __asm__ __volatile__( |
69 | "decq %0; sete %1" | 67 | "decq %0; sete %1" |
70 | :"=m" (l->a.counter), "=qm" (c) | 68 | :"+m" (l->a.counter), "=qm" (c) |
71 | :"m" (l->a.counter) : "memory"); | 69 | : : "memory"); |
72 | return c != 0; | 70 | return c != 0; |
73 | } | 71 | } |
74 | 72 | ||
@@ -86,8 +84,8 @@ static inline int local_inc_and_test(local_t *l) | |||
86 | 84 | ||
87 | __asm__ __volatile__( | 85 | __asm__ __volatile__( |
88 | "incq %0; sete %1" | 86 | "incq %0; sete %1" |
89 | :"=m" (l->a.counter), "=qm" (c) | 87 | :"+m" (l->a.counter), "=qm" (c) |
90 | :"m" (l->a.counter) : "memory"); | 88 | : : "memory"); |
91 | return c != 0; | 89 | return c != 0; |
92 | } | 90 | } |
93 | 91 | ||
@@ -106,8 +104,8 @@ static inline int local_add_negative(long i, local_t *l) | |||
106 | 104 | ||
107 | __asm__ __volatile__( | 105 | __asm__ __volatile__( |
108 | "addq %2,%0; sets %1" | 106 | "addq %2,%0; sets %1" |
109 | :"=m" (l->a.counter), "=qm" (c) | 107 | :"+m" (l->a.counter), "=qm" (c) |
110 | :"ir" (i), "m" (l->a.counter) : "memory"); | 108 | :"ir" (i) : "memory"); |
111 | return c; | 109 | return c; |
112 | } | 110 | } |
113 | 111 | ||