Comment 13 for bug 490371

Revision history for this message
Scott Kitterman (kitterman) wrote : Re: [Bug 490371] Re: Atomic operations not safe for ARMv7, Thumb-2 and multicore

Provide Thumb2 support on armel - See LP Bug #673085 for details
 Index: qt-everywhere-opensource-src-4.7.1/src/corelib/arch/qatomic_armv6.h
 ===================================================================
 --- qt-everywhere-opensource-src-4.7.1.orig/src/corelib/arch/qatomic_armv6.h
2010-11-06 01:55:18.000000000 +0000
+++ qt-everywhere-opensource-src-4.7.1/src/corelib/arch/qatomic_armv6.h
2010-11-16 17:58:27.831286420 +0000
@@ -144,6 +144,7 @@
     asm volatile("0:\n"
                  "ldrex %[result], [%[_q_value]]\n"
                  "eors %[result], %[result], %[expectedValue]\n"
+ "itt eq\n"
                  "strexeq %[result], %[newValue], [%[_q_value]]\n"
                  "teqeq %[result], #1\n"
                  "beq 0b\n"
@@ -202,6 +203,7 @@
     asm volatile("0:\n"
                  "ldrex %[result], [%[_q_value]]\n"
                  "eors %[result], %[result], %[expectedValue]\n"
+ "itt eq\n"
                  "strexeq %[result], %[newValue], [%[_q_value]]\n"
                  "teqeq %[result], #1\n"
                  "beq 0b\n"

I'm neither the author nor the uploader of the patch, so I'm not sure who is
sending this upstream, but I agree someone should.