[LLVMbugs] [Bug 16315] New: Apple clang 4.2 based on llvm 3.2 produces a wrong "instruction requires:arm-mode" ‏

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Wed Jun 12 23:17:17 PDT 2013


            Bug ID: 16315
           Summary: Apple clang 4.2 based on llvm 3.2 produces a wrong
                    "instruction requires:arm-mode"‏
           Product: clang
           Version: 3.2
          Hardware: Macintosh
                OS: MacOS X
            Status: NEW
          Severity: normal
          Priority: P
         Component: Driver
          Assignee: unassignedclangbugs at nondot.org
          Reporter: mkravchik at hotmail.com
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified

I've encountered this bug with Apple's clang based on llvm, but the bug happens
with the llvm's clang as well.
I've got an assembly file which used to compile with previous clang versions.
However with 4.2 I get the following error:

-arch armv7 ./src/asm.s  -o asm.o

./src/asm.s:30:5: error: instruction requires a CPU feature not currently

    add r2, pc, r2

To reproduce the bug just compile a thumb assembly function with this

According to ARM specification:

Use of PC and SP in Thumb instructions
In most of these instructions, you cannot use PC (R15) for Rd, or any operand.

The exceptions are:

you can use PC for Rn in 32-bit Thumb ADD and SUB instructions, with a constant
Operand2 value in the range 0-4095, and no S suffix. These instructions are
useful for generating PC-relative addresses. Bit[1] of the PC value reads as 0
in this case, so that the base address for the calculation is always

you can use PC in 16-bit Thumb ADD{cond} Rd, Rd, Rm instructions, where both
registers cannot be PC.

I indeed specified that this line belongs to the Thumb function. But the clang
still produces this error.

When I compile this file directly with "as" it compiles correctly.

Please help!

You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20130613/33c13934/attachment.html>

More information about the llvm-bugs mailing list