[LLVMdev] Apple clang 4.2 based on llvm 3.2 produces a wrong "instruction requires:arm-mode"
Joe Abbey
jabbey at arxan.com
Wed Jun 12 06:05:50 PDT 2013
There is also this forum:
https://devforums.apple.com/community/tools/llvm
Cheers,
Joe
On Jun 12, 2013, at 9:02 AM, Joe Abbey <jabbey at arxan.com<mailto:jabbey at arxan.com>> wrote:
Moshe,
You're more than likely going to get a better response from
https://devforums.apple.com/community/tools/xcode
llvmdev is a mailing list for the LLVM project which is separate from Xcode development.
Cheers,
Joe
On Jun 12, 2013, at 8:51 AM, Moshe Kravchik <mkravchik at hotmail.com<mailto:mkravchik at hotmail.com>> wrote:
Hi,
I've got an assembly file which used to compile with previous clang versions. However with 4.2 I get the following error:
admin$ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch armv7 ./src/asm.s -o asm.o
./src/asm.s:30:5: error: instruction requires a CPU feature not currently enabled
add r2, pc, r2
According to ARM <http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0489c/Cihcjfjg.html> specification:
[http://infocenter.arm.com/help/topic/com.arm.doc.common/images/triangle_down.png]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 word-aligned.
*
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!
_______________________________________________
LLVM Developers mailing list
LLVMdev at cs.uiuc.edu<mailto:LLVMdev at cs.uiuc.edu> http://llvm.cs.uiuc.edu<http://llvm.cs.uiuc.edu/>
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130612/4322d471/attachment.html>
More information about the llvm-dev
mailing list