|
@@ -633,6 +633,7 @@ cas_action:
|
|
|
sub,<> %r28, %r25, %r0
|
|
|
2: stw,ma %r24, 0(%r26)
|
|
|
/* Free lock */
|
|
|
+ sync
|
|
|
stw,ma %r20, 0(%sr2,%r20)
|
|
|
#if ENABLE_LWS_DEBUG
|
|
|
/* Clear thread register indicator */
|
|
@@ -647,6 +648,7 @@ cas_action:
|
|
|
3:
|
|
|
/* Error occurred on load or store */
|
|
|
/* Free lock */
|
|
|
+ sync
|
|
|
stw %r20, 0(%sr2,%r20)
|
|
|
#if ENABLE_LWS_DEBUG
|
|
|
stw %r0, 4(%sr2,%r20)
|
|
@@ -848,6 +850,7 @@ cas2_action:
|
|
|
|
|
|
cas2_end:
|
|
|
/* Free lock */
|
|
|
+ sync
|
|
|
stw,ma %r20, 0(%sr2,%r20)
|
|
|
/* Enable interrupts */
|
|
|
ssm PSW_SM_I, %r0
|
|
@@ -858,6 +861,7 @@ cas2_end:
|
|
|
22:
|
|
|
/* Error occurred on load or store */
|
|
|
/* Free lock */
|
|
|
+ sync
|
|
|
stw %r20, 0(%sr2,%r20)
|
|
|
ssm PSW_SM_I, %r0
|
|
|
ldo 1(%r0),%r28
|