[LLVMdev] ARM assembler bug on LLVM 3.5

Renato Golin renato.golin at linaro.org
Mon Sep 22 16:46:21 PDT 2014


On 22 September 2014 15:48, Mikulas Patocka
<mikulas at artax.karlin.mff.cuni.cz> wrote:
> What's the purpose of rejecting "sdiv" and other instructions?

Warning the user that some of the options are not consistent. Handling
the .cpu in inline assembly is not always a good thing
(https://sourceware.org/ml/binutils/2014-08/msg00119.html) and a
compile-time warning system should be used. It's not because GAS does
it that it's right.


> I have tried it and it doesn't work (clang 3.5 in Ubuntu Trusty on ARM).
> With -no-integrated-as, clang uses the system assembler, but it parses the
> asm string nonetheless and reports an error on sdiv instruction.

Ubuntu 3.5 is not the same as LLVM 3.5, unfortunately. I've discussed
this with Debian packagers and we'll have to fix this there.

It's not because the (x86) host assembler doesn't "recognize" the
(arm) target's instruction that we should just allow any instruction
in inline asm. This has been discussed on both LLVM and GCC lists
extensively and the LLVM position is that inline assembly validation
is a good thing. In this case, you're not being kosher and the
assembler is complaining, which is good and I don't think we should
change that.

cheers,
--renato



More information about the llvm-dev mailing list