Sign in
gem5
/
arm
/
linux
/
ea344f6a507f8ce92bf1e10f044c6cfc67e4d22b
/
.
/
tools
/
build
/
feature
/
test-sync-compare-and-swap.c
blob: c34d4ca4af56eb34e5d9b90aa2cabe1d4c844bac [
file
] [
log
] [
blame
]
#include
<stdint.h>
volatile
uint64_t
x
;
int
main
(
int
argc
,
char
*
argv
[])
{
uint64_t
old
,
new
=
argc
;
argv
=
argv
;
do
{
old
=
__sync_val_compare_and_swap
(&
x
,
0
,
0
);
}
while
(!
__sync_bool_compare_and_swap
(&
x
,
old
,
new
));
return
old
==
new
;
}