[LLVMdev] error: instruction requires: thumb2

Lei Zhao leizhao833 at gmail.com
Thu Aug 16 12:55:54 PDT 2012


Hi Everybody,

  I recently did a cross-compiling using clang (built with host=x86, target=arm) with the following command:

  > clang -march=armv7-a -mfloat-abi=soft -ccc-host-triple arm-none-linux-gnueabi -integrated-as main.c -o main.o -c

and get error message:

-------------------------------------------------------
main.c:9:9: error: instruction requires: thumb2
        "ldrex %[oldValue], [%[ptr], #0]\n" // oldValue = *ptr
        ^
<inline asm>:1:2: note: instantiated into assembly here
        ldrex r6, [r4, #0]
        ^
main.c:11:3: error: instruction requires: thumb2
        "strexeq %[failed], %[newValue], [%[ptr], #0]\n" 
         ^
<inline asm>:3:1: note: instantiated into assembly here
strexeq r5, lr, [r4, #0]
^
2 errors generated.
-------------------------------------------------------

  In the main.c, some ARM assembly are embedded which contains instructions ldrex, strexeq. I don't know what the message suggests since the cpu specified does support thumb2. Could someone help? Thanks.

- Lei






More information about the llvm-dev mailing list