Index: lib/Object/COFFObjectFile.cpp =================================================================== --- lib/Object/COFFObjectFile.cpp +++ lib/Object/COFFObjectFile.cpp @@ -883,7 +883,7 @@ } uint8_t COFFObjectFile::getBytesInAddress() const { - return getArch() == Triple::x86_64 ? 8 : 4; + return getArch() == Triple::x86_64 || getArch() == Triple::aarch64 ? 8 : 4; } StringRef COFFObjectFile::getFileFormatName() const { Index: test/tools/llvm-readobj/file-headers.test =================================================================== --- test/tools/llvm-readobj/file-headers.test +++ test/tools/llvm-readobj/file-headers.test @@ -1,5 +1,7 @@ RUN: llvm-readobj -h %p/Inputs/trivial.obj.coff-arm \ RUN: | FileCheck %s -check-prefix COFF-ARM +RUN: llvm-readobj -h %p/Inputs/trivial.obj.coff-arm64 \ +RUN: | FileCheck %s -check-prefix COFF-ARM64 RUN: llvm-readobj -h %p/Inputs/trivial.obj.coff-i386 \ RUN: | FileCheck %s -check-prefix COFF32 RUN: llvm-readobj -h %p/Inputs/trivial.obj.coff-x86-64 \ @@ -47,6 +49,21 @@ COFF-ARM-NEXT: ] COFF-ARM-NEXT: } +COFF-ARM64: File: {{(.*[/\\])?}}trivial.obj.coff-arm64 +COFF-ARM64-NEXT: Format: COFF-ARM64 +COFF-ARM64-NEXT: Arch: aarch64 +COFF-ARM64-NEXT: AddressSize: 64bit +COFF-ARM64-NEXT: ImageFileHeader { +COFF-ARM64-NEXT: Machine: IMAGE_FILE_MACHINE_ARM64 (0xAA64) +COFF-ARM64-NEXT: SectionCount: 1 +COFF-ARM64-NEXT: TimeDateStamp: 1970-01-01 00:00:00 (0x0) +COFF-ARM64-NEXT: PointerToSymbolTable: 0x44 +COFF-ARM64-NEXT: SymbolCount: 3 +COFF-ARM64-NEXT: OptionalHeaderSize: 0 +COFF-ARM64-NEXT: Characteristics [ (0x0) +COFF-ARM64-NEXT: ] +COFF-ARM64-NEXT: } + COFF32: File: {{(.*[/\\])?}}trivial.obj.coff-i386 COFF32-NEXT: Format: COFF-i386 COFF32-NEXT: Arch: i386 Index: tools/llvm-readobj/COFFDumper.cpp =================================================================== --- tools/llvm-readobj/COFFDumper.cpp +++ tools/llvm-readobj/COFFDumper.cpp @@ -335,6 +335,7 @@ LLVM_READOBJ_ENUM_ENT(COFF, IMAGE_FILE_MACHINE_AM33 ), LLVM_READOBJ_ENUM_ENT(COFF, IMAGE_FILE_MACHINE_AMD64 ), LLVM_READOBJ_ENUM_ENT(COFF, IMAGE_FILE_MACHINE_ARM ), + LLVM_READOBJ_ENUM_ENT(COFF, IMAGE_FILE_MACHINE_ARM64 ), LLVM_READOBJ_ENUM_ENT(COFF, IMAGE_FILE_MACHINE_ARMNT ), LLVM_READOBJ_ENUM_ENT(COFF, IMAGE_FILE_MACHINE_EBC ), LLVM_READOBJ_ENUM_ENT(COFF, IMAGE_FILE_MACHINE_I386 ),