I see Hazard3 supports some single instruction atomic read-modify-write operations, such as AMOSWAP.W and AMOADD.W. I think Cortex-M33 lacks the corresponding ARM instructions (which were added in ARM v8.1a), though it does support such atomic operations with multiple instruction sequences using LDREX, STREX and similar. I wonder then if Hazard3 will have a performance advantage for lock-free code, particularly when there is high contention.
Statistics: Posted by alastairpatrick — Sat Aug 10, 2024 5:37 pm