︙ | | | ︙ | |
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
|
__asm__ __volatile__ (
"0:\n\t"
"mov{l} { %2, %0 | %0, %2 }\n\t"
"mov{l} { %0, %%eax | eax, %0 }\n\t"
"or{l} { %1, %0 | %0, %1 }\n\t"
"lock\n\t"
"cmpxchg{l} { %0, %2 | %2, %0 }\n\t"
"jne { | short } 0b"
: "=&r"(i)
: "r"(i), "m"(*p)
: "eax", "cc"
);
return i;
}
|
|
|
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
|
__asm__ __volatile__ (
"0:\n\t"
"mov{l} { %2, %0 | %0, %2 }\n\t"
"mov{l} { %0, %%eax | eax, %0 }\n\t"
"or{l} { %1, %0 | %0, %1 }\n\t"
"lock\n\t"
"cmpxchg{l} { %0, %2 | %2, %0 }\n\t"
"jne 0b"
: "=&r"(i)
: "r"(i), "m"(*p)
: "eax", "cc"
);
return i;
}
|
︙ | | | ︙ | |
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
|
__asm__ __volatile__ (
"0:\n\t"
"mov{q} { %2, %0 | %0, %2 }\n\t"
"mov{q} { %0, %%rax | rax, %0 }\n\t"
"or{q} { %1, %0 | %0, %1 }\n\t"
"lock\n\t"
"cmpxchg{q} { %0, %2 | %2, %0 }\n\t"
"jne { | short } 0b"
: "=&r"(i)
: "r"(i), "m"(*p)
: "rax", "cc"
);
#endif
else
abort();
|
|
|
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
|
__asm__ __volatile__ (
"0:\n\t"
"mov{q} { %2, %0 | %0, %2 }\n\t"
"mov{q} { %0, %%rax | rax, %0 }\n\t"
"or{q} { %1, %0 | %0, %1 }\n\t"
"lock\n\t"
"cmpxchg{q} { %0, %2 | %2, %0 }\n\t"
"jne 0b"
: "=&r"(i)
: "r"(i), "m"(*p)
: "rax", "cc"
);
#endif
else
abort();
|
︙ | | | ︙ | |
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
|
__asm__ __volatile__ (
"0:\n\t"
"mov{l} { %2, %0 | %0, %2 }\n\t"
"mov{l} { %0, %%eax | eax, %0 }\n\t"
"and{l} { %1, %0 | %0, %1 }\n\t"
"lock\n\t"
"cmpxchg{l} { %0, %2 | %2, %0 }\n\t"
"jne { | short } 0b"
: "=&r"(i)
: "r"(i), "m"(*p)
: "eax", "cc"
);
return i;
}
|
|
|
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
|
__asm__ __volatile__ (
"0:\n\t"
"mov{l} { %2, %0 | %0, %2 }\n\t"
"mov{l} { %0, %%eax | eax, %0 }\n\t"
"and{l} { %1, %0 | %0, %1 }\n\t"
"lock\n\t"
"cmpxchg{l} { %0, %2 | %2, %0 }\n\t"
"jne 0b"
: "=&r"(i)
: "r"(i), "m"(*p)
: "eax", "cc"
);
return i;
}
|
︙ | | | ︙ | |
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
|
__asm__ __volatile__ (
"0:\n\t"
"mov{q} { %2, %0 | %0, %2 }\n\t"
"mov{q} { %0, %%rax | rax, %0 }\n\t"
"and{q} { %1, %0 | %0, %1 }\n\t"
"lock\n\t"
"cmpxchg{q} { %0, %2 | %2, %0 }\n\t"
"jne { | short } 0b"
: "=&r"(i)
: "r"(i), "m"(*p)
: "rax", "cc"
);
#endif
else
abort();
|
|
|
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
|
__asm__ __volatile__ (
"0:\n\t"
"mov{q} { %2, %0 | %0, %2 }\n\t"
"mov{q} { %0, %%rax | rax, %0 }\n\t"
"and{q} { %1, %0 | %0, %1 }\n\t"
"lock\n\t"
"cmpxchg{q} { %0, %2 | %2, %0 }\n\t"
"jne 0b"
: "=&r"(i)
: "r"(i), "m"(*p)
: "rax", "cc"
);
#endif
else
abort();
|
︙ | | | ︙ | |
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
|
__asm__ __volatile__ (
"0:\n\t"
"mov{l} { %2, %0 | %0, %2 }\n\t"
"mov{l} { %0, %%eax | eax, %0 }\n\t"
"xor{l} { %1, %0 | %0, %1 }\n\t"
"lock\n\t"
"cmpxchg{l} { %0, %2 | %2, %0 }\n\t"
"jne { | short } 0b"
: "=&r"(i)
: "r"(i), "m"(*p)
: "eax", "cc"
);
return i;
}
|
|
|
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
|
__asm__ __volatile__ (
"0:\n\t"
"mov{l} { %2, %0 | %0, %2 }\n\t"
"mov{l} { %0, %%eax | eax, %0 }\n\t"
"xor{l} { %1, %0 | %0, %1 }\n\t"
"lock\n\t"
"cmpxchg{l} { %0, %2 | %2, %0 }\n\t"
"jne 0b"
: "=&r"(i)
: "r"(i), "m"(*p)
: "eax", "cc"
);
return i;
}
|
︙ | | | ︙ | |
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
|
__asm__ __volatile__ (
"0:\n\t"
"mov{q} { %2, %0 | %0, %2 }\n\t"
"mov{q} { %0, %%rax | rax, %0 }\n\t"
"xor{q} { %1, %0 | %0, %1 }\n\t"
"lock\n\t"
"cmpxchg{q} { %0, %2 | %2, %0 }\n\t"
"jne { | short } 0b"
: "=&r"(i)
: "r"(i), "m"(*p)
: "rax", "cc"
);
#endif
else
abort();
|
|
|
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
|
__asm__ __volatile__ (
"0:\n\t"
"mov{q} { %2, %0 | %0, %2 }\n\t"
"mov{q} { %0, %%rax | rax, %0 }\n\t"
"xor{q} { %1, %0 | %0, %1 }\n\t"
"lock\n\t"
"cmpxchg{q} { %0, %2 | %2, %0 }\n\t"
"jne 0b"
: "=&r"(i)
: "r"(i), "m"(*p)
: "rax", "cc"
);
#endif
else
abort();
|
︙ | | | ︙ | |