| # RUN: yaml2obj --docnum=1 %s -o %t |
| # RUN: llvm-objdump -p %t | FileCheck %s --check-prefix=PE32PLUS --strict-whitespace --match-full-lines |
| |
| # PE32PLUS:{{.*}}file format coff-arm64 |
| # PE32PLUS-NEXT:Characteristics 0x22 |
| # PE32PLUS-NEXT: executable |
| # PE32PLUS-NEXT: large address aware |
| #PE32PLUS-EMPTY: |
| # PE32PLUS-NEXT:Time/Date {{.*}} 19{{69|70}} |
| # PE32PLUS-NEXT:Magic 020b (PE32+) |
| # PE32PLUS-NEXT:MajorLinkerVersion 0 |
| # PE32PLUS-NEXT:MinorLinkerVersion 0 |
| # PE32PLUS-NEXT:SizeOfCode 0000000000000200 |
| # PE32PLUS-NEXT:SizeOfInitializedData 0000000000000400 |
| # PE32PLUS-NEXT:SizeOfUninitializedData 0000000000000000 |
| # PE32PLUS-NEXT:AddressOfEntryPoint 0000000000001000 |
| # PE32PLUS-NEXT:BaseOfCode 0000000000001000 |
| # PE32PLUS-NEXT:ImageBase 0000000140000000 |
| # PE32PLUS-NEXT:SectionAlignment 00001000 |
| # PE32PLUS-NEXT:FileAlignment 00000200 |
| # PE32PLUS-NEXT:MajorOSystemVersion 6 |
| # PE32PLUS-NEXT:MinorOSystemVersion 1 |
| # PE32PLUS-NEXT:MajorImageVersion 7 |
| # PE32PLUS-NEXT:MinorImageVersion 2 |
| # PE32PLUS-NEXT:MajorSubsystemVersion 8 |
| # PE32PLUS-NEXT:MinorSubsystemVersion 3 |
| # PE32PLUS-NEXT:Win32Version 00000000 |
| # PE32PLUS-NEXT:SizeOfImage 00004000 |
| # PE32PLUS-NEXT:SizeOfHeaders 00000200 |
| # PE32PLUS-NEXT:CheckSum 00000000 |
| # PE32PLUS-NEXT:Subsystem 00000003 (Windows CUI) |
| # PE32PLUS-NEXT:DllCharacteristics 00008160 |
| # PE32PLUS-NEXT: HIGH_ENTROPY_VA |
| # PE32PLUS-NEXT: DYNAMIC_BASE |
| # PE32PLUS-NEXT: NX_COMPAT |
| # PE32PLUS-NEXT: TERMINAL_SERVER_AWARE |
| # PE32PLUS-NEXT:SizeOfStackReserve 0000000000100000 |
| # PE32PLUS-NEXT:SizeOfStackCommit 0000000000001000 |
| # PE32PLUS-NEXT:SizeOfHeapReserve 0000000000100000 |
| # PE32PLUS-NEXT:SizeOfHeapCommit 0000000000001000 |
| # PE32PLUS-NEXT:LoaderFlags 00000000 |
| # PE32PLUS-NEXT:NumberOfRvaAndSizes 00000010 |
| #PE32PLUS-EMPTY: |
| # PE32PLUS-NEXT:The Data Directory |
| # PE32PLUS-NEXT:Entry 0 0000000000000000 00000000 Export Directory [.edata (or where ever we found it)] |
| # PE32PLUS-NEXT:Entry 1 0000000000000000 00000000 Import Directory [parts of .idata] |
| # PE32PLUS-NEXT:Entry 2 0000000000000000 00000000 Resource Directory [.rsrc] |
| # PE32PLUS-NEXT:Entry 3 0000000000003000 00000008 Exception Directory [.pdata] |
| # PE32PLUS-NEXT:Entry 4 0000000000000000 00000000 Security Directory |
| # PE32PLUS-NEXT:Entry 5 0000000000000000 00000000 Base Relocation Directory [.reloc] |
| # PE32PLUS-NEXT:Entry 6 0000000000000000 00000000 Debug Directory |
| # PE32PLUS-NEXT:Entry 7 0000000000000000 00000000 Description Directory |
| # PE32PLUS-NEXT:Entry 8 0000000000000000 00000000 Special Directory |
| # PE32PLUS-NEXT:Entry 9 0000000000000000 00000000 Thread Storage Directory [.tls] |
| # PE32PLUS-NEXT:Entry a 0000000000000000 00000000 Load Configuration Directory |
| # PE32PLUS-NEXT:Entry b 0000000000000000 00000000 Bound Import Directory |
| # PE32PLUS-NEXT:Entry c 0000000000000000 00000000 Import Address Table Directory |
| # PE32PLUS-NEXT:Entry d 0000000000000000 00000000 Delay Import Directory |
| # PE32PLUS-NEXT:Entry e 0000000000000000 00000000 CLR Runtime Header |
| # PE32PLUS-NEXT:Entry f 0000000000000000 00000000 Reserved |
| |
| --- !COFF |
| OptionalHeader: |
| AddressOfEntryPoint: 4096 |
| ImageBase: 0x140000000 |
| SectionAlignment: 4096 |
| FileAlignment: 512 |
| MajorOperatingSystemVersion: 6 |
| MinorOperatingSystemVersion: 1 |
| MajorImageVersion: 7 |
| MinorImageVersion: 2 |
| MajorSubsystemVersion: 8 |
| MinorSubsystemVersion: 3 |
| 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 |
| ExceptionTable: |
| RelativeVirtualAddress: 12288 |
| Size: 8 |
| 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: 4096 |
| VirtualSize: 4 |
| SectionData: C0035FD6 |
| - Name: .rdata |
| Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ ] |
| VirtualAddress: 8192 |
| VirtualSize: 12 |
| SectionData: 0100400800000000E4E3E3E3 |
| - Name: .pdata |
| Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ ] |
| VirtualAddress: 12288 |
| VirtualSize: 8 |
| SectionData: '0010000000200000' |
| symbols: [] |
| ... |
| |
| ## Test 32-bit object with full Characteristics and DllCharacteristics. |
| # RUN: yaml2obj --docnum=2 %s -o %t2 |
| # RUN: llvm-objdump -p %t2 | FileCheck %s --check-prefix=PE32 --match-full-lines |
| # PE32:{{.*}}file format coff-i386 |
| # PE32:Characteristics 0xffbf |
| # PE32-NEXT: relocations stripped |
| # PE32-NEXT: executable |
| # PE32-NEXT: line numbers stripped |
| # PE32-NEXT: symbols stripped |
| # PE32-NEXT: large address aware |
| # PE32-NEXT: little endian |
| # PE32-NEXT: 32 bit words |
| # PE32-NEXT: debugging information removed |
| # PE32-NEXT: copy to swap file if on removable media |
| # PE32-NEXT: copy to swap file if on network media |
| # PE32-NEXT: system file |
| # PE32-NEXT: DLL |
| # PE32-NEXT: run only on uniprocessor machine |
| # PE32-NEXT: big endian |
| #PE32-EMPTY: |
| # PE32:Time/Date {{.*}} |
| # PE32-NEXT:Magic 010b (PE32) |
| # PE32-NEXT:MajorLinkerVersion 0 |
| # PE32-NEXT:MinorLinkerVersion 0 |
| # PE32-NEXT:SizeOfCode 00000004 |
| # PE32-NEXT:SizeOfInitializedData 00000000 |
| # PE32-NEXT:SizeOfUninitializedData 00000000 |
| # PE32-NEXT:AddressOfEntryPoint 00000000 |
| # PE32-NEXT:BaseOfCode 00001000 |
| # PE32-NEXT:BaseOfData 00000000 |
| # PE32-NEXT:ImageBase 00000000 |
| # PE32-NEXT:SectionAlignment 00000001 |
| # PE32-NEXT:FileAlignment 00000001 |
| # PE32-NEXT:MajorOSystemVersion 0 |
| # PE32-NEXT:MinorOSystemVersion 0 |
| # PE32-NEXT:MajorImageVersion 0 |
| # PE32-NEXT:MinorImageVersion 0 |
| # PE32-NEXT:MajorSubsystemVersion 0 |
| # PE32-NEXT:MinorSubsystemVersion 0 |
| # PE32-NEXT:Win32Version 00000000 |
| # PE32-NEXT:SizeOfImage 000001a4 |
| # PE32-NEXT:SizeOfHeaders 000001a0 |
| # PE32-NEXT:CheckSum 00000000 |
| # PE32-NEXT:Subsystem 0000000a (EFI application) |
| # PE32-NEXT:DllCharacteristics 0000ffe0 |
| # PE32-NEXT: HIGH_ENTROPY_VA |
| # PE32-NEXT: DYNAMIC_BASE |
| # PE32-NEXT: FORCE_INTEGRITY |
| # PE32-NEXT: NX_COMPAT |
| # PE32-NEXT: NO_ISOLATION |
| # PE32-NEXT: NO_SEH |
| # PE32-NEXT: NO_BIND |
| # PE32-NEXT: APPCONTAINER |
| # PE32-NEXT: WDM_DRIVER |
| # PE32-NEXT: GUARD_CF |
| # PE32-NEXT: TERMINAL_SERVER_AWARE |
| --- !COFF |
| header: |
| Machine: IMAGE_FILE_MACHINE_I386 |
| Characteristics: [ IMAGE_FILE_RELOCS_STRIPPED, IMAGE_FILE_EXECUTABLE_IMAGE, IMAGE_FILE_LINE_NUMS_STRIPPED, |
| IMAGE_FILE_LOCAL_SYMS_STRIPPED, IMAGE_FILE_AGGRESSIVE_WS_TRIM, IMAGE_FILE_LARGE_ADDRESS_AWARE, |
| IMAGE_FILE_BYTES_REVERSED_LO, IMAGE_FILE_32BIT_MACHINE, IMAGE_FILE_DEBUG_STRIPPED, |
| IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP, IMAGE_FILE_NET_RUN_FROM_SWAP, IMAGE_FILE_SYSTEM, |
| IMAGE_FILE_DLL, IMAGE_FILE_UP_SYSTEM_ONLY, IMAGE_FILE_BYTES_REVERSED_HI ] |
| OptionalHeader: |
| Subsystem: IMAGE_SUBSYSTEM_EFI_APPLICATION |
| DLLCharacteristics: [ IMAGE_DLL_CHARACTERISTICS_HIGH_ENTROPY_VA, IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE, |
| IMAGE_DLL_CHARACTERISTICS_FORCE_INTEGRITY, IMAGE_DLL_CHARACTERISTICS_NX_COMPAT, |
| IMAGE_DLL_CHARACTERISTICS_NO_ISOLATION, IMAGE_DLL_CHARACTERISTICS_NO_SEH, |
| IMAGE_DLL_CHARACTERISTICS_NO_BIND, IMAGE_DLL_CHARACTERISTICS_APPCONTAINER, |
| IMAGE_DLL_CHARACTERISTICS_WDM_DRIVER, IMAGE_DLL_CHARACTERISTICS_GUARD_CF, |
| IMAGE_DLL_CHARACTERISTICS_TERMINAL_SERVER_AWARE ] |
| sections: |
| - Name: .text |
| Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ] |
| VirtualAddress: 4096 |
| VirtualSize: 4 |
| SectionData: C0035FD6 |
| symbols: |