llvm-6502/test/MC/Mips
Daniel Sanders c96096cc0f [mips][mips64r6] Add b[on]vc
Summary:
This required me to implement the disassembler for MIPS64r6 since the encodings
are ambiguous with other instructions. This in turn revealed a few
assembly/disassembly bugs which I have fixed.

* da[ht]i only take two operands according to the spec, not three.
* DecodeBranchTarget2[16] correctly handles wider immediates than simm16
  * Also made non-functional change to DecodeBranchTarget and
    DecodeBranchTargetMM to keep implementation style consistent between
    them.
* Difficult encodings are handled by a custom decode method on the most
  general encoding in the group. This method will convert the MCInst to a
  different opcode if necessary.

DecodeBranchTarget is not currently the inverse of getBranchTargetOpValue
so disassembling some branch instructions emit incorrect output. This seems
to affect branches with delay slots on all MIPS ISA's. I've left this bug
for now and temporarily removed the check for the immediate on
bc[12]eqz/bc[12]nez in the MIPS32r6/MIPS64r6 tests.

jialc and jic crash the disassembler for some reason. I've left these
instructions commented out for the moment.

Depends on D3760

Reviewers: jkolek, zoran.jovanovic, vmedic

Reviewed By: vmedic

Differential Revision: http://reviews.llvm.org/D3761

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@209415 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-22 11:23:21 +00:00
..
mips1 [mips] Marked up instructions added in MIPS-V and tested that IAS for -mcpu=mips[1234] does not accept them 2014-05-12 12:52:44 +00:00
mips2 [mips] Marked up instructions added in MIPS32r2 and tested that IAS for -mcpu=mips(2|32) does not accept them 2014-05-13 11:45:36 +00:00
mips3 [mips] Marked up instructions added in MIPS-V and tested that IAS for -mcpu=mips[1234] does not accept them 2014-05-12 12:52:44 +00:00
mips4 [mips] Marked up instructions added in MIPS32r2 and tested that IAS for -mcpu=mips(2|32) does not accept them 2014-05-13 11:45:36 +00:00
mips5 [mips] Test that IAS for -mcpu=mips5 does not accept MIPS64 insns and -mcpu=mips(5|64) does not accept MIPS64r2 2014-05-14 15:35:03 +00:00
mips32 [mips] Marked up instructions added in MIPS32r2 and tested that IAS for -mcpu=mips(2|32) does not accept them 2014-05-13 11:45:36 +00:00
mips32r2 [mips] Fold FeatureSwap into FeatureMips32r2 and FeatureMips64r2 2014-05-12 12:15:41 +00:00
mips32r6 [mips][mips64r6] Add b[on]vc 2014-05-22 11:23:21 +00:00
mips64 [mips] Test that IAS for -mcpu=mips5 does not accept MIPS64 insns and -mcpu=mips(5|64) does not accept MIPS64r2 2014-05-14 15:35:03 +00:00
mips64r2 [mips] Added missing daddu test to the valid instruction tests. 2014-05-09 09:32:01 +00:00
mips64r6 [mips][mips64r6] Add b[on]vc 2014-05-22 11:23:21 +00:00
msa [mips] Move disassembler test (test_2r_msa64) into correct folder. 2014-05-12 16:59:34 +00:00
cfi.s [mips] Rewrite MipsAsmParser and MipsOperand. 2014-04-01 10:35:28 +00:00
cpload-bad.s [mips] Add support for .cpload. 2014-04-30 11:28:42 +00:00
cpload.s [mips] Add support for .cpload. 2014-04-30 11:28:42 +00:00
cpsetup.s [mips] Move expansion of .cpsetup to target streamer. 2014-05-01 10:24:46 +00:00
do_switch1.s Convert "llc -filetype=obj" test into llvm-mc tests. 2014-03-28 18:30:07 +00:00
do_switch2.s Convert "llc -filetype=obj" test into llvm-mc tests. 2014-03-28 18:30:07 +00:00
do_switch3.s Parse .gpdword and convert another llc -filetype=obj test. 2014-03-28 18:50:26 +00:00
eh-frame.s
elf_basic.s
elf_eflags_abicalls.s Implement the missing bits corresponding to .mips_hack_elf_flags. 2014-01-26 06:57:13 +00:00
elf_eflags_micromips.s Implement the missing bits corresponding to .mips_hack_elf_flags. 2014-01-26 06:57:13 +00:00
elf_eflags_mips16.s Implement the missing bits corresponding to .mips_hack_elf_flags. 2014-01-26 06:57:13 +00:00
elf_eflags_nan2008.s [mips] Add initial support for NaN2008 in the back-end. 2014-04-16 15:48:55 +00:00
elf_eflags_nanlegacy.s [mips] Add initial support for NaN2008 in the back-end. 2014-04-16 15:48:55 +00:00
elf_eflags_noreorder.s Implement the missing bits corresponding to .mips_hack_elf_flags. 2014-01-26 06:57:13 +00:00
elf_eflags_pic0.s Implement the missing bits corresponding to .mips_hack_elf_flags. 2014-01-26 06:57:13 +00:00
elf_eflags_pic2.s [mips] Add support for '.option pic2'. 2014-03-26 13:40:29 +00:00
elf_eflags.s [mips] Add initial support for NaN2008 in the back-end. 2014-04-16 15:48:55 +00:00
elf_reginfo.s [mips] Make it impossible to have UnknownABI in CodeGen and Integrated Assembler. 2014-02-20 14:58:19 +00:00
elf_st_other.s Only mark functions as micromips. 2014-01-15 03:07:12 +00:00
elf-bigendian.ll
elf-gprel-32-64.s [mips] Emit all three relocation operations for each relocation entry on Mips64 big-endian systems. 2014-04-30 11:21:10 +00:00
elf-N64.s [mips] Emit all three relocation operations for each relocation entry on Mips64 big-endian systems. 2014-04-30 11:21:10 +00:00
elf-objdump.s
elf-relsym.s Map ELf flags back to more specific section kinds. 2014-03-28 19:14:08 +00:00
elf-tls.s Convert another llc -filetype=obj test. 2014-03-28 19:19:28 +00:00
expr1.s
higher-highest-addressing.s [mips] Extend MipsMCExpr class to handle %higher(sym1 - sym2 + const) and 2014-04-03 10:37:45 +00:00
hilo-addressing.s Changed comment. 2014-02-07 11:16:02 +00:00
lit.local.cfg [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
micromips-16-bit-instructions.s Implementation of 16-bit microMIPS instructions MFHI and MFLO. 2014-04-03 12:47:34 +00:00
micromips-alias.s Mark alias symbols as microMIPS if necessary. Differential Revision: http://llvm-reviews.chandlerc.com/D3080 2014-03-20 09:44:49 +00:00
micromips-alu-instructions.s Implementation of microMIPS 16-bit instructions MOVE and JALR. 2014-03-20 10:18:24 +00:00
micromips-bad-branches.s [mips] Add checks for alignment and maximum displacements for most of the 2013-12-13 11:11:02 +00:00
micromips-branch16.s Support for microMIPS branch instructions. 2013-11-04 14:53:22 +00:00
micromips-branch-instructions.s Support for microMIPS branch instructions. 2013-11-04 14:53:22 +00:00
micromips-control-instructions.s [mips] Marked up instructions added in MIPS32r2 and tested that IAS for -mcpu=mips(2|32) does not accept them 2014-05-13 11:45:36 +00:00
micromips-diagnostic-fixup.s [mips] Add checks for alignment and maximum displacements for most of the 2013-12-13 11:11:02 +00:00
micromips-el-fixup-data.s Fix some doc and comment typos 2014-04-09 14:47:27 +00:00
micromips-expansions.s Added tests for microMIPS relocations 1. 2013-10-24 10:55:00 +00:00
micromips-expressions.s Added tests for microMIPS relocations 1. 2013-10-24 10:55:00 +00:00
micromips-fpu-instructions.s Support for microMIPS FPU instructions 2. 2013-12-25 10:09:27 +00:00
micromips-jump26.s Support for microMIPS jump instructions 2013-10-29 16:38:59 +00:00
micromips-jump-instructions.s Implementation of microMIPS 16-bit instructions MOVE and JALR. 2014-03-20 10:18:24 +00:00
micromips-loadstore-instructions.s Added support for LWU microMIPS instruction. 2014-01-15 13:01:18 +00:00
micromips-loadstore-unaligned.s [Mips] Support for unaligned load/store microMips instructions 2013-08-13 20:19:16 +00:00
micromips-movcond-instructions.s This patch adds support for microMIPS Move Conditional instructions. Test cases are included in patch. 2013-09-06 12:41:17 +00:00
micromips-multiply-instructions.s This patch adds support for microMIPS Multiply and Add/Sub instructions. Test cases are included in patch. 2013-09-06 13:08:00 +00:00
micromips-pc16-fixup.s [mips] Fix off by one issue when applying a fixup. 2013-12-17 17:10:00 +00:00
micromips-relocations.s Support for microMIPS TLS relocations. 2013-12-19 16:02:32 +00:00
micromips-shift-instructions.s Mips ELF: MicroMips direct object Little endian support. 2013-08-08 23:30:40 +00:00
micromips-tailr.s Support for microMIPS jump instructions 2013-10-29 16:38:59 +00:00
micromips-trap-instructions.s Use instr mapping for microMIPS in llvm-mc. 2013-11-15 08:07:34 +00:00
mips64-alu-instructions.s [mips] Use TwoOperandAliasConstraint for ArithLogicR instructions. 2014-03-26 16:09:43 +00:00
mips64-instructions.s [mips] Use ptr_rc to simplify definitions of base+index load/store instructions. 2013-08-28 00:55:15 +00:00
mips64-register-names-n32-n64.s [mips] Add tests for t0-t3 for N32/N64 2014-03-26 11:46:34 +00:00
mips64-register-names-o32.s [mips] The register names depend on the ABI being N32/N64 rather than the arch being mips64 2014-03-26 11:39:07 +00:00
mips64eb-fixups.s [mips] support FK_Data_2 and FK_Data_8 to fix big-endian debug data 2014-03-03 14:27:49 +00:00
mips64extins.ll
mips64shift.ll
mips_directives_bad.s [mips] Add support for '.option pic2'. 2014-03-26 13:40:29 +00:00
mips_directives.s [mips] Add support to '.set mips64'. 2014-03-26 15:14:32 +00:00
mips_gprel16.s Convert llc -filetype=obj test. 2014-03-28 19:38:20 +00:00
mips-alu-instructions.s [mips] Use TwoOperandAliasConstraint for ArithLogicR instructions. 2014-03-26 16:09:43 +00:00
mips-bad-branches.s [mips] Add checks for alignment and maximum displacements for most of the 2013-12-13 11:11:02 +00:00
mips-control-instructions.s TableGen: use PrintMethods to print more aliases 2014-05-12 18:04:06 +00:00
mips-coprocessor-encodings.s
mips-data-directives.s [mips] Add support to the '.dword' directive. 2014-03-26 15:44:18 +00:00
mips-diagnostic-fixup.s [mips] Add checks for alignment and maximum displacements for most of the 2013-12-13 11:11:02 +00:00
mips-dsp-instructions.s [mips] Set HI/LO registers' HWEncoding field. 2013-10-15 01:00:00 +00:00
mips-expansions.s
mips-fpu-instructions.s This patch fixes a bug in floating point operands parsing, when instruction alias uses default register operand. 2013-11-13 09:48:53 +00:00
mips-jump-instructions.s This patch implements jalx instruction for Mips architecture.This instruction executes a procedure call within the current 256 MB-aligned region and change the ISA Mode from MIPS32 to microMIPS32 or MIPS16e. Usage samples for assembler and dissasembler are provided as well. 2014-03-03 13:12:59 +00:00
mips-memory-instructions.s
mips-noat.s [mips] '.set at=$0' should be equivalent to '.set noat' 2014-03-25 13:01:06 +00:00
mips-pc16-fixup.s [mips] Fix off by one issue when applying a fixup. 2013-12-17 17:10:00 +00:00
mips-register-names-invalid.s [mips] Rewrite MipsAsmParser and MipsOperand. 2014-04-01 10:35:28 +00:00
mips-register-names-o32.s [mips] The register names depend on the ABI being N32/N64 rather than the arch being mips64 2014-03-26 11:39:07 +00:00
mips-relocations.s
multi-64bit-func.ll
nabi-regs.s [mips] Make it impossible to have UnknownABI in CodeGen and Integrated Assembler. 2014-02-20 14:58:19 +00:00
nacl-mask.s [mips] Implement NaCl sandboxing of function calls: 2014-03-11 21:23:40 +00:00
octeon-instructions.s [mips] Add Octeon cnMips instructions seqi/snei and v3mulu/vmm0/vmulu. 2014-04-04 16:21:59 +00:00
pr11877.s
r-mips-got-disp.s Convert llc -filetype=obj test. 2014-03-28 19:41:33 +00:00
set-at-directive-explicit-at.s [mips] Rewrite MipsAsmParser and MipsOperand. 2014-04-01 10:35:28 +00:00
set-at-directive.s [mips] Correct testcase for .set at=$reg and emit the new warnings for numeric registers too. 2014-03-25 11:16:03 +00:00
sext_64_32.ll
sym-expr.s [mips] Extend ParseJumpTarget to support the full symbol expression syntax. 2014-04-01 10:41:48 +00:00
sym-offset.ll
xgot.s Don't relocate with sections if there might be a paired relocation. 2014-03-31 19:00:23 +00:00