86 lines · plain
1# RUN: llvm-mc --filetype=obj --gsframe -triple x86_64 %s -o %t.o2# RUN: llvm-readelf --sframe %t.o | FileCheck %s3 4# Tests selection for the proper FDE AddrX encoding at the boundaries5# between uint8_t, uint16_t, and uint32_t. The first FRE always fits6# anywhere, because its address-offset is zero. The last FRE7# determines the smallest AddrX it is possible to use. Align8# functions to 1024 to make it easier to interpet offsets.9 10 .cfi_sections .sframe11 12 .align 102413fde0_uses_addr1:14# CHECK: FuncDescEntry [0] {15# CHECK: Start FRE Offset: 0x016# CHECK-NEXT: Num FREs: 217# CHECK: FRE Type: Addr1 (0x0)18 .cfi_startproc19# CHECK: Frame Row Entry {20# CHECK-NEXT: Start Address: 0x021# CHECK-NEXT: Return Address Signed: No22# CHECK-NEXT: Offset Size: B1 (0x0)23# CHECK-NEXT: Base Register: SP (0x1)24# CHECK-NEXT: CFA Offset: 825# CHECK-NEXT: RA Offset: -826# CHECK-NEXT: }27 .fill 0xFF28 .cfi_def_cfa_offset 1629# CHECK-NEXT: Frame Row Entry {30# CHECK-NEXT: Start Address: 0xFF31# CHECK-NEXT: Return Address Signed: No32# CHECK-NEXT: Offset Size: B1 (0x0)33# CHECK-NEXT: Base Register: SP (0x1)34# CHECK-NEXT: CFA Offset: 1635# CHECK-NEXT: RA Offset: -836 nop37 .cfi_endproc38 39 .align 1024 40fde1_uses_addr2:41# CHECK: FuncDescEntry [1] {42# CHECK: Start FRE Offset: 0x643# CHECK-NEXT: Num FREs: 244# CHECK: FRE Type: Addr2 (0x1)45 .cfi_startproc46# CHECK: Frame Row Entry {47# CHECK-NEXT: Start Address: 0x40048 .fill 0xFF + 149 .cfi_def_cfa_offset 1650# CHECK: Frame Row Entry {51# CHECK-NEXT: Start Address: 0x50052 .cfi_endproc53 54.align 1024 55fde2_uses_addr2:56# CHECK: FuncDescEntry [2] {57# CHECK: Start FRE Offset: 0xE58# CHECK-NEXT: Num FREs: 259# CHECK: FRE Type: Addr2 (0x1)60 .cfi_startproc61# CHECK: Frame Row Entry {62# CHECK-NEXT: Start Address: 0x80063 .fill 0xFFFF64 .cfi_def_cfa_offset 1665# CHECK: Frame Row Entry {66# CHECK-NEXT: Start Address: 0x107FF67 nop68 .cfi_endproc69 70 .align 102471fde3_uses_addr4:72# CHECK: FuncDescEntry [3] {73# CHECK: Start FRE Offset: 0x1674# CHECK-NEXT: Num FREs: 275# CHECK: FRE Type: Addr4 (0x2)76 .cfi_startproc77# CHECK: Frame Row Entry {78# CHECK-NEXT: Start Address: 0x1080079 .fill 0xFFFF + 180# CHECK: Frame Row Entry {81# CHECK-NEXT: Start Address: 0x2080082 .cfi_def_cfa_offset 1683 nop84 .cfi_endproc85 86