diff options
-rw-r--r-- | llvm/lib/Object/COFFObjectFile.cpp | 4 | ||||
-rw-r--r-- | llvm/lib/Support/Path.cpp | 1 | ||||
-rwxr-xr-x | llvm/test/tools/llvm-readobj/Inputs/trivial.obj.coff-arm | bin | 0 -> 367 bytes | |||
-rw-r--r-- | llvm/test/tools/llvm-readobj/file-headers.test | 17 |
4 files changed, 22 insertions, 0 deletions
diff --git a/llvm/lib/Object/COFFObjectFile.cpp b/llvm/lib/Object/COFFObjectFile.cpp index 6ef2fbfed53..461dbac1168 100644 --- a/llvm/lib/Object/COFFObjectFile.cpp +++ b/llvm/lib/Object/COFFObjectFile.cpp @@ -663,6 +663,8 @@ StringRef COFFObjectFile::getFileFormatName() const { return "COFF-i386"; case COFF::IMAGE_FILE_MACHINE_AMD64: return "COFF-x86-64"; + case COFF::IMAGE_FILE_MACHINE_ARMNT: + return "COFF-ARM"; default: return "COFF-<unknown arch>"; } @@ -674,6 +676,8 @@ unsigned COFFObjectFile::getArch() const { return Triple::x86; case COFF::IMAGE_FILE_MACHINE_AMD64: return Triple::x86_64; + case COFF::IMAGE_FILE_MACHINE_ARMNT: + return Triple::thumb; default: return Triple::UnknownArch; } diff --git a/llvm/lib/Support/Path.cpp b/llvm/lib/Support/Path.cpp index 6fdad22158d..895e81f4946 100644 --- a/llvm/lib/Support/Path.cpp +++ b/llvm/lib/Support/Path.cpp @@ -1016,6 +1016,7 @@ error_code has_magic(const Twine &path, const Twine &magic, bool &result) { case 0x66: // MPS R4000 Windows case 0x50: // mc68K case 0x4c: // 80386 Windows + case 0xc4: // ARMNT Windows if (Magic[1] == 0x01) return file_magic::coff_object; diff --git a/llvm/test/tools/llvm-readobj/Inputs/trivial.obj.coff-arm b/llvm/test/tools/llvm-readobj/Inputs/trivial.obj.coff-arm Binary files differnew file mode 100755 index 00000000000..e3b5df4c778 --- /dev/null +++ b/llvm/test/tools/llvm-readobj/Inputs/trivial.obj.coff-arm diff --git a/llvm/test/tools/llvm-readobj/file-headers.test b/llvm/test/tools/llvm-readobj/file-headers.test index b2b454772d6..845bad87930 100644 --- a/llvm/test/tools/llvm-readobj/file-headers.test +++ b/llvm/test/tools/llvm-readobj/file-headers.test @@ -1,3 +1,5 @@ +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-i386 \ RUN: | FileCheck %s -check-prefix COFF32 RUN: llvm-readobj -h %p/Inputs/trivial.obj.coff-x86-64 \ @@ -13,6 +15,21 @@ RUN: | FileCheck %s -check-prefix COFF-UNKNOWN RUN: llvm-readobj -h %p/Inputs/magic.coff-importlib \ RUN: | FileCheck %s -check-prefix COFF-IMPORTLIB +COFF-ARM: File: {{(.*[/\\])?}}trivial.obj.coff-arm +COFF-ARM-NEXT: Format: COFF-ARM +COFF-ARM-NEXT: Arch: thumb +COFF-ARM-NEXT: AddressSize: 32bit +COFF-ARM-NEXT: ImageFileHeader { +COFF-ARM-NEXT: Machine: IMAGE_FILE_MACHINE_ARMNT (0x1C4) +COFF-ARM-NEXT: SectionCount: 2 +COFF-ARM-NEXT: TimeDateStamp: 2014-03-13 02:48:34 (0x53211C82) +COFF-ARM-NEXT: PointerToSymbolTable: 0xFF +COFF-ARM-NEXT: SymbolCount: 6 +COFF-ARM-NEXT: OptionalHeaderSize: 0 +COFF-ARM-NEXT: Characteristics [ (0x0) +COFF-ARM-NEXT: ] +COFF-ARM-NEXT: } + COFF32: File: {{(.*[/\\])?}}trivial.obj.coff-i386 COFF32-NEXT: Format: COFF-i386 COFF32-NEXT: Arch: i386 |