On 24 November 2010 21:18, Ken Werner <[email protected]> wrote:
> On Wednesday, November 24, 2010 8:29:35 pm Peter Maydell wrote:
>>         strex   r0, r2, [r3] # store r2 (new) into  memory pointed to
>> by r3 (mem)

(Apologies for the linewrap damage, by the way -- blame google mail.)

> Initially I thought r2 could be used for the result but strex doesn't allow
> the return register to be the same as the store register.

You can't put the result r2 anyway because you're going to need r2's
current value again if the strex fails and you have to loop back to retry
the load...

(I think the push/pop is unavoidable for the sync_fetch_and_foo where
foo is a non-reversible operation like or/and.)

-- PMM

_______________________________________________
linaro-toolchain mailing list
[email protected]
http://lists.linaro.org/mailman/listinfo/linaro-toolchain

Reply via email to