Implement R_X86_64_16.

It is used by qemu.

llvm-svn: 294965
diff --git a/lld/ELF/Target.cpp b/lld/ELF/Target.cpp
index 8a28f4d..0826f4b 100644
--- a/lld/ELF/Target.cpp
+++ b/lld/ELF/Target.cpp
@@ -650,6 +650,7 @@
                                            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 @@
     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);