|
86 | 86 | # CHECK-NEXT: ]
|
87 | 87 | # CHECK-NEXT: ]
|
88 | 88 |
|
| 89 | +# RUN: llvm-readobj --hex-dump=.test %t.dll | FileCheck --match-full-lines --strict-whitespace --check-prefix=HEX %s |
| 90 | +# HEX:Format: COFF-ARM64X |
| 91 | +# HEX-NEXT:Arch: aarch64 |
| 92 | +# HEX-NEXT:AddressSize: 64bit |
| 93 | +# HEX-EMPTY: |
| 94 | +# HEX-NEXT:Hex dump of section '.test': |
| 95 | +# HEX-NEXT:0x180006000 11112222 33334444 55556666 77778888 ..""33DDUUffww.. |
| 96 | +# HEX-NEXT:0x180006010 9999aaaa bbbbcccc ddddeeee ffff0000 ................ |
| 97 | +# HEX-NEXT:0x180006020 00000000 00000000 00000000 00000000 ................ |
| 98 | +# HEX-NEXT:0x180006030 00000000 00000000 00000000 00000000 ................ |
| 99 | +# HEX-NEXT:0x180006040 10101010 20202020 30303030 40404040 .... 0000@@@@ |
| 100 | +# HEX-NEXT:0x180006050 50505050 60606060 70707070 80808080 PPPP````pppp.... |
| 101 | +# HEX-NEXT:HybridObject { |
| 102 | +# HEX-NEXT: Format: COFF-ARM64EC |
| 103 | +# HEX-NEXT: Arch: aarch64 |
| 104 | +# HEX-NEXT: AddressSize: 64bit |
| 105 | +# HEX-EMPTY: |
| 106 | +# HEX-NEXT: Hex dump of section '.test': |
| 107 | +# HEX-NEXT: 0x180006000 00002222 00000000 55556666 77778888 ..""....UUffww.. |
| 108 | +# HEX-NEXT: 0x180006010 00000000 00000000 ddddeeee ffff0000 ................ |
| 109 | +# HEX-NEXT: 0x180006020 12340000 23456789 11223344 55667788 .4..#Eg.."3DUfw. |
| 110 | +# HEX-NEXT: 0x180006030 00000000 00000000 00000000 00000000 ................ |
| 111 | +# HEX-NEXT: 0x180006040 941c1110 28392220 20303030 20404040 ....(9" 000 @@@ |
| 112 | +# HEX-NEXT: 0x180006050 50505050 60606060 70707070 80808080 PPPP````pppp.... |
| 113 | +# HEX-NEXT:} |
| 114 | + |
89 | 115 |
|
90 | 116 | --- !COFF
|
91 | 117 | OptionalHeader:
|
@@ -203,6 +229,7 @@ symbols: []
|
203 | 229 |
|
204 | 230 | # RUN: yaml2obj %s --docnum=2 -o %t2.dll
|
205 | 231 | # RUN: llvm-readobj --coff-load-config %t2.dll | FileCheck --check-prefixes=CHECK,V2 %s
|
| 232 | +# RUN: llvm-readobj --hex-dump=.test %t2.dll | FileCheck --match-full-lines --strict-whitespace --check-prefix=HEX %s |
206 | 233 |
|
207 | 234 | --- !COFF
|
208 | 235 | OptionalHeader:
|
@@ -320,3 +347,120 @@ sections:
|
320 | 347 | - Binary: 0000 # terminator
|
321 | 348 | symbols: []
|
322 | 349 | ...
|
| 350 | + |
| 351 | +# RUN: yaml2obj %s --docnum=3 -o %t3.dll |
| 352 | +# RUN: llvm-readobj --coff-exports %t3.dll | FileCheck --match-full-lines --strict-whitespace --check-prefix=EXP %s |
| 353 | + |
| 354 | +# EXP:Format: COFF-ARM64X |
| 355 | +# EXP-NEXT:Arch: aarch64 |
| 356 | +# EXP-NEXT:AddressSize: 64bit |
| 357 | +# EXP-NEXT:Export { |
| 358 | +# EXP-NEXT: Ordinal: 1 |
| 359 | +# EXP-NEXT: Name: test |
| 360 | +# EXP-NEXT: RVA: 0x2000 |
| 361 | +# EXP-NEXT:} |
| 362 | +# EXP-NEXT:HybridObject { |
| 363 | +# EXP-NEXT: Format: COFF-ARM64EC |
| 364 | +# EXP-NEXT: Arch: aarch64 |
| 365 | +# EXP-NEXT: AddressSize: 64bit |
| 366 | +# EXP-NEXT: Export { |
| 367 | +# EXP-NEXT: Ordinal: 1 |
| 368 | +# EXP-NEXT: Name: test |
| 369 | +# EXP-NEXT: RVA: 0x2004 |
| 370 | +# EXP-NEXT: } |
| 371 | +# EXP-NEXT:} |
| 372 | + |
| 373 | +--- !COFF |
| 374 | +OptionalHeader: |
| 375 | + ImageBase: 0x180000000 |
| 376 | + SectionAlignment: 4096 |
| 377 | + FileAlignment: 512 |
| 378 | + DLLCharacteristics: [ ] |
| 379 | + AddressOfEntryPoint: 0 |
| 380 | + ExportTable: |
| 381 | + RelativeVirtualAddress: 0x1000 |
| 382 | + Size: 64 |
| 383 | + LoadConfigTable: |
| 384 | + RelativeVirtualAddress: 0x3000 |
| 385 | + Size: 320 |
| 386 | +header: |
| 387 | + Machine: IMAGE_FILE_MACHINE_ARM64 |
| 388 | + Characteristics: [ IMAGE_FILE_EXECUTABLE_IMAGE, IMAGE_FILE_LARGE_ADDRESS_AWARE, IMAGE_FILE_DLL ] |
| 389 | +sections: |
| 390 | + - Name: .rdata |
| 391 | + Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ ] |
| 392 | + VirtualAddress: 0x1000 |
| 393 | + VirtualSize: 64 |
| 394 | + StructuredData: |
| 395 | + - UInt32: 0 # ExportFlags |
| 396 | + - UInt32: 0 # TimeDateStamp |
| 397 | + - UInt32: 0 # Version |
| 398 | + - UInt32: 0x1028 # NameRVA |
| 399 | + - UInt32: 1 # OrdinalBase |
| 400 | + - UInt32: 1 # AddressTableEntries |
| 401 | + - UInt32: 1 # NumberOfNamePointers |
| 402 | + - UInt32: 0x1030 # ExportAddressTableRVA |
| 403 | + - UInt32: 0x1034 # NamePointerRVA |
| 404 | + - UInt32: 0x1038 # OrdinalTableRVA |
| 405 | + - Binary: 7473742E646C6C00 # "tst.dll" |
| 406 | + - UInt32: 0x2000 # export RVA |
| 407 | + - UInt32: 0x103A # name RVA |
| 408 | + - Binary: 0000 # ordinal |
| 409 | + - Binary: 7465737400 # "test" |
| 410 | + - Name: .data |
| 411 | + Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ] |
| 412 | + VirtualAddress: 0x2000 |
| 413 | + VirtualSize: 80 |
| 414 | + StructuredData: |
| 415 | + - UInt32: 1 # Version |
| 416 | + - UInt32: 0 # CodeMap |
| 417 | + - UInt32: 0 # CodeMapCount |
| 418 | + - UInt32: 0 # CodeRangesToEntryPoints |
| 419 | + - UInt32: 0 # RedirectionMetadata |
| 420 | + - UInt32: 0 |
| 421 | + - UInt32: 0 |
| 422 | + - UInt32: 0 |
| 423 | + - UInt32: 0 |
| 424 | + - UInt32: 0 |
| 425 | + - UInt32: 0 |
| 426 | + - UInt32: 0 |
| 427 | + - UInt32: 0 # CodeRangesToEntryPointsCount |
| 428 | + - UInt32: 0 # RedirectionMetadataCount |
| 429 | + - UInt32: 0 |
| 430 | + - UInt32: 0 |
| 431 | + - UInt32: 0 |
| 432 | + - UInt32: 0 |
| 433 | + - UInt32: 0 |
| 434 | + - UInt32: 0 |
| 435 | + - Name: .cfg |
| 436 | + Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ ] |
| 437 | + VirtualAddress: 0x3000 |
| 438 | + VirtualSize: 328 |
| 439 | + StructuredData: |
| 440 | + - LoadConfig: |
| 441 | + CHPEMetadataPointer: 0x180002000 |
| 442 | + DynamicValueRelocTableOffset: 0 |
| 443 | + DynamicValueRelocTableSection: 4 |
| 444 | + - Name: .arm64x |
| 445 | + Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_DISCARDABLE ] |
| 446 | + VirtualAddress: 0x4000 |
| 447 | + VirtualSize: 56 |
| 448 | + StructuredData: |
| 449 | + - UInt32: 2 # coff_dynamic_reloc_table.Version |
| 450 | + - UInt32: 48 # coff_dynamic_reloc_table.Size |
| 451 | + - UInt32: 24 # coff_dynamic_relocation64_v2.HeaderSize |
| 452 | + - UInt32: 24 # coff_dynamic_relocation64_v2.FixupInfoSize |
| 453 | + - UInt32: 6 # coff_dynamic_relocation64_v2.Symbol(low) = IMAGE_DYNAMIC_RELOCATION_ARM64X |
| 454 | + - UInt32: 0 # coff_dynamic_relocation64_v2.Symbol(high) |
| 455 | + - UInt32: 0 # coff_dynamic_relocation64_v2.SymbolGroup |
| 456 | + - UInt32: 0 # coff_dynamic_relocation64_v2.Flags |
| 457 | + - UInt32: 0 # coff_base_reloc_block_header[0].PageRVA |
| 458 | + - UInt32: 12 # coff_base_reloc_block_header[0].BlockSize |
| 459 | + - Binary: 8450 # VALUE offset 0x84 (PE header Machine), size 2 |
| 460 | + - Binary: 6486 # IMAGE_FILE_MACHINE_AMD64 |
| 461 | + - UInt32: 0x1000 # coff_base_reloc_block_header[1].PageRVA |
| 462 | + - UInt32: 12 # coff_base_reloc_block_header[1].BlockSize |
| 463 | + - Binary: 3020 # DELTA offset 0x30, mul 4 |
| 464 | + - Binary: 0100 |
| 465 | +symbols: [] |
| 466 | +... |
0 commit comments