summaryrefslogtreecommitdiffstats
path: root/lld/lib/ReaderWriter/ELF
diff options
context:
space:
mode:
authorSimon Atanasyan <simon@atanasyan.com>2015-06-22 09:26:05 +0000
committerSimon Atanasyan <simon@atanasyan.com>2015-06-22 09:26:05 +0000
commit46d97f246b714e637dd13f3b8f699cd3c4214578 (patch)
tree0688effc8691c9b13665e82d7685f9c4c82b36e6 /lld/lib/ReaderWriter/ELF
parente55110454d649d9f644b0ce9c72557784d3285e9 (diff)
downloadbcm5719-llvm-46d97f246b714e637dd13f3b8f699cd3c4214578.tar.gz
bcm5719-llvm-46d97f246b714e637dd13f3b8f699cd3c4214578.zip
[Mips] Support R_MICROMIPS_HIGHER / R_MICROMIPS_HIGHEST relocations handling
llvm-svn: 240260
Diffstat (limited to 'lld/lib/ReaderWriter/ELF')
-rw-r--r--lld/lib/ReaderWriter/ELF/Mips/MipsRelocationHandler.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/lld/lib/ReaderWriter/ELF/Mips/MipsRelocationHandler.cpp b/lld/lib/ReaderWriter/ELF/Mips/MipsRelocationHandler.cpp
index 42fdc7726b7..93cfe417a5e 100644
--- a/lld/lib/ReaderWriter/ELF/Mips/MipsRelocationHandler.cpp
+++ b/lld/lib/ReaderWriter/ELF/Mips/MipsRelocationHandler.cpp
@@ -144,6 +144,8 @@ static MipsRelocationParams getRelocationParams(uint32_t rType) {
case R_MICROMIPS_HI16:
return {4, 0xffff, 0, true, gpDispCheck<16>};
case R_MICROMIPS_LO16:
+ case R_MICROMIPS_HIGHER:
+ case R_MICROMIPS_HIGHEST:
return {4, 0xffff, 0, true, dummyCheck};
case R_MICROMIPS_PC16_S1:
return {4, 0xffff, 1, true, signedCheck<17>};
@@ -393,8 +395,10 @@ static ErrorOr<int64_t> calculateRelocation(Reference::KindValue kind,
case R_MICROMIPS_CALL_HI16:
return getHi16(tgtAddr - gpAddr);
case R_MIPS_HIGHER:
+ case R_MICROMIPS_HIGHER:
return getHigher16(tgtAddr + addend);
case R_MIPS_HIGHEST:
+ case R_MICROMIPS_HIGHEST:
return getHighest16(tgtAddr + addend);
case R_MIPS_EH:
case R_MIPS_GOT16:
OpenPOWER on IntegriCloud