llvm-6502/test/MC/ARM
David Peixotto 0fc8c68b11 Add support for parsing ARM symbol variants on ELF targets
ARM symbol variants are written with parens instead of @ like this:

  .word __GLOBAL_I_a(target1)

This commit adds support for parsing these symbol variants in
expressions. We introduce a new flag to MCAsmInfo that indicates the
parser should use parens to parse the symbol variant. The expression
parser is modified to look for symbol variants using parens instead
of @ when the corresponding MCAsmInfo flag is true.

The MCAsmInfo parens flag is enabled only for ARM on ELF.

By adding this flag to MCAsmInfo, we are able to get rid of
redundant ARM-specific symbol variants and use the generic variants
instead (e.g. VK_GOT instead of VK_ARM_GOT). We use the new
UseParensForSymbolVariant attribute in MCAsmInfo to correctly print
the symbol variants for arm.

To achive this we need to keep a handle to the MCAsmInfo in the
MCSymbolRefExpr class that we can check when printing the symbol
variant.

Updated Tests:
  Changed case of symbol variant to match the generic kind.
  test/CodeGen/ARM/tls-models.ll
  test/CodeGen/ARM/tls1.ll
  test/CodeGen/ARM/tls2.ll
  test/CodeGen/Thumb2/tls1.ll
  test/CodeGen/Thumb2/tls2.ll

