llvm-6502/test/MC/ARM
Stepan Dyatkovskiy 3fed2f133c Recommitted fix for PR18931, with extended tests set.
Issue subject: Crash using integrated assembler with immediate arithmetic

Fix description:
Expressions like 'cmp r0, #(l1 - l2) >> 3' could not be evaluated on asm parsing stage,
since it is impossible to resolve labels on this stage. In the end of stage we still have
expression (MCExpr).
Then, when we want to encode it, we expect it to be an immediate, but it still an expression.
Patch introduces a Fixup (MCFixup instance), that is processed after main encoding stage.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@205094 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-29 13:12:40 +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 Add ARM big endian Target (armeb, thumbeb) 2014-03-28 14:35:30 +00:00
arm_instructions.s
arm-aliases.s
arm-arithmetic-aliases.s
arm-elf-symver.s Completely rewrite ELFObjectWriter::RecordRelocation. 2014-03-29 06:26:49 +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
arm-thumb-trustzone.s
arm-trustzone.s
basic-arm-instructions-v8.s Test cleanup for v8 instructions 2013-10-29 14:16:09 +00:00
basic-arm-instructions.s Add ARM big endian Target (armeb, thumbeb) 2014-03-28 14:35:30 +00:00
basic-thumb2-instructions-v8.s Test cleanup for v8 instructions 2013-10-29 14:16:09 +00:00
basic-thumb2-instructions.s Add ARM big endian Target (armeb, thumbeb) 2014-03-28 14:35:30 +00:00
basic-thumb-instructions.s Add ARM big endian Target (armeb, thumbeb) 2014-03-28 14:35:30 +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
cmp-immediate-fixup2.s Recommitted fix for PR18931, with extended tests set. 2014-03-29 13:12:40 +00:00
cmp-immediate-fixup-error2.s Recommitted fix for PR18931, with extended tests set. 2014-03-29 13:12:40 +00:00
cmp-immediate-fixup-error.s Recommitted fix for PR18931, with extended tests set. 2014-03-29 13:12:40 +00:00
cmp-immediate-fixup.s Recommitted fix for PR18931, with extended tests set. 2014-03-29 13:12:40 +00:00
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
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
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 llvm-objdump output hex to match binutils' objdump 2014-03-20 22:55:15 +00:00
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 Generalise assembly tests to not rely on anonymous symbol names 2014-03-14 09:10:26 +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 Generalise assembly tests to not rely on anonymous symbol names 2014-03-14 09:10:26 +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
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 Fix the ARM VST4 (single 4-element structure from one lane) 2014-03-26 19:35:40 +00:00
neon-vst-encoding.s
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
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 llvm-objdump output hex to match binutils' objdump 2014-03-20 22:55:15 +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_set-diagnostics.s Reapply 'ARM IAS: support .thumb_set' 2014-03-20 06:05:33 +00:00
thumb_set.s ARM IAS: properly handle function entries in .thumb 2014-03-22 19:26:18 +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-types.s ARM IAS: properly handle function entries in .thumb 2014-03-22 19:26:18 +00:00
thumb.s
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