Fix atomic_store_64, it should write the value passed in, not the value
read by the load. Pointy Hat: andrew
This commit is contained in:
parent
f703e79990
commit
70888b7ed5
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=285694
@ -558,7 +558,7 @@ atomic_store_64(volatile uint64_t *p, uint64_t val)
|
|||||||
__asm __volatile(
|
__asm __volatile(
|
||||||
"1: \n"
|
"1: \n"
|
||||||
" ldrexd %Q[tmp], %R[tmp], [%[ptr]] \n"
|
" ldrexd %Q[tmp], %R[tmp], [%[ptr]] \n"
|
||||||
" strexd %[exf], %Q[tmp], %R[tmp], [%[ptr]] \n"
|
" strexd %[exf], %Q[val], %R[val], [%[ptr]] \n"
|
||||||
" teq %[exf], #0 \n"
|
" teq %[exf], #0 \n"
|
||||||
" it ne \n"
|
" it ne \n"
|
||||||
" bne 1b \n"
|
" bne 1b \n"
|
||||||
|
Loading…
Reference in New Issue
Block a user