llvm-6502/test/MC/ARM
Saleem Abdulrasool 0ed4ef85a8 ARM: support emission of complex SO expressions
Support to the IAS was added to actually parse and handle the complex SO
expressions.  However, the object file lowering was not updated to compensate
for the fact that the shift operand may be an absolute expression.

When trying to assemble to an object file, the lowering would fail while
succeeding when emitting purely assembly.  Add an appropriate test.

The test case is inspired by the test case provided by Jiangning Liu who also
brought the issue to light.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@203762 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-13 07:02:41 +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: change implicit immediate forms of {ld,st}r{,b}t to psuedo-instructions 2014-01-12 04:36:01 +00:00
arm_addrmode3.s
arm_fixups.s
arm_instructions.s
arm-aliases.s
arm-arithmetic-aliases.s
arm-elf-symver.s Fix parsing of .symver directive on ARM 2014-01-15 22:40:02 +00:00
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 IAS: support GNU extension for ldrd, strd 2014-01-10 04:38:35 +00:00
arm-qualifier-diagnostics.s ARM IAS: fix diagnostics of improper qualification 2014-01-12 05:25:44 +00:00
arm-shift-encoding.s
arm-thumb-cpus-default.s
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 Tidy up a bit. Formatting only. 2014-02-11 20:48:41 +00:00
basic-thumb-instructions.s This fixes the Thumb2 CPS assembly syntax. 2013-08-09 13:52:32 +00:00
bkpt.s ARM: bkpt has an implicit immediate constant 0 2013-12-23 17:23:58 +00:00
bracket-darwin.s
bracket-exprs.s
comment.s Fix parsing of .symver directive on ARM 2014-01-15 22:40:02 +00:00
complex-operands.s ARM IAS: properly handle expression operands 2014-01-08 03:28:14 +00:00
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 Remove -arm-disable-ehabi option 2014-02-07 20:12:49 +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-align.s ARM IAS: support .align without parameters 2014-02-23 17:45:32 +00:00
directive-arch_extension-crc.s ARM IAS: (partially) support .arch_extension directive 2014-02-16 00:16:41 +00:00
directive-arch_extension-crypto.s ARM IAS: (partially) support .arch_extension directive 2014-02-16 00:16:41 +00:00
directive-arch_extension-fp.s ARM IAS: (partially) support .arch_extension directive 2014-02-16 00:16:41 +00:00
directive-arch_extension-idiv.s ARM IAS: (partially) support .arch_extension directive 2014-02-16 00:16:41 +00:00
directive-arch_extension-mp.s ARM IAS: (partially) support .arch_extension directive 2014-02-16 00:16:41 +00:00
directive-arch_extension-sec.s ARM IAS: (partially) support .arch_extension directive 2014-02-16 00:16:41 +00:00
directive-arch_extension-simd.s ARM IAS: (partially) support .arch_extension directive 2014-02-16 00:16:41 +00:00
directive-arch-armv2.s ARM: change attribute tests to use parsed form 2014-02-08 23:17:02 +00:00
directive-arch-armv2a.s ARM: change attribute tests to use parsed form 2014-02-08 23:17:02 +00:00
directive-arch-armv3.s ARM: change attribute tests to use parsed form 2014-02-08 23:17:02 +00:00
directive-arch-armv3m.s ARM: change attribute tests to use parsed form 2014-02-08 23:17:02 +00:00
directive-arch-armv4.s ARM: change attribute tests to use parsed form 2014-02-08 23:17:02 +00:00
directive-arch-armv4t.s ARM: change attribute tests to use parsed form 2014-02-08 23:17:02 +00:00
directive-arch-armv5.s ARM: change attribute tests to use parsed form 2014-02-08 23:17:02 +00:00
directive-arch-armv5t.s ARM: change attribute tests to use parsed form 2014-02-08 23:17:02 +00:00
directive-arch-armv5te.s ARM: change attribute tests to use parsed form 2014-02-08 23:17:02 +00:00
directive-arch-armv6-m.s ARM: change attribute tests to use parsed form 2014-02-08 23:17:02 +00:00
directive-arch-armv6.s ARM: change attribute tests to use parsed form 2014-02-08 23:17:02 +00:00
directive-arch-armv6j.s ARM: change attribute tests to use parsed form 2014-02-08 23:17:02 +00:00
directive-arch-armv6t2.s ARM: change attribute tests to use parsed form 2014-02-08 23:17:02 +00:00
directive-arch-armv6z.s ARM: change attribute tests to use parsed form 2014-02-08 23:17:02 +00:00
directive-arch-armv6zk.s ARM: change attribute tests to use parsed form 2014-02-08 23:17:02 +00:00
directive-arch-armv7-a.s ARM: change attribute tests to use parsed form 2014-02-08 23:17:02 +00:00
directive-arch-armv7-m.s ARM: change attribute tests to use parsed form 2014-02-08 23:17:02 +00:00
directive-arch-armv7-r.s ARM: change attribute tests to use parsed form 2014-02-08 23:17:02 +00:00
directive-arch-armv7.s ARM: change attribute tests to use parsed form 2014-02-08 23:17:02 +00:00
directive-arch-armv7a.s ARM: change attribute tests to use parsed form 2014-02-08 23:17:02 +00:00
directive-arch-armv7m.s ARM: change attribute tests to use parsed form 2014-02-08 23:17:02 +00:00
directive-arch-armv7r.s ARM: change attribute tests to use parsed form 2014-02-08 23:17:02 +00:00
directive-arch-armv8-a.s ARM: change attribute tests to use parsed form 2014-02-08 23:17:02 +00:00
directive-arch-armv8a.s ARM: change attribute tests to use parsed form 2014-02-08 23:17:02 +00:00
directive-arch-iwmmxt2.s ARM: change attribute tests to use parsed form 2014-02-08 23:17:02 +00:00
directive-arch-iwmmxt.s ARM: change attribute tests to use parsed form 2014-02-08 23:17:02 +00:00
directive-cpu.s [arm] Implement eabi_attribute, cpu, and fpu directives. 2013-10-28 17:51:12 +00:00
directive-eabi_attribute-2.s ARM: update build attributes for ABI r2.09 2014-01-19 08:25:35 +00:00
directive-eabi_attribute-diagnostics.s ARM IAS: improve .eabi_attribute handling 2014-01-07 02:28:42 +00:00
directive-eabi_attribute-overwrite.s ARM: change attribute tests to use parsed form 2014-02-08 23:17:02 +00:00
directive-eabi_attribute.s [arm] Implement eabi_attribute, cpu, and fpu directives. 2013-10-28 17:51:12 +00:00
directive-even.s ARM IAS: support .even directive 2013-12-26 01:52:28 +00:00
directive-fpu-multiple.s ARM: change attribute tests to use parsed form 2014-02-08 23:17:02 +00:00
directive-fpu-softvfp.s [arm] Add softvfp to supported FPU names. 2014-01-02 15:50:02 +00:00
directive-fpu.s [arm] Implement eabi_attribute, cpu, and fpu directives. 2013-10-28 17:51:12 +00:00
directive-literals.s ARM IAS: support .short and .hword 2014-02-23 06:22:09 +00:00
directive-object_arch-2.s ARM IAS: support .object_arch 2014-01-30 04:46:41 +00:00
directive-object_arch-3.s ARM IAS: support .object_arch 2014-01-30 04:46:41 +00:00
directive-object_arch-diagnostics.s ARM IAS: support .object_arch 2014-01-30 04:46:41 +00:00
directive-object_arch.s ARM IAS: support .object_arch 2014-01-30 04:46:41 +00:00
directive-tlsdescseq-diagnostics.s ARM: suuport .tlsdescseq directive 2014-01-30 04:02:47 +00:00
directive-tlsdescseq.s ARM: suuport .tlsdescseq directive 2014-01-30 04:02:47 +00:00
directive-word-diagnostics.s ARM: improve diagnostics for .word directive 2014-01-26 22:29:50 +00:00
dot-req-case-insensitive.s ARM: Make .unreq directives case-insensitive 2014-03-07 16:16:52 +00:00
dot-req.s
dwarf-cfi-initial-state.s ARM MC: Fix the initial DWARF CFI unwind info at the start of a function 2014-01-27 22:38:14 +00:00
eh-compact-pr0.s
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 MCParser: introduce Note and use it for ARM AsmParser 2014-01-07 02:28:31 +00:00
eh-directive-cantunwind.s
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 ARM IAS: refactor unwind context 2014-01-07 02:28:55 +00:00
eh-directive-handlerdata.s
eh-directive-integrated-test.s
eh-directive-movsp-diagnostics.s ARM IAS: support .movsp 2014-01-30 04:46:24 +00:00
eh-directive-movsp.s ARM IAS: support .movsp 2014-01-30 04:46:24 +00:00
eh-directive-multiple-offsets.s
eh-directive-pad-diagnostics.s
eh-directive-pad.s
eh-directive-personality-diagnostics.s
eh-directive-personality.s
eh-directive-personalityindex-diagnostics.s ARM IAS: support .personalityindex 2014-01-21 02:33:02 +00:00
eh-directive-personalityindex.s ARM IAS: support .personalityindex 2014-01-21 02:33:02 +00:00
eh-directive-save-diagnoatics.s
eh-directive-save.s
eh-directive-section-comdat.s
eh-directive-section-multiple-func.s
eh-directive-section.s
eh-directive-setfp-diagnostics.s
eh-directive-setfp.s Fix known typos 2014-01-24 17:20:08 +00:00
eh-directive-text-section-multiple-func.s
eh-directive-text-section.s
eh-directive-unwind_raw-diagnostics.s ARM IAS: add support for .unwind_raw directive 2014-01-21 02:33:10 +00:00
eh-directive-unwind_raw.s tools: support decoding ARM EHABI opcodes in readobj 2014-01-21 02:33:15 +00:00
eh-directive-vsave-diagnostics.s
eh-directive-vsave.s
elf-eflags-eabi.s
elf-jump24-fixup.s
elf-movt.s
elf-reloc-01.ll
elf-reloc-02.ll
elf-reloc-03.ll
elf-reloc-condcall.s
elf-thumbfunc-reloc.ll Enable EHABI by default 2014-01-29 11:50:56 +00:00
elf-thumbfunc-reloc.s
elf-thumbfunc.s ARM: allow .thumb_func to be separated from symbol definition 2013-10-25 12:49:50 +00:00
fconst.s Add ARM fconsts/fconstd aliases for vmov.f32/vmov.f64 2014-01-07 18:19:23 +00:00
fixup-cpu-mode.s Tests for mode switching 2014-01-28 23:13:30 +00:00
fp-armv8.s [ARM] Add support for MVFR2 which is new in ARMv8 2013-11-11 19:56:13 +00:00
fp-const-errors.s Add ARM fconsts/fconstd aliases for vmov.f32/vmov.f64 2014-01-07 18:19:23 +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
inst-arm-suffixes.s ARM IAS: support .inst directive 2013-12-19 05:17:58 +00:00
inst-constant-required.s ARM IAS: support .inst directive 2013-12-19 05:17:58 +00:00
inst-directive-emit.s ARM IAS: support .inst directive 2013-12-19 05:17:58 +00:00
inst-directive.s ARM IAS: support .inst directive 2013-12-19 05:17:58 +00:00
inst-overflow.s ARM IAS: support .inst directive 2013-12-19 05:17:58 +00:00
inst-thumb-overflow-2.s ARM IAS: support .inst directive 2013-12-19 05:17:58 +00:00
inst-thumb-overflow.s ARM IAS: support .inst directive 2013-12-19 05:17:58 +00:00
inst-thumb-suffixes.s ARM IAS: support .inst directive 2013-12-19 05:17:58 +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
invalid-vector-index.s Fix the arm assembler so that this malformed instruction: 2014-02-17 21:45:27 +00:00
ldr-pseudo-darwin.s Implement the ldr-pseudo opcode for ARM assembly 2013-12-19 18:12:36 +00:00
ldr-pseudo-obj-errors.s Implement the ldr-pseudo opcode for ARM assembly 2013-12-19 18:12:36 +00:00
ldr-pseudo-parse-errors.s Implement the ldr-pseudo opcode for ARM assembly 2013-12-19 18:12:36 +00:00
ldr-pseudo.s Implement the ldr-pseudo opcode for ARM assembly 2013-12-19 18:12:36 +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
ltorg-darwin.s Implement the .ltorg directive for ARM assembly 2013-12-19 18:26:07 +00:00
ltorg.s Implement the .ltorg directive for ARM assembly 2013-12-19 18:26:07 +00:00
mapping-within-section.s
mode-switch.s
mul-v4.s Add MLA alias for ARMv4 support. 2014-01-17 13:53:08 +00:00
multi-section-mapping.s
neon-abs-encoding.s
neon-absdiff-encoding.s
neon-add-encoding.s
neon-bitcount-encoding.s
neon-bitwise-encoding.s
neon-cmp-encoding.s
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
neont2-vst-encoding.s
not-armv4.s ARM: Let the assembler reject v5 instructions in v4 mode. 2014-01-18 19:03:19 +00:00
obsolete-v8.s ARMv8: SWP and SWPB are obsoleted on ARMv8. 2013-08-13 16:40:47 +00:00
pool.s ARM IAS: add support for the .pool directive 2013-12-20 07:21:16 +00:00
pr11877.s
relocated-mapping.s
shift-offset-addressing-emission.s ARM: support emission of complex SO expressions 2014-03-13 07:02:41 +00:00
simple-fp-encoding.s Add ARM fconsts/fconstd aliases for vmov.f32/vmov.f64 2014-01-07 18:19:23 +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 ARM: support TLS descriptor relocations 2014-01-30 04:02:38 +00:00
target-expressions.s ARM IAS: support emitting constant values in target expressions 2014-01-11 23:03:48 +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-cbn-to-next-inst.s Fix a bug with the ARM thumb2 CBNZ and CBNZ instructions that 2014-01-10 00:43: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 Amending test/MC/ARM/thumb2-mclass.s to match its apparent original purpose (to test the ARMv6M/ARMv7M commonality), and creating a new test case for the differences between ARMv6M and ARMv7M 2014-01-10 16:49:49 +00:00
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-far-jump.s ARM: Resolve thumb_bl fixup in same MCFragment. 2014-02-05 14:15:16 +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-st_other.s Move llvm/test/MC/ELF/thumb-st_other.s to test/MC/ARM. 2013-12-05 02:21:44 +00:00
thumb.s ARM: fix thumb1 nop decoding 2013-06-24 09:11:53 +00:00
thumbv7m.s Amending test/MC/ARM/thumb2-mclass.s to match its apparent original purpose (to test the ARMv6M/ARMv7M commonality), and creating a new test case for the differences between ARMv6M and ARMv7M 2014-01-10 16:49:49 +00:00
unwind-stack-diagnostics.s ARM IAS: allow more depth in contextual diagnostics 2014-01-07 02:29:00 +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
variant-diagnostics.s MC: fix test locations/name 2014-01-26 22:55:02 +00:00
vfp4.s ARM: Mark double-precision instructions as such 2013-10-24 15:49:39 +00:00
vfp-aliases-diagnostics.s ARM IAS: account for predicated pre-UAL mnemonics 2013-12-30 18:38:01 +00:00
vfp-aliases.s ARM IAS: account for predicated pre-UAL mnemonics 2013-12-30 18:38:01 +00:00
vpush-vpop.s