[arm] Implement eabi_attribute, cpu, and fpu directives.
authorLogan Chien <tzuhsiang.chien@gmail.com>
Mon, 28 Oct 2013 17:51:12 +0000 (17:51 +0000)
committerLogan Chien <tzuhsiang.chien@gmail.com>
Mon, 28 Oct 2013 17:51:12 +0000 (17:51 +0000)
commit23125d02d929758e1b0dbb30b13f1deff7a5ea4b
tree4c77dc2e41386fde9ae2f6529488c71689c50616
parent790b973f80c8fd41f0908536409538336242f74d
[arm] Implement eabi_attribute, cpu, and fpu directives.

This commit allows the ARM integrated assembler to parse
and assemble the code with .eabi_attribute, .cpu, and
.fpu directives.

To implement the feature, this commit moves the code from
AttrEmitter to ARMTargetStreamers, and several new test
cases related to cortex-m4, cortex-r5, and cortex-a15 are
added.

Besides, this commit also change the Subtarget->isFPOnlySP()
to Subtarget->hasD16() to match the usage of .fpu directive.

This commit changes the test cases:

* Several .eabi_attribute directives in
  2010-09-29-mc-asm-header-test.ll are removed because the .fpu
  directive already cover the functionality.

* In the Cortex-A15 test case, the value for
  Tag_Advanced_SIMD_arch has be changed from 1 to 2,
  which is more precise.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193524 91177308-0d34-0410-b5e6-96231b3b80d8
14 files changed:
include/llvm/MC/MCStreamer.h
lib/Target/ARM/ARM.td
lib/Target/ARM/ARMAsmPrinter.cpp
lib/Target/ARM/ARMBuildAttrs.h
lib/Target/ARM/ARMFPUName.def [new file with mode: 0644]
lib/Target/ARM/ARMFPUName.h [new file with mode: 0644]
lib/Target/ARM/AsmParser/ARMAsmParser.cpp
lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp
test/CodeGen/ARM/2010-09-29-mc-asm-header-test.ll
test/CodeGen/ARM/2010-10-19-mc-elf-objheader.ll
test/MC/ARM/directive-cpu.s [new file with mode: 0644]
test/MC/ARM/directive-eabi_attribute.s [new file with mode: 0644]
test/MC/ARM/directive-fpu-multiple.s [new file with mode: 0644]
test/MC/ARM/directive-fpu.s [new file with mode: 0644]