diff options
author | Simon Atanasyan <simon@atanasyan.com> | 2018-05-29 10:27:44 +0000 |
---|---|---|
committer | Simon Atanasyan <simon@atanasyan.com> | 2018-05-29 10:27:44 +0000 |
commit | 6be87bce29bc55805047abbcef4f963dff00fa40 (patch) | |
tree | 47d079c2b2591444cc7f2512527a40c61beef581 /llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp | |
parent | cc09d7829701b76503b49e1a533b2a5aee6e8ff9 (diff) | |
download | bcm5719-llvm-6be87bce29bc55805047abbcef4f963dff00fa40.tar.gz bcm5719-llvm-6be87bce29bc55805047abbcef4f963dff00fa40.zip |
[mips] Emit R_MICROMIPS_HIGHER / R_MICROMIPS_HIGHEST relocations
Emit R_MICROMIPS_HIGHER / R_MICROMIPS_HIGHEST relocations for %higher()
and %highest() expressions in case of microMIPS. These relocations do
exactly the same things as R_MIPS_HIGHER / R_MIPS_HIGHEST, but for
consistency it's better to write microMIPS variants.
Differential Revision: http://reviews.llvm.org/D47219
llvm-svn: 333407
Diffstat (limited to 'llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp')
-rw-r--r-- | llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp b/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp index 2f6dd0035de..f302864910a 100644 --- a/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp +++ b/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp @@ -664,10 +664,12 @@ getExprOpValue(const MCExpr *Expr, SmallVectorImpl<MCFixup> &Fixups, : Mips::fixup_Mips_LO16; break; case MipsMCExpr::MEK_HIGHEST: - FixupKind = Mips::fixup_Mips_HIGHEST; + FixupKind = isMicroMips(STI) ? Mips::fixup_MICROMIPS_HIGHEST + : Mips::fixup_Mips_HIGHEST; break; case MipsMCExpr::MEK_HIGHER: - FixupKind = Mips::fixup_Mips_HIGHER; + FixupKind = isMicroMips(STI) ? Mips::fixup_MICROMIPS_HIGHER + : Mips::fixup_Mips_HIGHER; break; case MipsMCExpr::MEK_HI: // Check for %hi(%neg(%gp_rel(X))) |