@@ -192,69 +192,86 @@ TEXT runtime·racefuncexit(SB), NOSPLIT, $0-0
192
192
193
193
// Load
194
194
TEXT sync∕atomic·LoadInt32(SB) , NOSPLIT , $ 0
195
+ GO_ARGS
195
196
MOVD $ __tsan_go_atomic32_load(SB) , R9
196
197
BL racecallatomic<>(SB)
197
198
RET
198
199
199
200
TEXT sync∕atomic·LoadInt64(SB) , NOSPLIT , $ 0
201
+ GO_ARGS
200
202
MOVD $ __tsan_go_atomic64_load(SB) , R9
201
203
BL racecallatomic<>(SB)
202
204
RET
203
205
204
206
TEXT sync∕atomic·LoadUint32(SB) , NOSPLIT , $ 0
207
+ GO_ARGS
205
208
JMP sync∕atomic·LoadInt32(SB)
206
209
207
210
TEXT sync∕atomic·LoadUint64(SB) , NOSPLIT , $ 0
211
+ GO_ARGS
208
212
JMP sync∕atomic·LoadInt64(SB)
209
213
210
214
TEXT sync∕atomic·LoadUintptr(SB) , NOSPLIT , $ 0
215
+ GO_ARGS
211
216
JMP sync∕atomic·LoadInt64(SB)
212
217
213
218
TEXT sync∕atomic·LoadPointer(SB) , NOSPLIT , $ 0
219
+ GO_ARGS
214
220
JMP sync∕atomic·LoadInt64(SB)
215
221
216
222
// Store
217
223
TEXT sync∕atomic·StoreInt32(SB) , NOSPLIT , $ 0
224
+ GO_ARGS
218
225
MOVD $ __tsan_go_atomic32_store(SB) , R9
219
226
BL racecallatomic<>(SB)
220
227
RET
221
228
222
229
TEXT sync∕atomic·StoreInt64(SB) , NOSPLIT , $ 0
230
+ GO_ARGS
223
231
MOVD $ __tsan_go_atomic64_store(SB) , R9
224
232
BL racecallatomic<>(SB)
225
233
RET
226
234
227
235
TEXT sync∕atomic·StoreUint32(SB) , NOSPLIT , $ 0
236
+ GO_ARGS
228
237
JMP sync∕atomic·StoreInt32(SB)
229
238
230
239
TEXT sync∕atomic·StoreUint64(SB) , NOSPLIT , $ 0
240
+ GO_ARGS
231
241
JMP sync∕atomic·StoreInt64(SB)
232
242
233
243
TEXT sync∕atomic·StoreUintptr(SB) , NOSPLIT , $ 0
244
+ GO_ARGS
234
245
JMP sync∕atomic·StoreInt64(SB)
235
246
236
247
// Swap
237
248
TEXT sync∕atomic·SwapInt32(SB) , NOSPLIT , $ 0
249
+ GO_ARGS
238
250
MOVD $ __tsan_go_atomic32_exchange(SB) , R9
239
251
BL racecallatomic<>(SB)
240
252
RET
241
253
242
254
TEXT sync∕atomic·SwapInt64(SB) , NOSPLIT , $ 0
255
+ GO_ARGS
243
256
MOVD $ __tsan_go_atomic64_exchange(SB) , R9
244
257
BL racecallatomic<>(SB)
245
258
RET
246
259
247
260
TEXT sync∕atomic·SwapUint32(SB) , NOSPLIT , $ 0
261
+ GO_ARGS
248
262
JMP sync∕atomic·SwapInt32(SB)
249
263
250
264
TEXT sync∕atomic·SwapUint64(SB) , NOSPLIT , $ 0
265
+ GO_ARGS
251
266
JMP sync∕atomic·SwapInt64(SB)
252
267
253
268
TEXT sync∕atomic·SwapUintptr(SB) , NOSPLIT , $ 0
269
+ GO_ARGS
254
270
JMP sync∕atomic·SwapInt64(SB)
255
271
256
272
// Add
257
273
TEXT sync∕atomic·AddInt32(SB) , NOSPLIT , $ 0
274
+ GO_ARGS
258
275
MOVD $ __tsan_go_atomic32_fetch_add(SB) , R9
259
276
BL racecallatomic<>(SB)
260
277
MOVW add + 8 (FP) , R0 // convert fetch_add to add_fetch
@@ -264,6 +281,7 @@ TEXT sync∕atomic·AddInt32(SB), NOSPLIT, $0
264
281
RET
265
282
266
283
TEXT sync∕atomic·AddInt64(SB) , NOSPLIT , $ 0
284
+ GO_ARGS
267
285
MOVD $ __tsan_go_atomic64_fetch_add(SB) , R9
268
286
BL racecallatomic<>(SB)
269
287
MOVD add + 8 (FP) , R0 // convert fetch_add to add_fetch
@@ -273,32 +291,40 @@ TEXT sync∕atomic·AddInt64(SB), NOSPLIT, $0
273
291
RET
274
292
275
293
TEXT sync∕atomic·AddUint32(SB) , NOSPLIT , $ 0
294
+ GO_ARGS
276
295
JMP sync∕atomic·AddInt32(SB)
277
296
278
297
TEXT sync∕atomic·AddUint64(SB) , NOSPLIT , $ 0
298
+ GO_ARGS
279
299
JMP sync∕atomic·AddInt64(SB)
280
300
281
301
TEXT sync∕atomic·AddUintptr(SB) , NOSPLIT , $ 0
302
+ GO_ARGS
282
303
JMP sync∕atomic·AddInt64(SB)
283
304
284
305
// CompareAndSwap
285
306
TEXT sync∕atomic·CompareAndSwapInt32(SB) , NOSPLIT , $ 0
307
+ GO_ARGS
286
308
MOVD $ __tsan_go_atomic32_compare_exchange(SB) , R9
287
309
BL racecallatomic<>(SB)
288
310
RET
289
311
290
312
TEXT sync∕atomic·CompareAndSwapInt64(SB) , NOSPLIT , $ 0
313
+ GO_ARGS
291
314
MOVD $ __tsan_go_atomic64_compare_exchange(SB) , R9
292
315
BL racecallatomic<>(SB)
293
316
RET
294
317
295
318
TEXT sync∕atomic·CompareAndSwapUint32(SB) , NOSPLIT , $ 0
319
+ GO_ARGS
296
320
JMP sync∕atomic·CompareAndSwapInt32(SB)
297
321
298
322
TEXT sync∕atomic·CompareAndSwapUint64(SB) , NOSPLIT , $ 0
323
+ GO_ARGS
299
324
JMP sync∕atomic·CompareAndSwapInt64(SB)
300
325
301
326
TEXT sync∕atomic·CompareAndSwapUintptr(SB) , NOSPLIT , $ 0
327
+ GO_ARGS
302
328
JMP sync∕atomic·CompareAndSwapInt64(SB)
303
329
304
330
// Generic atomic operation implementation.
0 commit comments