Problem is because the input is invalid . We just end up generating

ldrex r0, [r1, #-24] .


    asm volatile(
        "movw %1, #1\n\t"
        "ldrex %2, %0\n\t"
        "cmp %3, %2\n\t"
        "bne.n 0f\n\t"
        "strex %1, %4, %0\n\t"
        "0:"
        : "+m"(*location), "=&r"(result), "=&r"(tmp)
        : "r"(expected), "r"(newValue)
        : "memory");


Eh - you can't use m for a constraint to an address in ldrex . Try "+Q" instead.
regards,
Ramana

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1045879

Title:
  Error: bad immediate value for offset

To manage notifications about this bug go to:
https://bugs.launchpad.net/gcc/+bug/1045879/+subscriptions

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

Reply via email to