brintos

brintos / llvm-project-archived public Read only

0
0
Text · 10.9 KiB · 3f1e7d6 Raw
304 lines · plain
1# RUN: yaml2obj --docnum=1 %s -o %t.12# RUN: llvm-readobj --sframe=.sframe_eof_address --sframe=.sframe_eof_offset --sframe \3# RUN:   %t.1 2>&1 | \4# RUN:   FileCheck %s --strict-whitespace --match-full-lines \5# RUN:   -DFILE=%t.1 --check-prefix=CASE16 7# RUN: yaml2obj --docnum=2 %s -o %t.28# RUN: llvm-readobj --sframe %t.2 2>&1 | \9# RUN:   FileCheck %s --strict-whitespace --match-full-lines \10# RUN:   -DFILE=%t.2 --check-prefix=CASE211 12--- !ELF13FileHeader:14  Class:   ELFCLASS6415  Data:    ELFDATA2LSB16  Type:    ET_EXEC17Sections:18  - Name:  .sframe_eof_address19    Type:  SHT_GNU_SFRAME20    Flags: [ SHF_ALLOC ]21    ContentArray: [22      0xe2, 0xde, 0x02, 0x04,  # Preamble (magic, version, flags)23      # Header:24      0x03, 0x42, 0x47, 0x00,  # ABI, Fixed FP offset, Fixed RA Offset, AUX header length25      0x01, 0x00, 0x00, 0x00,  # Number of FDEs26      0x01, 0x00, 0x00, 0x00,  # Number of FREs27      0x00, 0x10, 0x00, 0x00,  # FRE length28      0x00, 0x00, 0x00, 0x00,  # FDE offset29      0x00, 0x00, 0x00, 0x00,  # FRE offset30 31      # FDE[0]:32      0x00, 0xde, 0xad, 0x00,  # Start Address33      0xbe, 0x01, 0x00, 0x00,  # Size34      0x00, 0x00, 0x00, 0x00,  # Start FRE Offset35      0x01, 0x00, 0x00, 0x00,  # Number of FREs36      0x00, 0xde, 0xad, 0x00,  # Info, RepSize, Padding237 38      # FRE[0]:39      0x00                     # Start Address, (missing) Info40    ]41# CASE1-LABEL:SFrame section '.sframe_eof_address' {42#       CASE1:    FuncDescEntry [0] {43#       CASE1:      Info {44#  CASE1-NEXT:        FRE Type: Addr1 (0x0)45#  CASE1-NEXT:        FDE Type: PCInc (0x0)46#       CASE1:      FREs [47#  CASE1-NEXT:{{.*}}: warning: '[[FILE]]': unexpected end of data at offset 0x31 while reading [0x30, 0x32)48#  CASE1-NEXT:      ]49 50  - Name:  .sframe_eof_offset51    Type:  SHT_GNU_SFRAME52    Flags: [ SHF_ALLOC ]53    ContentArray: [54      0xe2, 0xde, 0x02, 0x04,  # Preamble (magic, version, flags)55      # Header:56      0x03, 0x42, 0x47, 0x00,  # ABI, Fixed FP offset, Fixed RA Offset, AUX header length57      0x01, 0x00, 0x00, 0x00,  # Number of FDEs58      0x01, 0x00, 0x00, 0x00,  # Number of FREs59      0x00, 0x10, 0x00, 0x00,  # FRE length60      0x00, 0x00, 0x00, 0x00,  # FDE offset61      0x00, 0x00, 0x00, 0x00,  # FRE offset62 63      # FDE[0]:64      0x00, 0xde, 0xad, 0x00,  # Start Address65      0xbe, 0x01, 0x00, 0x00,  # Size66      0x00, 0x00, 0x00, 0x00,  # Start FRE Offset67      0x01, 0x00, 0x00, 0x00,  # Number of FREs68      0x00, 0xde, 0xad, 0x00,  # Info, RepSize, Padding269 70      # FRE[0]:71      0x00, 0x02               # Start Address, Info, (missing) Offsets72    ]73# CASE1-LABEL:SFrame section '.sframe_eof_offset' {74#       CASE1:    FuncDescEntry [0] {75#       CASE1:      Info {76#  CASE1-NEXT:        FRE Type: Addr1 (0x0)77#  CASE1-NEXT:        FDE Type: PCInc (0x0)78#       CASE1:      FREs [79#  CASE1-NEXT:{{.*}}: warning: '[[FILE]]': unexpected end of data at offset 0x32 while reading [0x32, 0x33)80#  CASE1-NEXT:      ]81 82  - Name:  .sframe83    Type:  SHT_GNU_SFRAME84    Flags: [ SHF_ALLOC ]85    ContentArray: [86      0xe2, 0xde, 0x02, 0x04,  # Preamble (magic, version, flags)87      # Header:88      0x03, 0x42, 0x40, 0x00,  # ABI, Fixed FP offset, Fixed RA Offset, AUX header length89      0x03, 0x00, 0x00, 0x00,  # Number of FDEs90      0x01, 0x00, 0x00, 0x00,  # Number of FREs91      0x00, 0x10, 0x00, 0x00,  # FRE length92      0x00, 0x00, 0x00, 0x00,  # FDE offset93      0x00, 0x00, 0x00, 0x00,  # FRE offset94 95      # FDE[0]:96      0x00, 0x00, 0xde, 0x00,  # Start Address97      0xbe, 0x01, 0x00, 0x00,  # Size98      0x00, 0x00, 0x00, 0x00,  # Start FRE Offset99      0x02, 0x00, 0x00, 0x00,  # Number of FREs100      0x00, 0xde, 0xad, 0x00,  # Info, RepSize, Padding2101 102      # FDE[1]:103      0x00, 0x00, 0xad, 0x00,  # Start Address104      0xbe, 0x01, 0x00, 0x00,  # Size105      0x08, 0x00, 0x00, 0x00,  # Start FRE Offset106      0x03, 0x00, 0x00, 0x00,  # Number of FREs107      0x11, 0xde, 0xad, 0x00,  # Info, RepSize, Padding2108 109      # FDE[2]:110      0x00, 0x00, 0xbe, 0x00,  # Start Address111      0xbe, 0x01, 0x00, 0x00,  # Size112      0x08, 0x00, 0x00, 0x00,  # Start FRE Offset113      0x01, 0x00, 0x00, 0x00,  # Number of FREs114      0x03, 0xde, 0xad, 0x00,  # Info, RepSize, Padding2115 116      # FRE[0,0]: Zero offsets117      0x00, 0x00,              # Start Address, Info118 119      # FRE[0,1]: One four-byte offset, SP-based120      0x01, 0x43,              # Start Address, Info121      0x74, 0x00, 0x00, 0x00,  # Offset[0]122 123      # FRE[1,0]: Two two-byte offsets, FP-based124      0x00, 0x00, 0x24,        # Start Address, Info125      0x10, 0x00, 0x20, 0x00,  # Offset[0], Offset[1]126 127      # FRE[1,1]: Four one-byte offsets, FP-based128      0x00, 0x01, 0x08,        # Start Address, Info129      0x10, 0x20, 0x30, 0x40,  # Offset[0-3]130    ]131## Testing:132## - little-endian support133## - AMD64 ABI134## - one and two byte address sizes135## - PCInc and PCMask FDE types136## - all offset sizes137## - various offset counts138## - hitting EOF after printing some number of FREs139## - invalid FRE type140# CASE1-LABEL:SFrame section '.sframe' {141#       CASE1:    ABI: AMD64EndianLittle (0x3)142#       CASE1:    CFA fixed RA offset: 64143#       CASE1:    FuncDescEntry [0] {144#  CASE1-NEXT:      PC: 0xDE007F145#       CASE1:      Info {146#  CASE1-NEXT:        FRE Type: Addr1 (0x0)147#  CASE1-NEXT:        FDE Type: PCInc (0x0)148#       CASE1:      FREs [149#  CASE1-NEXT:        Frame Row Entry {150#  CASE1-NEXT:          Start Address: 0xDE007F151#  CASE1-NEXT:          Return Address Signed: No152#  CASE1-NEXT:          Offset Size: B1 (0x0)153#  CASE1-NEXT:          Base Register: FP (0x0)154#  CASE1-NEXT:          RA Offset: 64155#  CASE1-NEXT:        }156#  CASE1-NEXT:        Frame Row Entry {157#  CASE1-NEXT:          Start Address: 0xDE0080158#  CASE1-NEXT:          Return Address Signed: No159#  CASE1-NEXT:          Offset Size: B4 (0x2)160#  CASE1-NEXT:          Base Register: SP (0x1)161#  CASE1-NEXT:          CFA Offset: 116162#  CASE1-NEXT:          RA Offset: 64163#  CASE1-NEXT:        }164#  CASE1-NEXT:      ]165#       CASE1:    FuncDescEntry [1] {166#  CASE1-NEXT:      PC: 0xAD0093167#       CASE1:      Info {168#  CASE1-NEXT:        FRE Type: Addr2 (0x1)169#  CASE1-NEXT:        FDE Type: PCMask (0x1)170#       CASE1:      FREs [171#  CASE1-NEXT:        Frame Row Entry {172#  CASE1-NEXT:          Start Address: 0x0173#  CASE1-NEXT:          Return Address Signed: No174#  CASE1-NEXT:          Offset Size: B2 (0x1)175#  CASE1-NEXT:          Base Register: FP (0x0)176#  CASE1-NEXT:          CFA Offset: 16177#  CASE1-NEXT:          RA Offset: 64178#  CASE1-NEXT:          FP Offset: 32179#  CASE1-NEXT:        }180#  CASE1-NEXT:        Frame Row Entry {181#  CASE1-NEXT:          Start Address: 0x100182#  CASE1-NEXT:          Return Address Signed: No183#  CASE1-NEXT:          Offset Size: B1 (0x0)184#  CASE1-NEXT:          Base Register: FP (0x0)185#  CASE1-NEXT:          CFA Offset: 16186#  CASE1-NEXT:          RA Offset: 64187#  CASE1-NEXT:          FP Offset: 32188#  CASE1-NEXT:          Extra Offsets: [48, 64]189#  CASE1-NEXT:        }190#  CASE1-NEXT:{{.*}}: warning: '[[FILE]]': unexpected end of data at offset 0x6e while reading [0x6e, 0x71)191#       CASE1:    FuncDescEntry [2] {192#       CASE1:      Info {193#  CASE1-NEXT:        FRE Type: 0x3194#       CASE1:      FREs [195#  CASE1-NEXT:{{.*}}: warning: '[[FILE]]': unsupported FRE type 3 at offset 0x60196 197--- !ELF198FileHeader:199  Class: ELFCLASS64200  Data:  ELFDATA2MSB201  Type:  ET_EXEC202Sections:203  - Name:  .sframe204    Type:  SHT_GNU_SFRAME205    Flags: [ SHF_ALLOC ]206    ContentArray: [207      0xde, 0xe2, 0x02, 0x05,  # Preamble (magic, version, flags)208      # Header:209      0x01, 0x42, 0x47, 0x00,  # ABI, Fixed FP offset, Fixed RA Offset, AUX header length210      0x00, 0x00, 0x00, 0x01,  # Number of FDEs211      0x00, 0x00, 0x00, 0x10,  # Number of FREs212      0x00, 0x00, 0x10, 0x00,  # FRE length213      0x00, 0x00, 0x00, 0x00,  # FDE offset214      0x00, 0x00, 0x01, 0x00,  # FRE offset215 216      # FDE:217      0x00, 0xde, 0x00, 0x00,  # Start Address218      0x00, 0x00, 0x01, 0xbe,  # Size219      0x00, 0x00, 0x00, 0x00,  # Start FRE Offset220      0x00, 0x00, 0x00, 0x06,  # Number of FREs221      0x02, 0xde, 0xad, 0x00,  # Info, RepSize, Padding2222 223      # FRE[0]: Zero offsets224      0x00, 0x00, 0x00, 0x00,  # Start Address225      0x00,                    # Info226 227      # FRE[1]: One offset228      0x00, 0x00, 0x00, 0x01,  # Start Address229      0x82, 0x10,              # Info, Offset[0]230 231      # FRE[2]: Two offsets232      0x00, 0x00, 0x00, 0x02,  # Start Address233      0x04, 0x10, 0x20,        # Info, Offset[0-1]234 235      # FRE[3]: Three offsets236      0x00, 0x00, 0x00, 0x03,  # Start Address237      0x86, 0x10, 0x20, 0x30,  # Info, Offset[0-2]238 239      # FRE[4]: Four offsets240      0x00, 0x00, 0x00, 0x04,  # Start Address241      0x08,                    # Info242      0x10, 0x20, 0x30, 0x40,  # Offset[0-3]243 244      # FRE[4]: Invalid offset size245      0x00, 0x00, 0x00, 0x05,  # Start Address246      0x60,                    # Info247    ]248## Testing:249## - big-endian support250## - ARM64 ABI251## - four-byte address sizes252## - return address signing253## - various offset counts254## - invalid offset size255# CASE2-LABEL:SFrame section '.sframe' {256#       CASE2:    ABI: AArch64EndianBig (0x1)257#       CASE2:    FuncDescEntry [0] {258#  CASE2-NEXT:      PC: 0xDE001C259#       CASE2:      Info {260#  CASE2-NEXT:        FRE Type: Addr4 (0x2)261#  CASE2-NEXT:        FDE Type: PCInc (0x0)262#       CASE2:      FREs [263#  CASE2-NEXT:        Frame Row Entry {264#  CASE2-NEXT:          Start Address: 0xDE001C265#  CASE2-NEXT:          Return Address Signed: No266#  CASE2-NEXT:          Offset Size: B1 (0x0)267#  CASE2-NEXT:          Base Register: FP (0x0)268#  CASE2-NEXT:        }269#  CASE2-NEXT:        Frame Row Entry {270#  CASE2-NEXT:          Start Address: 0xDE001D271#  CASE2-NEXT:          Return Address Signed: Yes272#  CASE2-NEXT:          Offset Size: B1 (0x0)273#  CASE2-NEXT:          Base Register: FP (0x0)274#  CASE2-NEXT:          CFA Offset: 16275#  CASE2-NEXT:        }276#  CASE2-NEXT:        Frame Row Entry {277#  CASE2-NEXT:          Start Address: 0xDE001E278#  CASE2-NEXT:          Return Address Signed: No279#  CASE2-NEXT:          Offset Size: B1 (0x0)280#  CASE2-NEXT:          Base Register: FP (0x0)281#  CASE2-NEXT:          CFA Offset: 16282#  CASE2-NEXT:          RA Offset: 32283#  CASE2-NEXT:        }284#  CASE2-NEXT:        Frame Row Entry {285#  CASE2-NEXT:          Start Address: 0xDE001F286#  CASE2-NEXT:          Return Address Signed: Yes287#  CASE2-NEXT:          Offset Size: B1 (0x0)288#  CASE2-NEXT:          Base Register: FP (0x0)289#  CASE2-NEXT:          CFA Offset: 16290#  CASE2-NEXT:          RA Offset: 32291#  CASE2-NEXT:          FP Offset: 48292#  CASE2-NEXT:        }293#  CASE2-NEXT:        Frame Row Entry {294#  CASE2-NEXT:          Start Address: 0xDE0020295#  CASE2-NEXT:          Return Address Signed: No296#  CASE2-NEXT:          Offset Size: B1 (0x0)297#  CASE2-NEXT:          Base Register: FP (0x0)298#  CASE2-NEXT:          CFA Offset: 16299#  CASE2-NEXT:          RA Offset: 32300#  CASE2-NEXT:          FP Offset: 48301#  CASE2-NEXT:          Extra Offsets: [64]302#  CASE2-NEXT:        }303#  CASE2-NEXT:{{.*}}: warning: '[[FILE]]': unsupported FRE offset size 3 at offset 0x58304