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
304 lines
11 KiB
Plaintext
304 lines
11 KiB
Plaintext
# RUN: yaml2obj --docnum=1 %s -o %t.1
|
|
# RUN: llvm-readobj --sframe=.sframe_eof_address --sframe=.sframe_eof_offset --sframe \
|
|
# RUN: %t.1 2>&1 | \
|
|
# RUN: FileCheck %s --strict-whitespace --match-full-lines \
|
|
# RUN: -DFILE=%t.1 --check-prefix=CASE1
|
|
|
|
# RUN: yaml2obj --docnum=2 %s -o %t.2
|
|
# RUN: llvm-readobj --sframe %t.2 2>&1 | \
|
|
# RUN: FileCheck %s --strict-whitespace --match-full-lines \
|
|
# RUN: -DFILE=%t.2 --check-prefix=CASE2
|
|
|
|
--- !ELF
|
|
FileHeader:
|
|
Class: ELFCLASS64
|
|
Data: ELFDATA2LSB
|
|
Type: ET_EXEC
|
|
Sections:
|
|
- Name: .sframe_eof_address
|
|
Type: SHT_GNU_SFRAME
|
|
Flags: [ SHF_ALLOC ]
|
|
ContentArray: [
|
|
0xe2, 0xde, 0x02, 0x04, # Preamble (magic, version, flags)
|
|
# Header:
|
|
0x03, 0x42, 0x47, 0x00, # ABI, Fixed FP offset, Fixed RA Offset, AUX header length
|
|
0x01, 0x00, 0x00, 0x00, # Number of FDEs
|
|
0x01, 0x00, 0x00, 0x00, # Number of FREs
|
|
0x00, 0x10, 0x00, 0x00, # FRE length
|
|
0x00, 0x00, 0x00, 0x00, # FDE offset
|
|
0x00, 0x00, 0x00, 0x00, # FRE offset
|
|
|
|
# FDE[0]:
|
|
0x00, 0xde, 0xad, 0x00, # Start Address
|
|
0xbe, 0x01, 0x00, 0x00, # Size
|
|
0x00, 0x00, 0x00, 0x00, # Start FRE Offset
|
|
0x01, 0x00, 0x00, 0x00, # Number of FREs
|
|
0x00, 0xde, 0xad, 0x00, # Info, RepSize, Padding2
|
|
|
|
# FRE[0]:
|
|
0x00 # Start Address, (missing) Info
|
|
]
|
|
# CASE1-LABEL:SFrame section '.sframe_eof_address' {
|
|
# CASE1: FuncDescEntry [0] {
|
|
# CASE1: Info {
|
|
# CASE1-NEXT: FRE Type: Addr1 (0x0)
|
|
# CASE1-NEXT: FDE Type: PCInc (0x0)
|
|
# CASE1: FREs [
|
|
# CASE1-NEXT:{{.*}}: warning: '[[FILE]]': unexpected end of data at offset 0x31 while reading [0x30, 0x32)
|
|
# CASE1-NEXT: ]
|
|
|
|
- Name: .sframe_eof_offset
|
|
Type: SHT_GNU_SFRAME
|
|
Flags: [ SHF_ALLOC ]
|
|
ContentArray: [
|
|
0xe2, 0xde, 0x02, 0x04, # Preamble (magic, version, flags)
|
|
# Header:
|
|
0x03, 0x42, 0x47, 0x00, # ABI, Fixed FP offset, Fixed RA Offset, AUX header length
|
|
0x01, 0x00, 0x00, 0x00, # Number of FDEs
|
|
0x01, 0x00, 0x00, 0x00, # Number of FREs
|
|
0x00, 0x10, 0x00, 0x00, # FRE length
|
|
0x00, 0x00, 0x00, 0x00, # FDE offset
|
|
0x00, 0x00, 0x00, 0x00, # FRE offset
|
|
|
|
# FDE[0]:
|
|
0x00, 0xde, 0xad, 0x00, # Start Address
|
|
0xbe, 0x01, 0x00, 0x00, # Size
|
|
0x00, 0x00, 0x00, 0x00, # Start FRE Offset
|
|
0x01, 0x00, 0x00, 0x00, # Number of FREs
|
|
0x00, 0xde, 0xad, 0x00, # Info, RepSize, Padding2
|
|
|
|
# FRE[0]:
|
|
0x00, 0x02 # Start Address, Info, (missing) Offsets
|
|
]
|
|
# CASE1-LABEL:SFrame section '.sframe_eof_offset' {
|
|
# CASE1: FuncDescEntry [0] {
|
|
# CASE1: Info {
|
|
# CASE1-NEXT: FRE Type: Addr1 (0x0)
|
|
# CASE1-NEXT: FDE Type: PCInc (0x0)
|
|
# CASE1: FREs [
|
|
# CASE1-NEXT:{{.*}}: warning: '[[FILE]]': unexpected end of data at offset 0x32 while reading [0x32, 0x33)
|
|
# CASE1-NEXT: ]
|
|
|
|
- Name: .sframe
|
|
Type: SHT_GNU_SFRAME
|
|
Flags: [ SHF_ALLOC ]
|
|
ContentArray: [
|
|
0xe2, 0xde, 0x02, 0x04, # Preamble (magic, version, flags)
|
|
# Header:
|
|
0x03, 0x42, 0x40, 0x00, # ABI, Fixed FP offset, Fixed RA Offset, AUX header length
|
|
0x03, 0x00, 0x00, 0x00, # Number of FDEs
|
|
0x01, 0x00, 0x00, 0x00, # Number of FREs
|
|
0x00, 0x10, 0x00, 0x00, # FRE length
|
|
0x00, 0x00, 0x00, 0x00, # FDE offset
|
|
0x00, 0x00, 0x00, 0x00, # FRE offset
|
|
|
|
# FDE[0]:
|
|
0x00, 0x00, 0xde, 0x00, # Start Address
|
|
0xbe, 0x01, 0x00, 0x00, # Size
|
|
0x00, 0x00, 0x00, 0x00, # Start FRE Offset
|
|
0x02, 0x00, 0x00, 0x00, # Number of FREs
|
|
0x00, 0xde, 0xad, 0x00, # Info, RepSize, Padding2
|
|
|
|
# FDE[1]:
|
|
0x00, 0x00, 0xad, 0x00, # Start Address
|
|
0xbe, 0x01, 0x00, 0x00, # Size
|
|
0x08, 0x00, 0x00, 0x00, # Start FRE Offset
|
|
0x03, 0x00, 0x00, 0x00, # Number of FREs
|
|
0x11, 0xde, 0xad, 0x00, # Info, RepSize, Padding2
|
|
|
|
# FDE[2]:
|
|
0x00, 0x00, 0xbe, 0x00, # Start Address
|
|
0xbe, 0x01, 0x00, 0x00, # Size
|
|
0x08, 0x00, 0x00, 0x00, # Start FRE Offset
|
|
0x01, 0x00, 0x00, 0x00, # Number of FREs
|
|
0x03, 0xde, 0xad, 0x00, # Info, RepSize, Padding2
|
|
|
|
# FRE[0,0]: Zero offsets
|
|
0x00, 0x00, # Start Address, Info
|
|
|
|
# FRE[0,1]: One four-byte offset, SP-based
|
|
0x01, 0x43, # Start Address, Info
|
|
0x74, 0x00, 0x00, 0x00, # Offset[0]
|
|
|
|
# FRE[1,0]: Two two-byte offsets, FP-based
|
|
0x00, 0x00, 0x24, # Start Address, Info
|
|
0x10, 0x00, 0x20, 0x00, # Offset[0], Offset[1]
|
|
|
|
# FRE[1,1]: Four one-byte offsets, FP-based
|
|
0x00, 0x01, 0x08, # Start Address, Info
|
|
0x10, 0x20, 0x30, 0x40, # Offset[0-3]
|
|
]
|
|
## Testing:
|
|
## - little-endian support
|
|
## - AMD64 ABI
|
|
## - one and two byte address sizes
|
|
## - PCInc and PCMask FDE types
|
|
## - all offset sizes
|
|
## - various offset counts
|
|
## - hitting EOF after printing some number of FREs
|
|
## - invalid FRE type
|
|
# CASE1-LABEL:SFrame section '.sframe' {
|
|
# CASE1: ABI: AMD64EndianLittle (0x3)
|
|
# CASE1: CFA fixed RA offset: 64
|
|
# CASE1: FuncDescEntry [0] {
|
|
# CASE1-NEXT: PC: 0xDE007F
|
|
# CASE1: Info {
|
|
# CASE1-NEXT: FRE Type: Addr1 (0x0)
|
|
# CASE1-NEXT: FDE Type: PCInc (0x0)
|
|
# CASE1: FREs [
|
|
# CASE1-NEXT: Frame Row Entry {
|
|
# CASE1-NEXT: Start Address: 0xDE007F
|
|
# CASE1-NEXT: Return Address Signed: No
|
|
# CASE1-NEXT: Offset Size: B1 (0x0)
|
|
# CASE1-NEXT: Base Register: FP (0x0)
|
|
# CASE1-NEXT: RA Offset: 64
|
|
# CASE1-NEXT: }
|
|
# CASE1-NEXT: Frame Row Entry {
|
|
# CASE1-NEXT: Start Address: 0xDE0080
|
|
# CASE1-NEXT: Return Address Signed: No
|
|
# CASE1-NEXT: Offset Size: B4 (0x2)
|
|
# CASE1-NEXT: Base Register: SP (0x1)
|
|
# CASE1-NEXT: CFA Offset: 116
|
|
# CASE1-NEXT: RA Offset: 64
|
|
# CASE1-NEXT: }
|
|
# CASE1-NEXT: ]
|
|
# CASE1: FuncDescEntry [1] {
|
|
# CASE1-NEXT: PC: 0xAD0093
|
|
# CASE1: Info {
|
|
# CASE1-NEXT: FRE Type: Addr2 (0x1)
|
|
# CASE1-NEXT: FDE Type: PCMask (0x1)
|
|
# CASE1: FREs [
|
|
# CASE1-NEXT: Frame Row Entry {
|
|
# CASE1-NEXT: Start Address: 0x0
|
|
# CASE1-NEXT: Return Address Signed: No
|
|
# CASE1-NEXT: Offset Size: B2 (0x1)
|
|
# CASE1-NEXT: Base Register: FP (0x0)
|
|
# CASE1-NEXT: CFA Offset: 16
|
|
# CASE1-NEXT: RA Offset: 64
|
|
# CASE1-NEXT: FP Offset: 32
|
|
# CASE1-NEXT: }
|
|
# CASE1-NEXT: Frame Row Entry {
|
|
# CASE1-NEXT: Start Address: 0x100
|
|
# CASE1-NEXT: Return Address Signed: No
|
|
# CASE1-NEXT: Offset Size: B1 (0x0)
|
|
# CASE1-NEXT: Base Register: FP (0x0)
|
|
# CASE1-NEXT: CFA Offset: 16
|
|
# CASE1-NEXT: RA Offset: 64
|
|
# CASE1-NEXT: FP Offset: 32
|
|
# CASE1-NEXT: Extra Offsets: [48, 64]
|
|
# CASE1-NEXT: }
|
|
# CASE1-NEXT:{{.*}}: warning: '[[FILE]]': unexpected end of data at offset 0x6e while reading [0x6e, 0x71)
|
|
# CASE1: FuncDescEntry [2] {
|
|
# CASE1: Info {
|
|
# CASE1-NEXT: FRE Type: 0x3
|
|
# CASE1: FREs [
|
|
# CASE1-NEXT:{{.*}}: warning: '[[FILE]]': unsupported FRE type 3 at offset 0x60
|
|
|
|
--- !ELF
|
|
FileHeader:
|
|
Class: ELFCLASS64
|
|
Data: ELFDATA2MSB
|
|
Type: ET_EXEC
|
|
Sections:
|
|
- Name: .sframe
|
|
Type: SHT_GNU_SFRAME
|
|
Flags: [ SHF_ALLOC ]
|
|
ContentArray: [
|
|
0xde, 0xe2, 0x02, 0x05, # Preamble (magic, version, flags)
|
|
# Header:
|
|
0x01, 0x42, 0x47, 0x00, # ABI, Fixed FP offset, Fixed RA Offset, AUX header length
|
|
0x00, 0x00, 0x00, 0x01, # Number of FDEs
|
|
0x00, 0x00, 0x00, 0x10, # Number of FREs
|
|
0x00, 0x00, 0x10, 0x00, # FRE length
|
|
0x00, 0x00, 0x00, 0x00, # FDE offset
|
|
0x00, 0x00, 0x01, 0x00, # FRE offset
|
|
|
|
# FDE:
|
|
0x00, 0xde, 0x00, 0x00, # Start Address
|
|
0x00, 0x00, 0x01, 0xbe, # Size
|
|
0x00, 0x00, 0x00, 0x00, # Start FRE Offset
|
|
0x00, 0x00, 0x00, 0x06, # Number of FREs
|
|
0x02, 0xde, 0xad, 0x00, # Info, RepSize, Padding2
|
|
|
|
# FRE[0]: Zero offsets
|
|
0x00, 0x00, 0x00, 0x00, # Start Address
|
|
0x00, # Info
|
|
|
|
# FRE[1]: One offset
|
|
0x00, 0x00, 0x00, 0x01, # Start Address
|
|
0x82, 0x10, # Info, Offset[0]
|
|
|
|
# FRE[2]: Two offsets
|
|
0x00, 0x00, 0x00, 0x02, # Start Address
|
|
0x04, 0x10, 0x20, # Info, Offset[0-1]
|
|
|
|
# FRE[3]: Three offsets
|
|
0x00, 0x00, 0x00, 0x03, # Start Address
|
|
0x86, 0x10, 0x20, 0x30, # Info, Offset[0-2]
|
|
|
|
# FRE[4]: Four offsets
|
|
0x00, 0x00, 0x00, 0x04, # Start Address
|
|
0x08, # Info
|
|
0x10, 0x20, 0x30, 0x40, # Offset[0-3]
|
|
|
|
# FRE[4]: Invalid offset size
|
|
0x00, 0x00, 0x00, 0x05, # Start Address
|
|
0x60, # Info
|
|
]
|
|
## Testing:
|
|
## - big-endian support
|
|
## - ARM64 ABI
|
|
## - four-byte address sizes
|
|
## - return address signing
|
|
## - various offset counts
|
|
## - invalid offset size
|
|
# CASE2-LABEL:SFrame section '.sframe' {
|
|
# CASE2: ABI: AArch64EndianBig (0x1)
|
|
# CASE2: FuncDescEntry [0] {
|
|
# CASE2-NEXT: PC: 0xDE001C
|
|
# CASE2: Info {
|
|
# CASE2-NEXT: FRE Type: Addr4 (0x2)
|
|
# CASE2-NEXT: FDE Type: PCInc (0x0)
|
|
# CASE2: FREs [
|
|
# CASE2-NEXT: Frame Row Entry {
|
|
# CASE2-NEXT: Start Address: 0xDE001C
|
|
# CASE2-NEXT: Return Address Signed: No
|
|
# CASE2-NEXT: Offset Size: B1 (0x0)
|
|
# CASE2-NEXT: Base Register: FP (0x0)
|
|
# CASE2-NEXT: }
|
|
# CASE2-NEXT: Frame Row Entry {
|
|
# CASE2-NEXT: Start Address: 0xDE001D
|
|
# CASE2-NEXT: Return Address Signed: Yes
|
|
# CASE2-NEXT: Offset Size: B1 (0x0)
|
|
# CASE2-NEXT: Base Register: FP (0x0)
|
|
# CASE2-NEXT: CFA Offset: 16
|
|
# CASE2-NEXT: }
|
|
# CASE2-NEXT: Frame Row Entry {
|
|
# CASE2-NEXT: Start Address: 0xDE001E
|
|
# CASE2-NEXT: Return Address Signed: No
|
|
# CASE2-NEXT: Offset Size: B1 (0x0)
|
|
# CASE2-NEXT: Base Register: FP (0x0)
|
|
# CASE2-NEXT: CFA Offset: 16
|
|
# CASE2-NEXT: RA Offset: 32
|
|
# CASE2-NEXT: }
|
|
# CASE2-NEXT: Frame Row Entry {
|
|
# CASE2-NEXT: Start Address: 0xDE001F
|
|
# CASE2-NEXT: Return Address Signed: Yes
|
|
# CASE2-NEXT: Offset Size: B1 (0x0)
|
|
# CASE2-NEXT: Base Register: FP (0x0)
|
|
# CASE2-NEXT: CFA Offset: 16
|
|
# CASE2-NEXT: RA Offset: 32
|
|
# CASE2-NEXT: FP Offset: 48
|
|
# CASE2-NEXT: }
|
|
# CASE2-NEXT: Frame Row Entry {
|
|
# CASE2-NEXT: Start Address: 0xDE0020
|
|
# CASE2-NEXT: Return Address Signed: No
|
|
# CASE2-NEXT: Offset Size: B1 (0x0)
|
|
# CASE2-NEXT: Base Register: FP (0x0)
|
|
# CASE2-NEXT: CFA Offset: 16
|
|
# CASE2-NEXT: RA Offset: 32
|
|
# CASE2-NEXT: FP Offset: 48
|
|
# CASE2-NEXT: Extra Offsets: [64]
|
|
# CASE2-NEXT: }
|
|
# CASE2-NEXT:{{.*}}: warning: '[[FILE]]': unsupported FRE offset size 3 at offset 0x58
|