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 Reduce verbiage of lit.local.cfg files 2014-06-09 22:42:55 +00:00
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 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_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 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 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-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: update even more tests 2014-04-03 17:35:22 +00:00
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 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 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 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
complex-operands.s Change the ARM assembler to require a :lower16: or :upper16 on non-constant 2014-04-18 23:06:39 +00:00
coproc-diag.s Add tests for cp10/cp11 on ARMv5/6 2014-08-05 15:29:41 +00:00
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 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
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
directive-arch_extension-sec.s
directive-arch_extension-simd.s ARM: correct handling of features in arch_extension 2014-07-27 19:07:09 +00:00
directive-arch_extension-toggle.s ARM: correct toggling behaviour 2014-08-17 19:20:38 +00:00
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 ARM IAS: support .short and .hword 2014-02-23 06:22:09 +00:00
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 ARM: Make .unreq directives case-insensitive 2014-03-07 16:16:52 +00:00
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 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
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 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
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 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
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
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
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 Fix yet another unseen regression caused by r223113 2014-12-04 19:34:59 +00:00
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
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 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
obsolete-v8.s
pool.s Test commit - Added a new line 2014-04-16 16:45:18 +00:00
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 ARM: fixup more tests to specify the target more explicitly 2014-04-03 16:01:44 +00:00
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 M-class MSR instruction support changes 2014-09-01 11:25:07 +00:00
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_rewrites.s Elide repeated register operand in Thumb1 instructions 2014-09-26 16:14:29 +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 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 Specify that the thumb setend and blx <immed> instructions are not valid on an m-class target 2014-08-05 15:11:59 +00:00
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
thumbv7em.s Thumb2 M-class MSR instruction support changes 2014-09-01 11:25:07 +00:00
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 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 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 Add aliases for VAND imm to VBIC ~imm 2014-09-25 11:31:24 +00:00
vpush-vpop.s