On 11/01/2011 12:50 AM, Richard Henderson wrote:
         * optabs.c (expand_atomic_store): Use create_fixed_operand for
         atomic_store optab.  Don't try to fall back to sync_lock_release.

---
The create_fixed_operand thinko is obvious.  The sync_lock_release is
more subtle.  The target is allowed to support only storing 0/1 with
the test_and_set/lock_release pair, and it's allowed to support that
in non-obvious ways.  We don't want to get involved in that.

well, the reason for it was so that __atomic_store can be used as a replacement for sync_lock_release on such targets...

ie, we dont need a different builtin for a target which has only a boolean test and set and clear. Is there harm in allowing that as a fall back? Is there a way of detecting sync_lock_release with those limitations? ie, if there is a lock_release and no compare_and_swap on the target... we could issue it.

Im just concerned that we now lose the ability to implement the boolean class test_and_set and clear now on such a target...

Andrew


Reply via email to