diff options
author | Jozef Kolek <jozef.kolek@imgtec.com> | 2015-01-21 12:10:11 +0000 |
---|---|---|
committer | Jozef Kolek <jozef.kolek@imgtec.com> | 2015-01-21 12:10:11 +0000 |
commit | 2c6d73207ec948ed62433818e6ce197ca571c795 (patch) | |
tree | 0b411da3572fc30bba84b848717e1e6a518e4ccf /llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp | |
parent | df5747a9004e5b5b79f3c44ba5e1e37503e7ad86 (diff) | |
download | bcm5719-llvm-2c6d73207ec948ed62433818e6ce197ca571c795.tar.gz bcm5719-llvm-2c6d73207ec948ed62433818e6ce197ca571c795.zip |
[mips][microMIPS] Implement ADDIUPC instruction
Differential Revision: http://reviews.llvm.org/D6582
llvm-svn: 226656
Diffstat (limited to 'llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp')
-rw-r--r-- | llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp b/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp index a54a2eb6b45..1fe85ec79a5 100644 --- a/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp +++ b/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp @@ -905,4 +905,16 @@ MipsMCCodeEmitter::getRegisterPairOpValue(const MCInst &MI, unsigned OpNo, return getMachineOpValue(MI, MI.getOperand(OpNo), Fixups, STI); } +unsigned +MipsMCCodeEmitter::getSimm23Lsl2Encoding(const MCInst &MI, unsigned OpNo, + SmallVectorImpl<MCFixup> &Fixups, + const MCSubtargetInfo &STI) const { + const MCOperand &MO = MI.getOperand(OpNo); + assert(MO.isImm() && "getSimm23Lsl2Encoding expects only an immediate"); + // The immediate is encoded as 'immediate >> 2'. + unsigned Res = static_cast<unsigned>(MO.getImm()); + assert((Res & 3) == 0); + return Res >> 2; +} + #include "MipsGenMCCodeEmitter.inc" |