diff options
| author | Simon Atanasyan <simon@atanasyan.com> | 2015-06-22 09:26:05 +0000 |
|---|---|---|
| committer | Simon Atanasyan <simon@atanasyan.com> | 2015-06-22 09:26:05 +0000 |
| commit | 46d97f246b714e637dd13f3b8f699cd3c4214578 (patch) | |
| tree | 0688effc8691c9b13665e82d7685f9c4c82b36e6 /lld/lib/ReaderWriter/ELF | |
| parent | e55110454d649d9f644b0ce9c72557784d3285e9 (diff) | |
| download | bcm5719-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.cpp | 4 |
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: |

