llvm-6502/test/MC/ARM
Asiri Rathnayake b0d513e1eb ARM: Fix another regression introduced in r223113
The changes in r223113 (ARM modified-immediate syntax) have broken
instructions like:
  mov r0, #~0xffffff00
The problem is that I've added a spurious range check on the immediate
operand to ensure that it lies between INT32_MIN and UINT32_MAX. While
this range check is correct in theory, it causes problems because the
operand is stored in an int64_t (by MC). So valid 32-bit constants like
\#~0xffffff00 become out of range. The solution is to simply remove this
range check. It is not possible to validate the range of the immediate
operand with the current setup because: 1) The operand is stored in an
int64_t by MC, 2) The immediate can be of the forms #imm, #-imm, #~imm
or even #((~imm)) etc. So we just chop the value to 32 bits and use it.

Also noted that the original range check was note tested by any of the
unit tests. I've added a new test to cover #~imm kind of operands.

Change-Id: I411e90d84312a2eff01b732bb238af536c4a7599

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@228920 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-12 13:37:28 +00:00
..
AlignedBundling
Windows ARM: fail less catastrophically on invalid Windows input 2015-01-22 04:03:32 +00:00
2010-11-30-reloc-movt.s
2013-03-18-Br-to-label-named-like-reg.s
align_arm_2_thumb.s
align_thumb_2_arm.s
arm_addrmode2.s
arm_addrmode3.s
arm_fixups.s
arm_instructions.s Remove the cortex-a9-mp CPU. 2014-11-03 17:38:00 +00:00
arm-aliases.s
arm-arithmetic-aliases.s
arm-elf-relocation-diagnostics.s ARM: add support for segment base relocations (SBREL) 2015-01-11 04:39:18 +00:00
arm-elf-relocations.s ARM: add support for segment base relocations (SBREL) 2015-01-11 04:39:18 +00:00
arm-elf-symver.s
arm-it-block.s
arm-ldrd.s
arm-load-store-multiple-deprecated.s ARM: further improve deprecated diagnosis (LDM) 2014-12-20 20:25:36 +00:00
arm-memory-instructions.s
arm-qualifier-diagnostics.s
arm-shift-encoding.s
arm-thumb-cpus-default.s
arm-thumb-cpus.s [ARM] Add armv6s[-]m as an alias to armv6[-]m 2015-02-10 15:15:08 +00:00
arm-thumb-trustzone.s
arm-trustzone.s
basic-arm-instructions-v8.s
basic-arm-instructions.s ARM: Fix another regression introduced in r223113 2015-02-12 13:37:28 +00:00
basic-thumb2-instructions-v8.s
basic-thumb2-instructions.s
basic-thumb-instructions.s
big-endian-arm-fixup.s
big-endian-thumb2-fixup.s
big-endian-thumb-fixup.s
bkpt.s
bracket-darwin.s
bracket-exprs.s
cmp-immediate-fixup2.s
cmp-immediate-fixup-error2.s
cmp-immediate-fixup-error.s
cmp-immediate-fixup.s
coff-debugging-secrel.ll IR: Move MDLocation into place 2015-01-14 22:27:36 +00:00
coff-file.s llvm-readobj: pretty-print special COFF section names 2014-09-20 00:25:06 +00:00
coff-function-type-info.ll
coff-relocations.s
comment.s
complex-operands.s
coproc-diag.s
cps.s [Thumb] 32-bit encodings of 'cps' are not valid for v7M 2014-09-24 14:20:01 +00:00
cpu-test.s [ARM] Fix subtarget feature set truncation when using .cpu directive 2015-02-04 16:23:24 +00:00
crc32-thumb.s
crc32.s
cxx-global-constructor.ll
d16.s Fix bashism in tests added by r221341 2014-11-05 12:40:21 +00:00
data-in-code.ll
deprecated-v8.s
diagnostics-noneon.s
diagnostics.s Add support for ARM modified-immediate assembly syntax. 2014-12-02 10:53:20 +00:00
directive-align.s
directive-arch_extension-crc.s
directive-arch_extension-crypto.s
directive-arch_extension-fp.s
directive-arch_extension-idiv.s
directive-arch_extension-mode-switch.s
directive-arch_extension-mp.s
directive-arch_extension-sec.s
directive-arch_extension-simd.s
directive-arch_extension-toggle.s
directive-arch-armv2.s
directive-arch-armv2a.s
directive-arch-armv3.s
directive-arch-armv3m.s
directive-arch-armv4.s
directive-arch-armv4t.s
directive-arch-armv5.s
directive-arch-armv5t.s
directive-arch-armv5te.s
directive-arch-armv6-m.s
directive-arch-armv6.s
directive-arch-armv6j.s
directive-arch-armv6t2.s
directive-arch-armv6z.s
directive-arch-armv6zk.s
directive-arch-armv7-a.s
directive-arch-armv7-m.s
directive-arch-armv7-r.s
directive-arch-armv7.s
directive-arch-armv7a.s
directive-arch-armv7m.s
directive-arch-armv7r.s
directive-arch-armv8-a.s
directive-arch-armv8a.s
directive-arch-iwmmxt2.s Stop uppercasing build attribute data. 2014-11-27 12:13:56 +00:00
directive-arch-iwmmxt.s Stop uppercasing build attribute data. 2014-11-27 12:13:56 +00:00
directive-cpu.s Stop uppercasing build attribute data. 2014-11-27 12:13:56 +00:00
directive-eabi_attribute-diagnostics.s Parse Tag_compatibility correctly. 2015-01-05 13:26:37 +00:00
directive-eabi_attribute-overwrite.s Parse Tag_compatibility correctly. 2015-01-05 13:26:37 +00:00
directive-eabi_attribute.s Parse Tag_compatibility correctly. 2015-01-05 13:26:37 +00:00
directive-even.s
directive-fpu-diagnostics.s ARM: improve caret diagnostics for invalid FPU name 2015-01-30 18:42:10 +00:00
directive-fpu-instrs.s [ARM] Honor FeatureD16 in the assembler and disassembler 2014-11-05 12:06:39 +00:00
directive-fpu-multiple.s
directive-fpu-softvfp.s
directive-fpu.s
directive-literals.s
directive-object_arch-2.s
directive-object_arch-3.s
directive-object_arch-diagnostics.s
directive-object_arch.s
directive-thumb_func.s ARM: use a more precise check for MachO 2014-09-18 03:49:55 +00:00
directive-tlsdescseq-diagnostics.s
directive-tlsdescseq.s
directive-unsupported.s ARM: prevent crash on ELF directives on COFF 2014-09-18 04:28:29 +00:00
directive-word-diagnostics.s
dot-req-case-insensitive.s
dot-req.s Fix some unnoticed/unwanted behavior change from r222319. 2015-02-04 03:10:03 +00:00
dwarf-asm-multiple-sections-dwarf-2.s Downgrade DWARF2 section limit error to a warning 2014-09-22 10:45:16 +00:00
dwarf-asm-multiple-sections.s [dwarfdump] Dump DW_AT_ranges values inline in the debug_info dump. 2014-10-23 04:08:34 +00:00
dwarf-asm-no-code.s
dwarf-asm-nonstandard-section.s
dwarf-asm-single-section.s
dwarf-cfi-initial-state.s
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
eh-directive-movsp.s
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
eh-directive-personalityindex.s
eh-directive-save-diagnostics.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
eh-directive-text-section-multiple-func.s
eh-directive-text-section.s
eh-directive-unwind_raw-diagnostics.s
eh-directive-unwind_raw.s
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
elf-thumbfunc-reloc.s
elf-thumbfunc.s
fconst.s
fixup-cpu-mode.s
fp-armv8.s
fp-const-errors.s
full_line_comment.s
gas-compl-copr-reg.s
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
ldr-pseudo-darwin.s
ldr-pseudo-obj-errors.s
ldr-pseudo-parse-errors.s Fix yet another unseen regression caused by r223113 2014-12-04 19:34:59 +00:00
ldr-pseudo.s
ldrd-strd-gnu-arm-bad-imm.s
ldrd-strd-gnu-arm.s
ldrd-strd-gnu-sp.s
ldrd-strd-gnu-thumb-bad-regs.s
ldrd-strd-gnu-thumb.s
lit.local.cfg
load-store-acquire-release-v8-thumb.s
load-store-acquire-release-v8.s
ltorg-darwin.s
ltorg.s
macho-relocs-with-addend.s
mapping-within-section.s
mode-switch.s
move-banked-regs.s Fix wrong encoding of MRSBanked. 2014-11-28 15:01:06 +00:00
mul-v4.s
multi-section-mapping.s
neon-abs-encoding.s
neon-absdiff-encoding.s
neon-add-encoding.s
neon-bitcount-encoding.s
neon-bitwise-encoding.s Add aliases for VAND imm to VBIC ~imm 2014-09-25 11:31:24 +00:00
neon-cmp-encoding.s
neon-convert-encoding.s
neon-crypto.s
neon-dup-encoding.s
neon-minmax-encoding.s
neon-mov-encoding.s
neon-mov-vfp.s [ARM] NEON 32-bit scalar moves are also available in VFPv2 2014-10-21 11:49:14 +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
neon-vld-encoding.s
neon-vld-vst-align.s
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
obsolete-v8.s
pool.s
pr11877.s
pr22395-2.s ARM: further correct .fpu directive handling 2015-01-30 19:35:18 +00:00
pr22395.s ARM: correct handling of .fpu directive 2015-01-30 17:58:25 +00:00
relocated-mapping.s
simple-fp-encoding.s
single-precision-fp.s
symbol-variants-errors.s
symbol-variants.s [ELF] Prevent ARM ELF object writer from generating deprecated relocation code R_ARM_PLT32 2014-11-20 05:58:11 +00:00
target-expressions.s
thumb2-b.w-encodingT4.s
thumb2-branches.s
thumb2-bxj.s [Thumb2] BXJ should be undefined for v7M, v8A 2014-09-25 10:02:05 +00:00
thumb2-cbn-to-next-inst.s
thumb2-diagnostics.s [ARM] SSAT/USAT with an 'asr #32' shift should result in an undefined encoding rather than unpredictable 2015-01-19 16:37:17 +00:00
thumb2-dsp-diag.s [ARM] Fixup sign extend instruction availability w.r.t. DSP extension 2015-01-19 16:36:02 +00:00
thumb2-exception-return-mclass.s [Thumb2] RFE, SRS and "SUBS pc, lr" are undefined on v7M 2014-10-20 15:37:35 +00:00
thumb2-ldrb-ldrh.s [Thumb2] LDRS?[BH] cannot load to the PC 2014-10-21 09:14:15 +00:00
thumb2-ldrd.s
thumb2-ldrexd-strexd.s [Thumb2] ldrexd and strexd are not defined on v7M 2014-09-29 10:57:29 +00:00
thumb2-mclass.s
thumb2-narrow-dp.ll
thumb2-pldw.s
thumb2-strd.s
thumb2be-b.w-encoding.s
thumb2be-beq.w-encoding.s
thumb2be-movt-encoding.s
thumb2be-movw-encoding.s
thumb_rewrites.s Elide repeated register operand in Thumb1 instructions 2014-09-26 16:14:29 +00:00
thumb_set-diagnostics.s
thumb_set.s
thumb-diagnostics.s ARM: improve instruction validation for thumb mode 2014-12-18 05:24:38 +00:00
thumb-far-jump.s
thumb-fp-armv8.s
thumb-hints.s
thumb-invalid-crypto.txt
thumb-load-store-multiple.s Correct POP handling for v7m 2015-01-14 10:48:16 +00:00
thumb-neon-crypto.s
thumb-neon-v8.s
thumb-not-mclass.s
thumb-only-conditionals.s
thumb-shift-encoding.s
thumb-st_other.s
thumb-types.s
thumb.s
thumbv7em.s
thumbv7m.s
udf-arm-diagnostics.s
udf-arm.s
udf-thumb-2-diagnostics.s
udf-thumb-2.s
udf-thumb-diagnostics.s
udf-thumb.s
unwind-stack-diagnostics.s
v8_IT_manual.s ARM: improve instruction validation for thumb mode 2014-12-18 05:24:38 +00:00
variant-diagnostics.s
vfp4.s [ARM] Honor FeatureD16 in the assembler and disassembler 2014-11-05 12:06:39 +00:00
vfp-aliases-diagnostics.s
vfp-aliases.s
virtexts-arm.s Add ARM ERET and HVC virtualisation extension instructions. 2014-12-01 08:33:28 +00:00
virtexts-thumb.s Add Thumb HVC and ERET virtualisation extension instructions. 2014-12-01 08:39:19 +00:00
vmov-vmvn-byte-replicate.s
vmov-vmvn-illegal-cases.s
vorr-vbic-illegal-cases.s Add aliases for VAND imm to VBIC ~imm 2014-09-25 11:31:24 +00:00
vpush-vpop.s