Patch from ARM for assembly:
http://www.open-mpi.org/community/lists/devel/2011/08/9586.php This commit was SVN r24979.
Этот коммит содержится в:
родитель
45ea375531
Коммит
f539b20a8f
@ -73,6 +73,7 @@ START_FUNC(opal_atomic_cmpset_64)
|
||||
LSYM(7)
|
||||
ldrexd r4, r5, [r0]
|
||||
cmp r4, r2
|
||||
it eq
|
||||
cmpeq r5, r3
|
||||
bne REFLSYM(8)
|
||||
strexd r1, r6, r7, [r0]
|
||||
@ -91,6 +92,7 @@ START_FUNC(opal_atomic_cmpset_acq_64)
|
||||
LSYM(9)
|
||||
ldrexd r4, r5, [r0]
|
||||
cmp r4, r2
|
||||
it eq
|
||||
cmpeq r5, r3
|
||||
bne REFLSYM(10)
|
||||
strexd r1, r6, r7, [r0]
|
||||
@ -111,6 +113,7 @@ START_FUNC(opal_atomic_cmpset_rel_64)
|
||||
LSYM(11)
|
||||
ldrexd r4, r5, [r0]
|
||||
cmp r4, r2
|
||||
it eq
|
||||
cmpeq r5, r3
|
||||
bne REFLSYM(12)
|
||||
dmb
|
||||
|
@ -142,6 +142,7 @@ static inline int opal_atomic_cmpset_64(volatile int64_t *addr,
|
||||
__asm__ __volatile__ (
|
||||
"1: ldrexd %0, %H0, [%2] \n"
|
||||
" cmp %0, %3 \n"
|
||||
" it eq \n"
|
||||
" cmpeq %H0, %H3 \n"
|
||||
" bne 2f \n"
|
||||
" strexd %1, %4, %H4, [%2] \n"
|
||||
|
Загрузка…
Ссылка в новой задаче
Block a user