COFF: Don't read non-x64 object files.

Currently the new LLD supports only x86-64.

llvm-svn: 240749
diff --git a/lld/COFF/InputFiles.cpp b/lld/COFF/InputFiles.cpp
index c4b8226..f616d4c 100644
--- a/lld/COFF/InputFiles.cpp
+++ b/lld/COFF/InputFiles.cpp
@@ -23,6 +23,8 @@
 using namespace llvm::support::endian;
 using llvm::COFF::ImportHeader;
 using llvm::COFF::IMAGE_COMDAT_SELECT_ASSOCIATIVE;
+using llvm::COFF::IMAGE_FILE_MACHINE_AMD64;
+using llvm::COFF::IMAGE_FILE_MACHINE_UNKNOWN;
 using llvm::RoundUpToAlignment;
 using llvm::sys::fs::identify_magic;
 using llvm::sys::fs::file_magic;
@@ -98,6 +100,11 @@
     llvm::errs() << getName() << " is not a COFF file.\n";
     return make_error_code(LLDError::InvalidFile);
   }
+  if (COFFObj->getMachine() != IMAGE_FILE_MACHINE_AMD64 &&
+      COFFObj->getMachine() != IMAGE_FILE_MACHINE_UNKNOWN) {
+    llvm::errs() << getName() << " is not an x64 object file.\n";
+    return make_error_code(LLDError::InvalidFile);
+  }
 
   // Read section and symbol tables.
   if (auto EC = initializeChunks())