OSDN Git Service

[mips] Add movep for microMIPS32R6 and fix microMIPS32r3 version
authorSimon Dardis <simon.dardis@mips.com>
Mon, 6 Nov 2017 12:59:53 +0000 (12:59 +0000)
committerSimon Dardis <simon.dardis@mips.com>
Mon, 6 Nov 2017 12:59:53 +0000 (12:59 +0000)
commitdfaa4d2c2bc19039f978c37524042b416034e70a
treeb6bd6e382e5f256d8d5270a809a72a44d16684c1
parent2b2534cd8576698e14c131a23f3000d4443a8c24
[mips] Add movep for microMIPS32R6 and fix microMIPS32r3 version

Previously, the 'movep' instruction was defined for microMIPS32r3 and
shared that definition with microMIPS32R6. 'movep' was re-encoded for
microMIPS32r6, so this patch provides the correct encoding.

Secondly, correct the encoding of the 'rs' and 'rt' operands which have
an instruction specific encoding for the registers those operands accept.

Finally, correct the decoding of the 'dst_regs' operand which was extracting
the relevant field from the instruction, but was actually extracting the
field from the alreadly extracted field.

Reviewers: atanasyan

Differential Revision: https://reviews.llvm.org/D39495

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@317475 91177308-0d34-0410-b5e6-96231b3b80d8
14 files changed:
lib/Target/Mips/Disassembler/MipsDisassembler.cpp
lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp
lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.h
lib/Target/Mips/MicroMips32r6InstrFormats.td
lib/Target/Mips/MicroMips32r6InstrInfo.td
lib/Target/Mips/MicroMipsInstrInfo.td
lib/Target/Mips/MipsRegisterInfo.td
lib/Target/Mips/MipsScheduleGeneric.td
test/MC/Disassembler/Mips/micromips32r3/valid-el.txt
test/MC/Disassembler/Mips/micromips32r3/valid.txt
test/MC/Disassembler/Mips/micromips32r6/valid.txt
test/MC/Disassembler/Mips/micromips64r6/valid.txt
test/MC/Mips/micromips32r6/valid.s
test/MC/Mips/micromips64r6/valid.s