@@ -100,9 +100,10 @@ extern "C" {
100
100
// inlining. ARM C 5 is being retired anyway.
101
101
102
102
#ifdef __CC_ARM
103
+ #pragma diag_suppress 3732
103
104
#define DO_MBED_LOCKFREE_EXCHG_ASM (M ) \
104
105
__asm { \
105
- LDREX##M oldValue, [valuePtr] \
106
+ LDREX##M oldValue, [valuePtr] ; \
106
107
STREX##M fail, newValue, [valuePtr] \
107
108
}
108
109
#elif defined __clang__ || defined __GNUC__
@@ -133,8 +134,8 @@ extern "C" {
133
134
#ifdef __CC_ARM
134
135
#define DO_MBED_LOCKFREE_3OP_ASM (OP , Constants , M ) \
135
136
__asm { \
136
- LDREX##M oldValue, [valuePtr] \
137
- OP newValue, oldValue, arg \
137
+ LDREX##M oldValue, [valuePtr] ; \
138
+ OP newValue, oldValue, arg ; \
138
139
STREX##M fail, newValue, [valuePtr] \
139
140
}
140
141
#elif defined __clang__ || defined __GNUC__
@@ -172,9 +173,9 @@ extern "C" {
172
173
#ifdef __CC_ARM
173
174
#define DO_MBED_LOCKFREE_2OP_ASM (OP , Constants , M ) \
174
175
__asm { \
175
- LDREX##M oldValue, [valuePtr] \
176
- MOV newValue, oldValue \
177
- OP newValue, arg \
176
+ LDREX##M oldValue, [valuePtr] ; \
177
+ MOV newValue, oldValue ; \
178
+ OP newValue, arg ; \
178
179
STREX##M fail, newValue, [valuePtr] \
179
180
}
180
181
#elif defined __clang__ || defined __GNUC__
@@ -216,8 +217,8 @@ extern "C" {
216
217
#ifdef __CC_ARM
217
218
#define DO_MBED_LOCKFREE_CAS_WEAK_ASM (M ) \
218
219
__asm { \
219
- LDREX##M oldValue, [ptr] \
220
- SUBS fail, oldValue, expectedValue \
220
+ LDREX##M oldValue, [ptr] ; \
221
+ SUBS fail, oldValue, expectedValue ; \
221
222
STREX##M##EQ fail, desiredValue, [ptr] \
222
223
}
223
224
#elif defined __clang__ || defined __GNUC__
@@ -251,10 +252,10 @@ extern "C" {
251
252
#ifdef __CC_ARM
252
253
#define DO_MBED_LOCKFREE_CAS_WEAK_ASM (M ) \
253
254
__asm { \
254
- LDREX##M oldValue, [ptr] \
255
- SUBS fail, oldValue, expectedValue \
256
- BNE done \
257
- STREX##M fail, desiredValue, [ptr] \
255
+ LDREX##M oldValue, [ptr] ; \
256
+ SUBS fail, oldValue, expectedValue ; \
257
+ BNE done ; \
258
+ STREX##M fail, desiredValue, [ptr] ; \
258
259
done: \
259
260
}
260
261
#elif defined __clang__ || defined __GNUC__
@@ -298,13 +299,13 @@ done: \
298
299
#ifdef __CC_ARM
299
300
#define DO_MBED_LOCKFREE_CAS_STRONG_ASM (M ) \
300
301
__asm { \
301
- retry: \
302
- LDREX##M oldValue, [ptr] \
303
- SUBS fail, oldValue, expectedValue \
304
- BNE done \
305
- STREX##M fail, desiredValue, [ptr] \
306
- CMP fail, # 0 \
307
- BNE retry \
302
+ retry: ; \
303
+ LDREX##M oldValue, [ptr] ; \
304
+ SUBS fail, oldValue, expectedValue ; \
305
+ BNE done ; \
306
+ STREX##M fail, desiredValue, [ptr] ; \
307
+ CMP fail, 0 ; \
308
+ BNE retry ; \
308
309
done: \
309
310
}
310
311
#elif defined __clang__ || defined __GNUC__
0 commit comments