Changeset c64e979
- Timestamp:
- Apr 30, 2019, 2:51:11 PM (6 years ago)
- Branches:
- ADT, arm-eh, ast-experimental, cleanup-dtors, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, pthread-emulation, qualifiedEnum
- Children:
- 98d4df9
- Parents:
- 986e260
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified libcfa/prelude/sync-builtins.cf ¶
r986e260 rc64e979 323 323 _Bool __sync_bool_compare_and_swap_16(volatile unsigned __int128 *, unsigned __int128, unsigned __int128,...); 324 324 #endif 325 forall(dtype T) _Bool __sync_bool_compare_and_swap(T * volatile *, T *, T*, ...); 325 326 326 327 char __sync_val_compare_and_swap(volatile char *, char, char,...); … … 348 349 unsigned __int128 __sync_val_compare_and_swap_16(volatile unsigned __int128 *, unsigned __int128, unsigned __int128,...); 349 350 #endif 351 forall(dtype T) T * __sync_val_compare_and_swap(T * volatile *, T *, T*,...); 350 352 351 353 char __sync_lock_test_and_set(volatile char *, char,...); … … 434 436 #endif 435 437 436 char __atomic_exchange_n(volatile char *, volatile char *, int);438 char __atomic_exchange_n(volatile char *, char, int); 437 439 char __atomic_exchange_1(volatile char *, char, int); 438 440 void __atomic_exchange(volatile char *, volatile char *, volatile char *, int); 439 signed char __atomic_exchange_n(volatile signed char *, volatile signed char *, int);441 signed char __atomic_exchange_n(volatile signed char *, signed char, int); 440 442 signed char __atomic_exchange_1(volatile signed char *, signed char, int); 441 443 void __atomic_exchange(volatile signed char *, volatile signed char *, volatile signed char *, int); 442 unsigned char __atomic_exchange_n(volatile unsigned char *, volatile unsigned char *, int);444 unsigned char __atomic_exchange_n(volatile unsigned char *, unsigned char, int); 443 445 unsigned char __atomic_exchange_1(volatile unsigned char *, unsigned char, int); 444 446 void __atomic_exchange(volatile unsigned char *, volatile unsigned char *, volatile unsigned char *, int); 445 signed short __atomic_exchange_n(volatile signed short *, volatile signed short *, int);447 signed short __atomic_exchange_n(volatile signed short *, signed short, int); 446 448 signed short __atomic_exchange_2(volatile signed short *, signed short, int); 447 449 void __atomic_exchange(volatile signed short *, volatile signed short *, volatile signed short *, int); 448 unsigned short __atomic_exchange_n(volatile unsigned short *, volatile unsigned short *, int);450 unsigned short __atomic_exchange_n(volatile unsigned short *, unsigned short, int); 449 451 unsigned short __atomic_exchange_2(volatile unsigned short *, unsigned short, int); 450 452 void __atomic_exchange(volatile unsigned short *, volatile unsigned short *, volatile unsigned short *, int); 451 signed int __atomic_exchange_n(volatile signed int *, volatile signed int *, int);453 signed int __atomic_exchange_n(volatile signed int *, signed int, int); 452 454 signed int __atomic_exchange_4(volatile signed int *, signed int, int); 453 455 void __atomic_exchange(volatile signed int *, volatile signed int *, volatile signed int *, int); 454 unsigned int __atomic_exchange_n(volatile unsigned int *, volatile unsigned int *, int);456 unsigned int __atomic_exchange_n(volatile unsigned int *, unsigned int, int); 455 457 unsigned int __atomic_exchange_4(volatile unsigned int *, unsigned int, int); 456 458 void __atomic_exchange(volatile unsigned int *, volatile unsigned int *, volatile unsigned int *, int); 457 signed long long int __atomic_exchange_n(volatile signed long long int *, volatile signed long long int *, int);459 signed long long int __atomic_exchange_n(volatile signed long long int *, signed long long int, int); 458 460 signed long long int __atomic_exchange_8(volatile signed long long int *, signed long long int, int); 459 461 void __atomic_exchange(volatile signed long long int *, volatile signed long long int *, volatile signed long long int *, int); 460 unsigned long long int __atomic_exchange_n(volatile unsigned long long int *, volatile unsigned long long int *, int);462 unsigned long long int __atomic_exchange_n(volatile unsigned long long int *, unsigned long long int, int); 461 463 unsigned long long int __atomic_exchange_8(volatile unsigned long long int *, unsigned long long int, int); 462 464 void __atomic_exchange(volatile unsigned long long int *, volatile unsigned long long int *, volatile unsigned long long int *, int); 463 465 #if defined(__SIZEOF_INT128__) 464 signed __int128 __atomic_exchange_n(volatile signed __int128 *, volatile signed __int128 *, int);466 signed __int128 __atomic_exchange_n(volatile signed __int128 *, signed __int128, int); 465 467 signed __int128 __atomic_exchange_16(volatile signed __int128 *, signed __int128, int); 466 468 void __atomic_exchange(volatile signed __int128 *, volatile signed __int128 *, volatile signed __int128 *, int); 467 unsigned __int128 __atomic_exchange_n(volatile unsigned __int128 *, volatile unsigned __int128 *, int);469 unsigned __int128 __atomic_exchange_n(volatile unsigned __int128 *, unsigned __int128, int); 468 470 unsigned __int128 __atomic_exchange_16(volatile unsigned __int128 *, unsigned __int128, int); 469 471 void __atomic_exchange(volatile unsigned __int128 *, volatile unsigned __int128 *, volatile unsigned __int128 *, int); 470 472 #endif 473 forall(dtype T) T * __atomic_exchange_n(T * volatile *, T *, int); 474 forall(dtype T) void __atomic_exchange(T * volatile *, T * volatile *, T * volatile *, int); 471 475 472 476 _Bool __atomic_load_n(const volatile _Bool *, int); … … 507 511 void __atomic_load(const volatile unsigned __int128 *, volatile unsigned __int128 *, int); 508 512 #endif 513 forall(dtype T) T * __atomic_load_n(T * const volatile *, int); 514 forall(dtype T) void __atomic_load(T * const volatile *, T **, int); 509 515 510 516 _Bool __atomic_compare_exchange_n(volatile char *, char *, char, _Bool, int, int); … … 543 549 _Bool __atomic_compare_exchange (volatile unsigned __int128 *, unsigned __int128 *, unsigned __int128 *, _Bool, int, int); 544 550 #endif 551 forall(dtype T) _Bool __atomic_compare_exchange_n (T * volatile *, T **, T*, _Bool, int, int); 552 forall(dtype T) _Bool __atomic_compare_exchange (T * volatile *, T **, T**, _Bool, int, int); 545 553 546 554 void __atomic_store_n(volatile _Bool *, _Bool, int); … … 581 589 void __atomic_store(volatile unsigned __int128 *, unsigned __int128 *, int); 582 590 #endif 591 forall(dtype T) void __atomic_store_n(T * volatile *, T *, int); 592 forall(dtype T) void __atomic_store(T * volatile *, T **, int); 583 593 584 594 char __atomic_add_fetch (volatile char *, char, int); -
TabularUnified tests/builtins/sync.cfa ¶
r986e260 rc64e979 11 11 volatile __int128 * vp16 = 0; __int128 * rp16 = 0; __int128 v16 = 0; 12 12 #endif 13 struct type * volatile * vpp = 0; struct type ** rpp = 0; struct type * vp = 0; 13 14 14 15 { char ret; ret = __sync_fetch_and_add(vp1, v1); } … … 180 181 { _Bool ret; ret = __sync_bool_compare_and_swap_16(vp16, v16,v16); } 181 182 #endif 183 { _Bool ret; ret = __sync_bool_compare_and_swap(vpp, vp, vp); } 182 184 183 185 { char ret; ret = __sync_val_compare_and_swap(vp1, v1, v1); } … … 193 195 { __int128 ret; ret = __sync_val_compare_and_swap_16(vp16, v16,v16); } 194 196 #endif 197 { struct type * ret; ret = __sync_val_compare_and_swap(vpp, vp, vp); } 198 195 199 196 200 { char ret; ret = __sync_lock_test_and_set(vp1, v1); } … … 230 234 { __atomic_clear(vp1, v1); } 231 235 232 { char ret; ret = __atomic_exchange_n(vp1, &v1, __ATOMIC_SEQ_CST); }236 { char ret; ret = __atomic_exchange_n(vp1, v1, __ATOMIC_SEQ_CST); } 233 237 { char ret; ret = __atomic_exchange_1(vp1, v1, __ATOMIC_SEQ_CST); } 234 238 { char ret; __atomic_exchange(vp1, &v1, &ret, __ATOMIC_SEQ_CST); } 235 { short ret; ret = __atomic_exchange_n(vp2, &v2, __ATOMIC_SEQ_CST); }239 { short ret; ret = __atomic_exchange_n(vp2, v2, __ATOMIC_SEQ_CST); } 236 240 { short ret; ret = __atomic_exchange_2(vp2, v2, __ATOMIC_SEQ_CST); } 237 241 { short ret; __atomic_exchange(vp2, &v2, &ret, __ATOMIC_SEQ_CST); } 238 { int ret; ret = __atomic_exchange_n(vp4, &v4, __ATOMIC_SEQ_CST); }242 { int ret; ret = __atomic_exchange_n(vp4, v4, __ATOMIC_SEQ_CST); } 239 243 { int ret; ret = __atomic_exchange_4(vp4, v4, __ATOMIC_SEQ_CST); } 240 244 { int ret; __atomic_exchange(vp4, &v4, &ret, __ATOMIC_SEQ_CST); } 241 { long long int ret; ret = __atomic_exchange_n(vp8, &v8, __ATOMIC_SEQ_CST); }245 { long long int ret; ret = __atomic_exchange_n(vp8, v8, __ATOMIC_SEQ_CST); } 242 246 { long long int ret; ret = __atomic_exchange_8(vp8, v8, __ATOMIC_SEQ_CST); } 243 247 { long long int ret; __atomic_exchange(vp8, &v8, &ret, __ATOMIC_SEQ_CST); } 244 248 #if defined(__SIZEOF_INT128__) 245 { __int128 ret; ret = __atomic_exchange_n(vp16, &v16, __ATOMIC_SEQ_CST); }249 { __int128 ret; ret = __atomic_exchange_n(vp16, v16, __ATOMIC_SEQ_CST); } 246 250 { __int128 ret; ret = __atomic_exchange_16(vp16, v16, __ATOMIC_SEQ_CST); } 247 251 { __int128 ret; __atomic_exchange(vp16, &v16, &ret, __ATOMIC_SEQ_CST); } 248 252 #endif 253 { struct type * ret; ret = __atomic_exchange_n(vpp, vp, __ATOMIC_SEQ_CST); } 254 { struct type * ret; __atomic_exchange(vpp, &vp, &ret, __ATOMIC_SEQ_CST); } 249 255 250 256 { char ret; ret = __atomic_load_n(vp1, __ATOMIC_SEQ_CST); } … … 265 271 { __int128 ret; __atomic_load(vp16, &ret, __ATOMIC_SEQ_CST); } 266 272 #endif 273 { struct type * ret; ret = __atomic_load_n(vpp, __ATOMIC_SEQ_CST); } 274 { struct type * ret; __atomic_load(vpp, &ret, __ATOMIC_SEQ_CST); } 267 275 268 276 { _Bool ret; ret = __atomic_compare_exchange_n(vp1, rp1, v1, false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); } … … 283 291 { _Bool ret; ret = __atomic_compare_exchange(vp16, rp16, &v16, 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); } 284 292 #endif 293 { _Bool ret; ret = __atomic_compare_exchange_n(vpp, rpp, vp, false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); } 294 { _Bool ret; ret = __atomic_compare_exchange(vpp, rpp, &vp, false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); } 285 295 286 296 { __atomic_store_n(vp1, v1, __ATOMIC_SEQ_CST); } … … 301 311 { __atomic_store(vp16, &v16, __ATOMIC_SEQ_CST); } 302 312 #endif 313 { __atomic_store_n(vpp, vp, __ATOMIC_SEQ_CST); } 314 { __atomic_store(vpp, &vp, __ATOMIC_SEQ_CST); } 303 315 304 316 { char ret; ret = __atomic_add_fetch(vp1, v1, __ATOMIC_SEQ_CST); }
Note: See TracChangeset
for help on using the changeset viewer.