CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
165 lines
6.1 KiB
YAML
165 lines
6.1 KiB
YAML
# RUN: yaml2obj %s -o %t.exe
|
|
# RUN: llvm-objdump --unwind-info %t.exe | FileCheck %s
|
|
## --unwind-show-wod-pool appends a raw dump of the WOD pool with byte
|
|
## offsets, useful for seeing how the pool is shared between prolog/epilogs.
|
|
# RUN: llvm-objdump --unwind-info --unwind-show-wod-pool %t.exe \
|
|
# RUN: | FileCheck %s --check-prefixes=CHECK,POOL
|
|
|
|
## T3: V3 with multiple epilogs including inheritance.
|
|
##
|
|
## .xdata hex breakdown:
|
|
## Byte 0: 0x03 (Version=3, Flags=0)
|
|
## Byte 1: 0x0B (SizeOfProlog=11)
|
|
## Byte 2: 0x0D (PayloadWords=13 words -> 26 bytes payload)
|
|
## Byte 3: 0x63 (NumberOfOps=3, NumberOfEpilogs=3: (3<<5)|3)
|
|
## Payload (26 bytes):
|
|
## +0: 07 Prolog IP offset[0]: +7
|
|
## +1: 02 Prolog IP offset[1]: +2
|
|
## +2: 00 Prolog IP offset[2]: +0
|
|
## +3: 18 Epilog[0] FlagsAndNumOps: flags=0, nops=3
|
|
## +4: 14 00 Epilog[0] EpilogOffset: +20
|
|
## +6: 00 00 Epilog[0] FirstOp: 0
|
|
## +8: 06 Epilog[0] IpOffsetOfLastInstruction: 6
|
|
## +9: 00 04 05 Epilog[0] IP offsets
|
|
## +12: 00 Epilog[1] FlagsAndNumOps: nops=0 (inherited, 3 bytes only)
|
|
## +13: 0A 00 Epilog[1] EpilogOffset: +10 (delta from Epilog[0]; resolves to +30)
|
|
## +15: 10 Epilog[2] FlagsAndNumOps: nops=2
|
|
## +16: 05 00 Epilog[2] EpilogOffset: +5 (delta from Epilog[1]; resolves to +35)
|
|
## +18: 01 00 Epilog[2] FirstOp: 1
|
|
## +20: 03 Epilog[2] IpOffsetOfLastInstruction: 3
|
|
## +21: 00 01 Epilog[2] IP offsets
|
|
## +23: 38 34 3C WOD pool: ALLOC_SMALL(32), PUSH RSI, PUSH RDI
|
|
|
|
# CHECK-LABEL: Unwind info:
|
|
# CHECK-EMPTY:
|
|
# CHECK-NEXT: Function Table:
|
|
# CHECK-NEXT: Start Address: 0x1000
|
|
# CHECK-NEXT: End Address: 0x1040
|
|
# CHECK-NEXT: Unwind Info Address: 0x2000
|
|
# CHECK-NEXT: Version: 3
|
|
# CHECK-NEXT: Flags: 0x0
|
|
# CHECK-NEXT: Size of prolog: 0xB
|
|
# CHECK-NEXT: PayloadWords: 13
|
|
# CHECK-NEXT: NumberOfOps: 3
|
|
# CHECK-NEXT: NumberOfEpilogs: 3
|
|
# CHECK-NEXT: Prolog [3 ops]:
|
|
# CHECK-NEXT: [0] IP +0x0007: WOD_ALLOC_SMALL Size=0x20
|
|
# CHECK-NEXT: [1] IP +0x0002: WOD_PUSH Reg=RSI
|
|
# CHECK-NEXT: [2] IP +0x0000: WOD_PUSH Reg=RDI
|
|
# CHECK-NEXT: Epilog [0] (Flags=0x00, Offset=+0x14, IpOfLast=+0x6) [3 ops, FirstOp=0x0]:
|
|
# CHECK-NEXT: [0] IP +0x0000: WOD_ALLOC_SMALL Size=0x20
|
|
# CHECK-NEXT: [1] IP +0x0004: WOD_PUSH Reg=RSI
|
|
# CHECK-NEXT: [2] IP +0x0005: WOD_PUSH Reg=RDI
|
|
# CHECK-NEXT: Epilog [1] (Flags=0x00, Offset=+0x1E) [inherited]:
|
|
# CHECK-NEXT: (inherits from previous epilog: FirstOp=0x0, IpOfLast=+0x6, 3 ops)
|
|
# CHECK-NEXT: Epilog [2] (Flags=0x00, Offset=+0x23, IpOfLast=+0x3) [2 ops, FirstOp=0x1]:
|
|
# CHECK-NEXT: [0] IP +0x0000: WOD_PUSH Reg=RSI
|
|
# CHECK-NEXT: [1] IP +0x0001: WOD_PUSH Reg=RDI
|
|
# POOL-NEXT: WOD pool [3 bytes]:
|
|
# POOL-NEXT: +0x0000: WOD_ALLOC_SMALL Size=0x20
|
|
# POOL-NEXT: +0x0001: WOD_PUSH Reg=RSI
|
|
# POOL-NEXT: +0x0002: WOD_PUSH Reg=RDI
|
|
|
|
--- !COFF
|
|
OptionalHeader:
|
|
AddressOfEntryPoint: 4096
|
|
ImageBase: 0
|
|
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 ]
|
|
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: 12
|
|
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_AMD64
|
|
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: 64
|
|
SectionData: '00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
|
|
- Name: .xdata
|
|
Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ ]
|
|
VirtualAddress: 8192
|
|
VirtualSize: 30
|
|
SectionData: '030B0D63070200181400000006000405000A00100500010003000138343C'
|
|
- Name: .pdata
|
|
Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ ]
|
|
VirtualAddress: 12288
|
|
VirtualSize: 12
|
|
SectionData: '001000004010000000200000'
|
|
symbols:
|
|
- Name: .text
|
|
Value: 0
|
|
SectionNumber: 1
|
|
SimpleType: IMAGE_SYM_TYPE_NULL
|
|
ComplexType: IMAGE_SYM_DTYPE_NULL
|
|
StorageClass: IMAGE_SYM_CLASS_STATIC
|
|
- Name: .xdata
|
|
Value: 0
|
|
SectionNumber: 2
|
|
SimpleType: IMAGE_SYM_TYPE_NULL
|
|
ComplexType: IMAGE_SYM_DTYPE_NULL
|
|
StorageClass: IMAGE_SYM_CLASS_STATIC
|
|
- Name: .pdata
|
|
Value: 0
|
|
SectionNumber: 3
|
|
SimpleType: IMAGE_SYM_TYPE_NULL
|
|
ComplexType: IMAGE_SYM_DTYPE_NULL
|
|
StorageClass: IMAGE_SYM_CLASS_STATIC
|
|
...
|