diff options
author | Jozef Kolek <jozef.kolek@imgtec.com> | 2014-11-24 14:25:53 +0000 |
---|---|---|
committer | Jozef Kolek <jozef.kolek@imgtec.com> | 2014-11-24 14:25:53 +0000 |
commit | 1904fa2197d8ef5ed48f24a8f07b3829980c93be (patch) | |
tree | 18dfe7ad103a470b8c730d33b8636476f99de75d /llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp | |
parent | 7760da3103ac00cbb82ccd30667da0bf61a43810 (diff) | |
download | bcm5719-llvm-1904fa2197d8ef5ed48f24a8f07b3829980c93be.tar.gz bcm5719-llvm-1904fa2197d8ef5ed48f24a8f07b3829980c93be.zip |
[mips][microMIPS] Implement 16-bit instructions registers including ZERO instead of S0
Implement microMIPS 16-bit instructions register set: $0, $2-$7 and $17.
Differential Revision: http://reviews.llvm.org/D5780
llvm-svn: 222652
Diffstat (limited to 'llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp')
-rw-r--r-- | llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp b/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp index 0c5b41f1b28..ec7d5074d39 100644 --- a/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp +++ b/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp @@ -663,6 +663,11 @@ public: Inst.addOperand(MCOperand::CreateReg(getGPRMM16Reg())); } + void addGPRMM16AsmRegZeroOperands(MCInst &Inst, unsigned N) const { + assert(N == 1 && "Invalid number of operands!"); + Inst.addOperand(MCOperand::CreateReg(getGPRMM16Reg())); + } + /// Render the operand to an MCInst as a GPR64 /// Asserts if the wrong number of operands are requested, or the operand /// is not a k_RegisterIndex compatible with RegKind_GPR @@ -964,6 +969,13 @@ public: return ((RegIdx.Index >= 2 && RegIdx.Index <= 7) || RegIdx.Index == 16 || RegIdx.Index == 17); } + bool isMM16AsmRegZero() const { + if (!(isRegIdx() && RegIdx.Kind)) + return false; + return (RegIdx.Index == 0 || + (RegIdx.Index >= 2 && RegIdx.Index <= 7) || + RegIdx.Index == 17); + } bool isFGRAsmReg() const { // AFGR64 is $0-$15 but we handle this in getAFGR64() return isRegIdx() && RegIdx.Kind & RegKind_FGR && RegIdx.Index <= 31; |