Test code on maverick (no explicate it block):

mcasadevall@risingsun:/srv/chroots/maverick-armel$ cat test.c
#include <stdio.h>

int _q_value = 10;

inline bool testAndSetOrdered(int expectedValue, int newValue)
{
    register int result;
    asm volatile("0:\n"
                 "ldrex %[result], [%[_q_value]]\n"
                 "eors %[result], %[result], %[expectedValue]\n"
                 "strexeq %[result], %[newValue], [%[_q_value]]\n"
                 "teqeq %[result], #1\n"
                 "beq 0b\n"
                 : [result] "=&r" (result),
                   "+m" (_q_value)
                 : [expectedValue] "r" (expectedValue),
                   [newValue] "r" (newValue),
                   [_q_value] "r" (&_q_value)
                 : "cc", "memory");
    return result == 0;
}

int main() {
        return testAndSetOrdered(1, 1);
}

Relevant disassembly from objdump:


00008378 <_Z17testAndSetOrderedii>:
    8378:       b490            push    {r4, r7}
    837a:       b082            sub     sp, #8
    837c:       af00            add     r7, sp, #0
    837e:       6078            str     r0, [r7, #4]
    8380:       6039            str     r1, [r7, #0]
    8382:       f241 0124       movw    r1, #4132       ; 0x1024
    8386:       f2c0 0101       movt    r1, #1
    838a:       6878            ldr     r0, [r7, #4]
    838c:       f8d7 c000       ldr.w   ip, [r7]
    8390:       f241 0324       movw    r3, #4132       ; 0x1024
    8394:       f2c0 0301       movt    r3, #1
    8398:       f241 0224       movw    r2, #4132       ; 0x1024
    839c:       f2c0 0201       movt    r2, #1
    83a0:       e853 4f00       ldrex   r4, [r3]
    83a4:       4044            eors    r4, r0
    83a6:       bf02            ittt    eq
    83a8:       e843 c400       strexeq r4, ip, [r3]
    83ac:       f094 0f01       teqeq   r4, #1
    83b0:       e7f6            beq.n   83a0 <_Z17testAndSetOrderedii+0x28>
    83b2:       2c00            cmp     r4, #0
    83b4:       bf14            ite     ne
    83b6:       2300            movne   r3, #0
    83b8:       2301            moveq   r3, #1
    83ba:       b2db            uxtb    r3, r3
    83bc:       4618            mov     r0, r3
    83be:       f107 0708       add.w   r7, r7, #8
    83c2:       46bd            mov     sp, r7
    83c4:       bc90            pop     {r4, r7}
    83c6:       4770            bx      lr

-- 
You received this bug notification because you are a member of Kubuntu
Bugs, which is subscribed to qt4-x11 in ubuntu.
https://bugs.launchpad.net/bugs/705689

Title:
  unity-2d-launcher crashes with segfault error on armel (natty only)

-- 
kubuntu-bugs mailing list
kubuntu-b...@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/kubuntu-bugs

Reply via email to