[llvm] r347703 - [yaml2obj] Treat COFF/ARM64 as a 64 bit architecture
Martin Storsjo via llvm-commits
llvm-commits at lists.llvm.org
Tue Nov 27 12:47:38 PST 2018
Author: mstorsjo
Date: Tue Nov 27 12:47:38 2018
New Revision: 347703
URL: http://llvm.org/viewvc/llvm-project?rev=347703&view=rev
Log:
[yaml2obj] Treat COFF/ARM64 as a 64 bit architecture
Differential Revision: https://reviews.llvm.org/D54935
Added:
llvm/trunk/test/tools/yaml2obj/coff-arm64.yaml
Modified:
llvm/trunk/tools/yaml2obj/yaml2coff.cpp
Added: llvm/trunk/test/tools/yaml2obj/coff-arm64.yaml
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/yaml2obj/coff-arm64.yaml?rev=347703&view=auto
==============================================================================
--- llvm/trunk/test/tools/yaml2obj/coff-arm64.yaml (added)
+++ llvm/trunk/test/tools/yaml2obj/coff-arm64.yaml Tue Nov 27 12:47:38 2018
@@ -0,0 +1,89 @@
+# RUN: yaml2obj %s -o %t
+# RUN: llvm-readobj -file-headers %t | FileCheck %s
+
+# CHECK: OptionalHeaderSize: 240
+
+--- !COFF
+OptionalHeader:
+ AddressOfEntryPoint: 4096
+ ImageBase: 1073741824
+ SectionAlignment: 4096
+ FileAlignment: 512
+ MajorOperatingSystemVersion: 6
+ MinorOperatingSystemVersion: 0
+ MajorImageVersion: 0
+ MinorImageVersion: 0
+ MajorSubsystemVersion: 6
+ MinorSubsystemVersion: 0
+ Subsystem: IMAGE_SUBSYSTEM_WINDOWS_CUI
+ DLLCharacteristics: [ IMAGE_DLL_CHARACTERISTICS_HIGH_ENTROPY_VA, IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE, IMAGE_DLL_CHARACTERISTICS_NX_COMPAT, IMAGE_DLL_CHARACTERISTICS_TERMINAL_SERVER_AWARE ]
+ SizeOfStackReserve: 1048576
+ SizeOfStackCommit: 4096
+ SizeOfHeapReserve: 1048576
+ SizeOfHeapCommit: 4096
+ ExportTable:
+ RelativeVirtualAddress: 0
+ Size: 0
+ ImportTable:
+ RelativeVirtualAddress: 0
+ Size: 0
+ ResourceTable:
+ RelativeVirtualAddress: 0
+ Size: 0
+ ExceptionTable:
+ RelativeVirtualAddress: 12288
+ Size: 8
+ CertificateTable:
+ RelativeVirtualAddress: 0
+ Size: 0
+ BaseRelocationTable:
+ RelativeVirtualAddress: 0
+ Size: 0
+ Debug:
+ RelativeVirtualAddress: 0
+ Size: 0
+ Architecture:
+ RelativeVirtualAddress: 0
+ Size: 0
+ GlobalPtr:
+ RelativeVirtualAddress: 0
+ Size: 0
+ TlsTable:
+ RelativeVirtualAddress: 0
+ Size: 0
+ LoadConfigTable:
+ RelativeVirtualAddress: 0
+ Size: 0
+ BoundImport:
+ RelativeVirtualAddress: 0
+ Size: 0
+ IAT:
+ RelativeVirtualAddress: 0
+ Size: 0
+ DelayImportDescriptor:
+ RelativeVirtualAddress: 0
+ Size: 0
+ ClrRuntimeHeader:
+ RelativeVirtualAddress: 0
+ Size: 0
+header:
+ Machine: IMAGE_FILE_MACHINE_ARM64
+ Characteristics: [ IMAGE_FILE_EXECUTABLE_IMAGE, IMAGE_FILE_LARGE_ADDRESS_AWARE ]
+sections:
+ - Name: .text
+ Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]
+ VirtualAddress: 1073745920
+ VirtualSize: 4
+ SectionData: C0035FD6
+ - Name: .rdata
+ Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ ]
+ VirtualAddress: 1073750016
+ VirtualSize: 12
+ SectionData: 0100400800000000E4E3E3E3
+ - Name: .pdata
+ Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ ]
+ VirtualAddress: 1073754112
+ VirtualSize: 8
+ SectionData: '0010000000200000'
+symbols: []
+...
Modified: llvm/trunk/tools/yaml2obj/yaml2coff.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/yaml2obj/yaml2coff.cpp?rev=347703&r1=347702&r2=347703&view=diff
==============================================================================
--- llvm/trunk/tools/yaml2obj/yaml2coff.cpp (original)
+++ llvm/trunk/tools/yaml2obj/yaml2coff.cpp Tue Nov 27 12:47:38 2018
@@ -46,7 +46,8 @@ struct COFFParser {
bool isPE() const { return Obj.OptionalHeader.hasValue(); }
bool is64Bit() const {
- return Obj.Header.Machine == COFF::IMAGE_FILE_MACHINE_AMD64;
+ return Obj.Header.Machine == COFF::IMAGE_FILE_MACHINE_AMD64 ||
+ Obj.Header.Machine == COFF::IMAGE_FILE_MACHINE_ARM64;
}
uint32_t getFileAlignment() const {
More information about the llvm-commits
mailing list