diff options
author | Zoran Jovanovic <zoran.jovanovic@imgtec.com> | 2016-04-21 13:43:26 +0000 |
---|---|---|
committer | Zoran Jovanovic <zoran.jovanovic@imgtec.com> | 2016-04-21 13:43:26 +0000 |
commit | 02b700306866746df10db110d36e1917eef454da (patch) | |
tree | 1f8f58b58d526d1f796f6a95e545bc75a5c49083 /llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp | |
parent | 201398e8a308fdeda8d9f9ddb7797bbb3d919381 (diff) | |
download | bcm5719-llvm-02b700306866746df10db110d36e1917eef454da.tar.gz bcm5719-llvm-02b700306866746df10db110d36e1917eef454da.zip |
[mips][microMIPS] Add R_MICROMIPS_PC26_S1 relocation
Differential Revision: http://reviews.llvm.org/D14822
llvm-svn: 266985
Diffstat (limited to 'llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp')
-rw-r--r-- | llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp b/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp index 2ab4b99b51a..b0a4157c30a 100644 --- a/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp +++ b/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp @@ -356,7 +356,13 @@ unsigned MipsMCCodeEmitter::getBranchTarget26OpValueMM( if (MO.isImm()) return MO.getImm() >> 1; - // TODO: Push 26 PC fixup. + assert(MO.isExpr() && + "getBranchTarget26OpValueMM expects only expressions or immediates"); + + const MCExpr *FixupExpression = MCBinaryExpr::createAdd( + MO.getExpr(), MCConstantExpr::create(-4, Ctx), Ctx); + Fixups.push_back(MCFixup::create(0, FixupExpression, + MCFixupKind(Mips::fixup_MICROMIPS_PC26_S1))); return 0; } |