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:
Andrew Turner 2015-07-19 16:55:47 +00:00
parent f703e79990
commit 70888b7ed5
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=285694

View File

@ -558,7 +558,7 @@ atomic_store_64(volatile uint64_t *p, uint64_t val)
__asm __volatile(
"1: \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"
" it ne \n"
" bne 1b \n"