PR18080


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196424 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-04 22:43:20 +00:00
..
AlignedBundling [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
2010-11-30-reloc-movt.s Convert another llc -filetype=obj test. 2013-10-28 21:12:15 +00:00
2013-03-18-Br-to-label-named-like-reg.s
align_arm_2_thumb.s ARM integrated assembler generates incorrect nop opcode 2013-11-25 19:11:13 +00:00
align_thumb_2_arm.s ARM integrated assembler generates incorrect nop opcode 2013-11-25 19:11:13 +00:00
arm_addrmode2.s
arm_addrmode3.s
arm_fixups.s
arm_instructions.s
arm_word_directive.s
arm-aliases.s
arm-arithmetic-aliases.s
arm-it-block.s
arm-ldrd.s [ARM] Use FileCheck instead of grep for ARM LDRD negative tests. 2013-09-30 17:31:26 +00:00
arm-memory-instructions.s ARM: Teach assembler to enforce constraints for ARM LDRD destination register operands. 2013-09-27 13:28:17 +00:00
arm-shift-encoding.s
arm-thumb-cpus-default.s Rework r183728, suppress assert(0) for now. Its behavior depends on assertions on win32 hosts. 2013-06-11 10:01:42 +00:00
arm-thumb-cpus.s Prefix failing commands with not to make clear they are expected to fail. 2013-07-03 16:41:29 +00:00
arm-thumb-trustzone.s Prefix failing commands with not to make clear they are expected to fail. 2013-07-03 16:41:29 +00:00
arm-trustzone.s Prefix failing commands with not to make clear they are expected to fail. 2013-07-03 16:41:29 +00:00
basic-arm-instructions-v8.s Test cleanup for v8 instructions 2013-10-29 14:16:09 +00:00
basic-arm-instructions.s [ARM] In ARMAsmParser, MatchCoprocessorOperandName() permitted p10 and p11 as operands for coprocessor instructions, resulting in encodings that clash with FP/NEON instruction encodings 2013-11-08 09:16:31 +00:00
basic-thumb2-instructions-v8.s Test cleanup for v8 instructions 2013-10-29 14:16:09 +00:00
basic-thumb2-instructions.s [ARM] In ARMAsmParser, MatchCoprocessorOperandName() permitted p10 and p11 as operands for coprocessor instructions, resulting in encodings that clash with FP/NEON instruction encodings 2013-11-08 09:16:31 +00:00
basic-thumb-instructions.s This fixes the Thumb2 CPS assembly syntax. 2013-08-09 13:52:32 +00:00
bracket-darwin.s
bracket-exprs.s
crc32-thumb.s ARM: Add subtarget feature for CRC 2013-10-29 09:47:35 +00:00
crc32.s ARM: Add subtarget feature for CRC 2013-10-29 09:47:35 +00:00
cxx-global-constructor.ll
data-in-code.ll Fix ARM FastISel tests, as a first step to enabling ARM FastISel 2013-05-14 16:26:38 +00:00
deprecated-v8.s [ARM] Warn on deprecated IT blocks in v8 AArch32 assembly. 2013-10-03 09:31:51 +00:00
diagnostics-noneon.s ARM: mark various aliases with their architecture requirements. 2013-10-24 12:22:58 +00:00
diagnostics.s ARM: diagnose invalid system LDM/STM 2013-11-12 21:32:41 +00:00
directive-cpu.s [arm] Implement eabi_attribute, cpu, and fpu directives. 2013-10-28 17:51:12 +00:00
directive-eabi_attribute.s [arm] Implement eabi_attribute, cpu, and fpu directives. 2013-10-28 17:51:12 +00:00
directive-fpu-multiple.s [arm] Implement eabi_attribute, cpu, and fpu directives. 2013-10-28 17:51:12 +00:00
directive-fpu.s [arm] Implement eabi_attribute, cpu, and fpu directives. 2013-10-28 17:51:12 +00:00
dot-req.s
eh-compact-pr0.s Change how we iterate over relocations on ELF. 2013-05-30 03:05:14 +00:00
eh-compact-pr1.s Fix ARM EHABI compact model 1 and 2 without handlerdata. 2013-07-02 12:43:27 +00:00
eh-directive-cantunwind-diagnostics.s CEHCK->CHECK typo fix. 2013-07-08 21:47:33 +00:00
eh-directive-cantunwind.s Change how we iterate over relocations on ELF. 2013-05-30 03:05:14 +00:00
eh-directive-fnend-diagnostics.s Prefix failing commands with not to make clear they are expected to fail. 2013-07-03 16:41:29 +00:00
eh-directive-fnstart-diagnostics.s Prefix failing commands with not to make clear they are expected to fail. 2013-07-03 16:41:29 +00:00
eh-directive-handlerdata.s Change how we iterate over relocations on ELF. 2013-05-30 03:05:14 +00:00
eh-directive-integrated-test.s Fix ARM unwind opcode assembler in several cases. 2013-06-09 12:22:30 +00:00
eh-directive-multiple-offsets.s Fix ARM unwind opcode assembler in several cases. 2013-06-09 12:22:30 +00:00
eh-directive-pad-diagnostics.s Implement AsmParser for ARM unwind directives. 2013-05-10 16:17:24 +00:00
eh-directive-pad.s Fix ARM unwind opcode assembler in several cases. 2013-06-09 12:22:30 +00:00
eh-directive-personality-diagnostics.s Implement AsmParser for ARM unwind directives. 2013-05-10 16:17:24 +00:00
eh-directive-personality.s Change how we iterate over relocations on ELF. 2013-05-30 03:05:14 +00:00
eh-directive-save-diagnoatics.s Implement AsmParser for ARM unwind directives. 2013-05-10 16:17:24 +00:00
eh-directive-save.s Fix ARM unwind opcode assembler in several cases. 2013-06-09 12:22:30 +00:00
eh-directive-section-comdat.s Implement AsmParser for ARM unwind directives. 2013-05-10 16:17:24 +00:00
eh-directive-section-multiple-func.s Change how we iterate over relocations on ELF. 2013-05-30 03:05:14 +00:00
eh-directive-section.s Change how we iterate over relocations on ELF. 2013-05-30 03:05:14 +00:00
eh-directive-setfp-diagnostics.s Implement AsmParser for ARM unwind directives. 2013-05-10 16:17:24 +00:00
eh-directive-setfp.s Fix ARM unwind opcode assembler in several cases. 2013-06-09 12:22:30 +00:00
eh-directive-text-section-multiple-func.s Change how we iterate over relocations on ELF. 2013-05-30 03:05:14 +00:00
eh-directive-text-section.s Change how we iterate over relocations on ELF. 2013-05-30 03:05:14 +00:00
eh-directive-vsave-diagnostics.s Implement AsmParser for ARM unwind directives. 2013-05-10 16:17:24 +00:00
eh-directive-vsave.s Implement AsmParser for ARM unwind directives. 2013-05-10 16:17:24 +00:00
elf-eflags-eabi.s
elf-jump24-fixup.s
elf-movt.s Change how we iterate over relocations on ELF. 2013-05-30 03:05:14 +00:00
elf-reloc-01.ll Change how we iterate over relocations on ELF. 2013-05-30 03:05:14 +00:00
elf-reloc-02.ll Change how we iterate over relocations on ELF. 2013-05-30 03:05:14 +00:00
elf-reloc-03.ll Change how we iterate over relocations on ELF. 2013-05-30 03:05:14 +00:00
elf-reloc-condcall.s Change how we iterate over relocations on ELF. 2013-05-30 03:05:14 +00:00
elf-thumbfunc-reloc.ll Change how we iterate over relocations on ELF. 2013-05-30 03:05:14 +00:00
elf-thumbfunc-reloc.s ARM: diagnose ARM/Thumb assembly switches on CPUs only supporting one. 2013-06-10 23:20:58 +00:00
elf-thumbfunc.s ARM: allow .thumb_func to be separated from symbol definition 2013-10-25 12:49:50 +00:00
fp-armv8.s [ARM] Add support for MVFR2 which is new in ARMv8 2013-11-11 19:56:13 +00:00
full_line_comment.s
hilo-16bit-relocations.s
idiv.s Add hardware division as a default feature on Cortex-A15. Also add test cases to check this, and change diagnostics for the hwdiv-arm feature to something useful. 2013-10-18 10:18:40 +00:00
invalid-barrier.s Test cleanup for v8 instructions 2013-10-29 14:16:09 +00:00
invalid-crc32.s 'svn add' the test cases. 2013-09-18 09:46:49 +00:00
invalid-fp-armv8.s Add subtarget feature support for Cortex-A53 2013-10-14 13:16:57 +00:00
invalid-hint-arm.s Make ARM hint ranges consistent, and add tests for these ranges 2013-10-23 10:14:40 +00:00
invalid-hint-thumb.s Make ARM hint ranges consistent, and add tests for these ranges 2013-10-23 10:14:40 +00:00
invalid-idiv.s Add hardware division as a default feature on Cortex-A15. Also add test cases to check this, and change diagnostics for the hwdiv-arm feature to something useful. 2013-10-18 10:18:40 +00:00
invalid-neon-v8.s Add subtarget feature support for Cortex-A53 2013-10-14 13:16:57 +00:00
lit.local.cfg [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
load-store-acquire-release-v8-thumb.s [ARMv8] 2013-08-28 16:39:20 +00:00
load-store-acquire-release-v8.s [ARMv8] 2013-08-28 16:39:20 +00:00
mapping-within-section.s ARM: diagnose ARM/Thumb assembly switches on CPUs only supporting one. 2013-06-10 23:20:58 +00:00
mode-switch.s
multi-section-mapping.s ARM: diagnose ARM/Thumb assembly switches on CPUs only supporting one. 2013-06-10 23:20:58 +00:00
neon-abs-encoding.s
neon-absdiff-encoding.s
neon-add-encoding.s
neon-bitcount-encoding.s
neon-bitwise-encoding.s
neon-cmp-encoding.s ARM: Add VACLT and VACLE assembly aliases. 2013-04-15 22:42:50 +00:00
neon-convert-encoding.s Fix ARM vcvt encoding when the number of fractional bits is zero. 2013-08-22 13:16:07 +00:00
neon-crypto.s [ARMv8] Add support for the v8 cryptography extensions. 2013-09-19 11:59:01 +00:00
neon-dup-encoding.s
neon-minmax-encoding.s
neon-mov-encoding.s ARM: Add optional datatype suffix to NEON mvn asm syntax. 2013-06-18 21:49:21 +00:00
neon-mul-accum-encoding.s
neon-mul-encoding.s
neon-neg-encoding.s
neon-pairwise-encoding.s
neon-reciprocal-encoding.s
neon-reverse-encoding.s
neon-satshift-encoding.s
neon-shift-encoding.s
neon-shiftaccum-encoding.s
neon-shuffle-encoding.s
neon-sub-encoding.s
neon-table-encoding.s
neon-v8.s [ARMv8] Implement the NEON instructions VRINT{N, X, A, Z, M, P}. 2013-07-19 16:34:16 +00:00
neon-vld-encoding.s
neon-vst-encoding.s Add newlines at end of test files, no functionality change 2013-07-13 22:00:58 +00:00
neon-vswp.s
neont2-abs-encoding.s
neont2-absdiff-encoding.s
neont2-add-encoding.s
neont2-bitcount-encoding.s
neont2-bitwise-encoding.s
neont2-cmp-encoding.s
neont2-convert-encoding.s
neont2-dup-encoding.s
neont2-minmax-encoding.s
neont2-mov-encoding.s
neont2-mul-accum-encoding.s
neont2-mul-encoding.s
neont2-neg-encoding.s
neont2-pairwise-encoding.s
neont2-reciprocal-encoding.s
neont2-reverse-encoding.s
neont2-satshift-encoding.s
neont2-shift-encoding.s
neont2-shiftaccum-encoding.s
neont2-shuffle-encoding.s
neont2-sub-encoding.s
neont2-table-encoding.s
neont2-vld-encoding.s This patch fixes two tests marked as XFAIL among the ARM assembler tests. 2013-05-08 09:41:12 +00:00
neont2-vst-encoding.s This patch fixes two tests marked as XFAIL among the ARM assembler tests. 2013-05-08 09:41:12 +00:00
obsolete-v8.s ARMv8: SWP and SWPB are obsoleted on ARMv8. 2013-08-13 16:40:47 +00:00
pr11877.s
relocated-mapping.s
simple-fp-encoding.s This patch adds support for FPINST/FPINST2 as operands to vmsr/vmrs. These are optional registers that may be supported some ARM implementations to aid with resolution of floating point exceptions. The manual pages for vmsr and vmrs do not detail their use. Encodings and other information can be found in ARM Architecture Reference Manual section F, chapter 6, paragraph 3. 2013-06-11 09:39:51 +00:00
single-precision-fp.s ARM: tweak test to pass on all platforms 2013-10-25 07:34:56 +00:00
symbol-variants-errors.s Add support for parsing ARM symbol variants on ELF targets 2013-12-04 22:43:20 +00:00
symbol-variants.s Add support for parsing ARM symbol variants on ELF targets 2013-12-04 22:43:20 +00:00
thumb2-b.w-encodingT4.s Fix assembling of Thumb2 branch instructions. 2013-08-09 10:38:32 +00:00
thumb2-branches.s Fix assembling of Thumb2 branch instructions. 2013-08-09 10:38:32 +00:00
thumb2-diagnostics.s [ARM] Fix Thumb(-2) diagnostic tests. 2013-09-30 18:50:51 +00:00
thumb2-ldrd.s ARM: Teach assembler to enforce constraint for Thumb2 LDRD (literal/immediate) destination register operands. 2013-09-27 10:30:18 +00:00
thumb2-mclass.s
thumb2-narrow-dp.ll
thumb2-pldw.s This corrects creation of operands for t2PLDW. It also removes the definition of t2PLDWpci, 2013-08-06 16:07:46 +00:00
thumb-diagnostics.s ARM: fix assert on unpredictable POP instruction. 2013-10-24 09:37:18 +00:00
thumb-fp-armv8.s Fix tests for hasFPARMv8 name change (r190692) 2013-09-13 14:37:52 +00:00
thumb-hints.s ARM: permit bare dmb/dsb/isb aliases on Cortex-M0 2013-11-05 21:36:02 +00:00
thumb-invalid-crypto.txt [ARMv8] Add support for the v8 cryptography extensions. 2013-09-19 11:59:01 +00:00
thumb-neon-crypto.s [ARMv8] Add support for the v8 cryptography extensions. 2013-09-19 11:59:01 +00:00
thumb-neon-v8.s [ARMv8] Implement the NEON instructions VRINT{N, X, A, Z, M, P}. 2013-07-19 16:34:16 +00:00
thumb-only-conditionals.s [ARM] In ARMAsmParser, MatchCoprocessorOperandName() permitted p10 and p11 as operands for coprocessor instructions, resulting in encodings that clash with FP/NEON instruction encodings 2013-11-08 09:16:31 +00:00
thumb-shift-encoding.s
thumb.s ARM: fix thumb1 nop decoding 2013-06-24 09:11:53 +00:00
v8_IT_manual.s [ARM] Handling for coprocessor instructions that are undefined starting from ARMv8 (Thumb encodings) 2013-11-08 16:25:50 +00:00
vfp4.s ARM: Mark double-precision instructions as such 2013-10-24 15:49:39 +00:00
vpush-vpop.s
xscale-attributes.ll [ARM] Fix FP ABI attributes with no VFP enabled. 2013-10-11 16:03:43 +00:00