[ARM] Set a non-conflicting comment character for assembly in MSVC mode
authorRenato Golin <renato.golin@linaro.org>
Wed, 27 Jul 2016 12:31:58 +0000 (12:31 +0000)
committerRenato Golin <renato.golin@linaro.org>
Wed, 27 Jul 2016 12:31:58 +0000 (12:31 +0000)
commit80e58869f89ac3df946383762920ab5ebc71ac80
treec7a5bb9bc22cdb88ba068bc77b1fd71713c46c92
parentb9edb5c9b084017f2691b82175ada266dc189dec
[ARM] Set a non-conflicting comment character for assembly in MSVC mode

Currently, for ARMCOFFMCAsmInfoMicrosoft, no comment character is set, thus the
idefault, '#', is used.

The hash character doesn't work as comment character in ARM assembly, since '#'
is used for immediate values.

The comment character is set to ';', which is the comment character used by MS
armasm.exe. (The microsoft armasm.exe uses a different directive syntax than
what LLVM currently supports though, similar to ARM's armasm.)

This allows inline assembly with immediate constants to be built (and brings the
assembly output from clang -S closer to being possible to assemble).

A test is added that verifies that ';' is correctly interpreted as comments in
this mode, and verifies that assembling code that includes literal constants
with a '#' works.

Patch by Martin Storsjö.

llvm-svn: 276859
llvm/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp
llvm/test/MC/ARM/Windows/literals-comments.s [new file with mode: 0644]