llvm-6502/test/MC/ARM
Saleem Abdulrasool 77b9fc127b ARM: correct handling of features in arch_extension
The subtarget information is the ultimate source of truth for the feature set
that is enabled at this point.  We would previously not propagate the feature
information to the subtarget.  While this worked for the most part (features
would be enabled/disabled as requested), if another operation that changed the
feature bits was encountered (such as a mode switch via a .arm or .thumb
directive), we would end up resetting the behaviour of the architectural
extensions.

Handling this properly requires a slightly more complicated handling.  We need
to check if the feature is now being toggled.  If so, only then do we toggle the
features.  In return, we no longer have to calculate the feature bits ourselves.

The test changes are mostly to the diagnosis, which is now more uniform (a nice
side effect!).  Add an additional test to ensure that we handle this case
properly.

Thanks to Nico Weber for alerting me to this issue!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@214057 91177308-0d34-0410-b5e6-96231b3b80d8
2014-07-27 19:07:09 +00:00
..
AlignedBundling Reduce verbiage of lit.local.cfg files 2014-06-09 22:42:55 +00:00
Windows MC: adjust text section flags for WoA 2014-06-22 22:25:01 +00:00
2010-11-30-reloc-movt.s
2013-03-18-Br-to-label-named-like-reg.s ARM: fixup more tests to specify the target more explicitly 2014-04-03 16:01:44 +00:00
align_arm_2_thumb.s
align_thumb_2_arm.s
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 Change the ARM assembler to require a :lower16: or :upper16 on non-constant 2014-04-18 23:06:39 +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: fixup more tests to specify the target more explicitly 2014-04-03 16:01:44 +00:00
arm-memory-instructions.s
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: update even more tests 2014-04-03 17:35:22 +00:00
arm-thumb-cpus.s ARM: update even more tests 2014-04-03 17:35:22 +00:00
arm-thumb-trustzone.s
arm-trustzone.s
basic-arm-instructions-v8.s
basic-arm-instructions.s Add ARM big endian Target (armeb, thumbeb) 2014-03-28 14:35:30 +00:00
basic-thumb2-instructions-v8.s
basic-thumb2-instructions.s Fixed register class in STRD instruction for Thumb2 mode. 2014-04-04 08:14:13 +00:00
basic-thumb-instructions.s Add ARM big endian Target (armeb, thumbeb) 2014-03-28 14:35:30 +00:00
big-endian-arm-fixup.s ARMEB: Additional test files for ARM fixups 2014-05-20 09:24:37 +00:00
big-endian-thumb2-fixup.s ARMEB: Additional test files for ARM fixups 2014-05-20 09:24:37 +00:00
big-endian-thumb-fixup.s ARMEB: Additional test files for ARM fixups 2014-05-20 09:24:37 +00:00
bkpt.s
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
coff-debugging-secrel.ll DebugInfo: Generalize some tests to handle variations in attribute ordering. 2014-05-23 21:11:46 +00:00
coff-file.s MC: place .file records into the correct section 2014-05-02 17:45:24 +00:00
coff-function-type-info.ll ARM: print COFF function header for Windows on ARM 2014-04-30 06:14:25 +00:00
coff-relocations.s COFF: move ARM COFF test to ARM directory 2014-04-27 04:29:32 +00:00
comment.s Fix parsing of .symver directive on ARM 2014-01-15 22:40:02 +00:00
complex-operands.s Change the ARM assembler to require a :lower16: or :upper16 on non-constant 2014-04-18 23:06:39 +00:00
crc32-thumb.s
crc32.s
cxx-global-constructor.ll
data-in-code.ll Remove -arm-disable-ehabi option 2014-02-07 20:12:49 +00:00
deprecated-v8.s
diagnostics-noneon.s
diagnostics.s [ARM] Make the assembler reject unpredictable pre/post-indexed ARM STRH instructions. 2014-07-24 09:55:46 +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: correct handling of features in arch_extension 2014-07-27 19:07:09 +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: correct handling of features in arch_extension 2014-07-27 19:07:09 +00:00
directive-arch_extension-idiv.s ARM: correct handling of features in arch_extension 2014-07-27 19:07:09 +00:00
directive-arch_extension-mode-switch.s ARM: correct handling of features in arch_extension 2014-07-27 19:07:09 +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: correct handling of features in arch_extension 2014-07-27 19:07:09 +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
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
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
directive-even.s
directive-fpu-multiple.s ARM: change attribute tests to use parsed form 2014-02-08 23:17:02 +00:00
directive-fpu-softvfp.s
directive-fpu.s
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-asm-multiple-sections.s Since we're using DW_AT_string rather than DW_AT_strp for debug_info 2014-06-19 20:00:13 +00:00
dwarf-asm-no-code.s Tests for r211273 2014-06-19 16:35:19 +00:00
dwarf-asm-nonstandard-section.s Since we're using DW_AT_string rather than DW_AT_strp for debug_info 2014-06-19 20:00:13 +00:00
dwarf-asm-single-section.s Since we're using DW_AT_string rather than DW_AT_strp for debug_info 2014-06-19 20:00:13 +00:00
dwarf-cfi-initial-state.s [MC] Emit an error if cfi_startproc is used before a symbol is defined. 2014-04-15 01:17:45 +00:00
eh-compact-pr0.s
eh-compact-pr1.s
eh-directive-cantunwind-diagnostics.s
eh-directive-cantunwind.s
eh-directive-fnend-diagnostics.s
eh-directive-fnstart-diagnostics.s
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-diagnostics.s Fix spelling. 2014-05-05 17:58:46 +00:00
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 Don't lose the thumb bit by using relocations with sections. 2014-04-11 19:18:01 +00:00
elf-thumbfunc.s Follow aliases when determining if a symbol is thumb. 2014-04-22 19:11:07 +00:00
fconst.s
fixup-cpu-mode.s Tests for mode switching 2014-01-28 23:13:30 +00:00
fp-armv8.s
fp-const-errors.s
full_line_comment.s
gas-compl-copr-reg.s Added parsing co-processor names starting with "cr" 2014-06-26 13:10:53 +00:00
hilo-16bit-relocations.s
idiv.s
inst-arm-suffixes.s
inst-constant-required.s
inst-directive-emit.s
inst-directive.s
inst-overflow.s
inst-thumb-overflow-2.s
inst-thumb-overflow.s
inst-thumb-suffixes.s
invalid-barrier.s
invalid-crc32.s
invalid-fp-armv8.s
invalid-hint-arm.s
invalid-hint-thumb.s
invalid-idiv.s
invalid-neon-v8.s
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 MC: support different sized constants in constant pools 2014-07-18 16:05:14 +00:00
ldr-pseudo-obj-errors.s
ldr-pseudo-parse-errors.s
ldr-pseudo.s Generalise assembly tests to not rely on anonymous symbol names 2014-03-14 09:10:26 +00:00
ldrd-strd-gnu-arm-bad-imm.s Fix for PR18921 (LDRD/STRD part):: 2014-04-04 10:17:56 +00:00
ldrd-strd-gnu-arm.s Fix for PR18921 (LDRD/STRD part):: 2014-04-04 10:17:56 +00:00
ldrd-strd-gnu-sp.s PR19320: 2014-04-03 11:29:15 +00:00
ldrd-strd-gnu-thumb-bad-regs.s Fix for PR18921 (LDRD/STRD part):: 2014-04-04 10:17:56 +00:00
ldrd-strd-gnu-thumb.s Fix for PR18921 (LDRD/STRD part):: 2014-04-04 10:17:56 +00:00
lit.local.cfg Reduce verbiage of lit.local.cfg files 2014-06-09 22:42:55 +00:00
load-store-acquire-release-v8-thumb.s
load-store-acquire-release-v8.s
ltorg-darwin.s MC: support different sized constants in constant pools 2014-07-18 16:05:14 +00:00
ltorg.s Generalise assembly tests to not rely on anonymous symbol names 2014-03-14 09:10:26 +00:00
macho-relocs-with-addend.s ARM: when falling back to scattered relocs, keep the type. 2014-07-04 10:58:05 +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
neon-crypto.s
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
neon-vld-encoding.s Fix the ARM VLD3 (single 3-element structure to all lanes) 2014-04-08 18:00:52 +00:00
neon-vld-vst-align.s Remove the use of "%e" as it is not a valid expansion like "%t". 2014-04-10 21:55:58 +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
pool.s Test commit - Added a new line 2014-04-16 16:45:18 +00:00
pr11877.s
relocated-mapping.s
simple-fp-encoding.s
single-precision-fp.s
symbol-variants-errors.s
symbol-variants.s Parse and create GOT_PREL relocations. 2014-04-29 13:42:02 +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
thumb2-branches.s
thumb2-cbn-to-next-inst.s
thumb2-diagnostics.s Correction to assert statemtent to allow 32-bit unsigned numbers with the top bit set. 2014-05-01 11:37:44 +00:00
thumb2-ldrd.s ARM: fixup more tests to specify the target more explicitly 2014-04-03 16:01:44 +00:00
thumb2-mclass.s
thumb2-narrow-dp.ll
thumb2-pldw.s
thumb2-strd.s Fixed register class in STRD instruction for Thumb2 mode. 2014-04-04 08:14:13 +00:00
thumb2be-b.w-encoding.s ARM: Additional test files for thumb fixups (checked with llvm-mv -show-encoding) 2014-05-13 17:06:51 +00:00
thumb2be-beq.w-encoding.s ARM: Additional test files for thumb fixups (checked with llvm-mv -show-encoding) 2014-05-13 17:06:51 +00:00
thumb2be-movt-encoding.s ARM: Additional test files for thumb fixups (checked with llvm-mv -show-encoding) 2014-05-13 17:06:51 +00:00
thumb2be-movw-encoding.s ARM: Additional test files for thumb fixups (checked with llvm-mv -show-encoding) 2014-05-13 17:06:51 +00:00
thumb_set-diagnostics.s Reapply 'ARM IAS: support .thumb_set' 2014-03-20 06:05:33 +00:00
thumb_set.s Don't force symbols to be globals in .thumb_set. 2014-05-01 12:45:43 +00:00
thumb-diagnostics.s
thumb-far-jump.s ARM: Resolve thumb_bl fixup in same MCFragment. 2014-02-05 14:15:16 +00:00
thumb-fp-armv8.s
thumb-hints.s
thumb-invalid-crypto.txt
thumb-neon-crypto.s
thumb-neon-v8.s
thumb-only-conditionals.s
thumb-shift-encoding.s
thumb-st_other.s
thumb-types.s ARM: take care not to set the ThumbFunc bit on TLS data symbols 2014-06-30 09:37:24 +00:00
thumb.s
thumbv7m.s
udf-arm-diagnostics.s ARM: implement support for the UDF mnemonic 2014-05-14 03:47:39 +00:00
udf-arm.s ARM: implement support for the UDF mnemonic 2014-05-14 03:47:39 +00:00
udf-thumb-2-diagnostics.s ARM: implement support for the UDF mnemonic 2014-05-14 03:47:39 +00:00
udf-thumb-2.s ARM: implement support for the UDF mnemonic 2014-05-14 03:47:39 +00:00
udf-thumb-diagnostics.s ARM: implement support for the UDF mnemonic 2014-05-14 03:47:39 +00:00
udf-thumb.s ARM: implement support for the UDF mnemonic 2014-05-14 03:47:39 +00:00
unwind-stack-diagnostics.s
v8_IT_manual.s
variant-diagnostics.s MC: fix test locations/name 2014-01-26 22:55:02 +00:00
vfp4.s
vfp-aliases-diagnostics.s
vfp-aliases.s
vmov-vmvn-byte-replicate.s Fix for PR18921, "vmov" part. 2014-04-24 06:03:01 +00:00
vmov-vmvn-illegal-cases.s Fix for PR18921, "vmov" part. 2014-04-24 06:03:01 +00:00
vorr-vbic-illegal-cases.s Fix for PR18921, "vmov" part. 2014-04-24 06:03:01 +00:00
vpush-vpop.s