diff options
Diffstat (limited to 'lld/ELF/Target.cpp')
-rw-r--r-- | lld/ELF/Target.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/lld/ELF/Target.cpp b/lld/ELF/Target.cpp index 8a28f4debe3..0826f4b81d5 100644 --- a/lld/ELF/Target.cpp +++ b/lld/ELF/Target.cpp @@ -650,6 +650,7 @@ RelExpr X86_64TargetInfo<ELFT>::getRelExpr(uint32_t Type, const SymbolBody &S) const { switch (Type) { case R_X86_64_8: + case R_X86_64_16: case R_X86_64_32: case R_X86_64_32S: case R_X86_64_64: @@ -879,6 +880,10 @@ void X86_64TargetInfo<ELFT>::relocateOne(uint8_t *Loc, uint32_t Type, checkUInt<8>(Loc, Val, Type); *Loc = Val; break; + case R_X86_64_16: + checkUInt<16>(Loc, Val, Type); + write16le(Loc, Val); + break; case R_X86_64_32: checkUInt<32>(Loc, Val, Type); write32le(Loc, Val); |