108 lines · plain
1// This test checks that the unwind data is dumped by llvm-objdump.2// RUN: llvm-objdump -u %p/Inputs/win64-unwind.exe.coff-x86_64.obj \3// RUN: | FileCheck -check-prefix=OBJ %s4// RUN: llvm-objdump -u %p/Inputs/win64-unwind.exe.coff-x86_64.exe \5// RUN: | FileCheck -check-prefix=EXE %s6 7OBJ: Unwind info:8OBJ: Function Table:9OBJ-NEXT: Start Address: func10OBJ-NEXT: End Address: func + 0x001b11OBJ-NEXT: Unwind Info Address: .xdata12OBJ-NEXT: Version: 113OBJ-NEXT: Flags: 1 UNW_ExceptionHandler14OBJ-NEXT: Size of prolog: 1815OBJ-NEXT: Number of Codes: 816OBJ-NEXT: Frame register: RBX17OBJ-NEXT: Frame offset: 018OBJ-NEXT: Unwind Codes:19OBJ-NEXT: 0x12: UOP_SetFPReg20OBJ-NEXT: 0x0f: UOP_PushNonVol RBX21OBJ-NEXT: 0x0e: UOP_SaveXMM128 XMM8 [0x0000]22OBJ-NEXT: 0x09: UOP_SaveNonVol RSI [0x0010]23OBJ-NEXT: 0x04: UOP_AllocSmall 2424OBJ-NEXT: 0x00: UOP_PushMachFrame w/o error code25OBJ: Function Table:26OBJ-NEXT: Start Address: func + 0x001227OBJ-NEXT: End Address: func + 0x001228OBJ-NEXT: Unwind Info Address: .xdata + 0x001c29OBJ-NEXT: Version: 130OBJ-NEXT: Flags: 4 UNW_ChainInfo31OBJ-NEXT: Size of prolog: 032OBJ-NEXT: Number of Codes: 033OBJ-NEXT: No frame pointer used34OBJ: Function Table:35OBJ-NEXT: Start Address: smallFunc36OBJ-NEXT: End Address: smallFunc + 0x000137OBJ-NEXT: Unwind Info Address: .xdata + 0x002c38OBJ-NEXT: Version: 139OBJ-NEXT: Flags: 040OBJ-NEXT: Size of prolog: 041OBJ-NEXT: Number of Codes: 042OBJ-NEXT: No frame pointer used43OBJ: Function Table:44OBJ-NEXT: Start Address: allocFunc45OBJ-NEXT: End Address: allocFunc + 0x001d46OBJ-NEXT: Unwind Info Address: .xdata + 0x003447OBJ-NEXT: Version: 148OBJ-NEXT: Flags: 049OBJ-NEXT: Size of prolog: 1450OBJ-NEXT: Number of Codes: 651OBJ-NEXT: No frame pointer used52OBJ-NEXT: Unwind Codes:53OBJ-NEXT: 0x0e: UOP_AllocLarge 845412854OBJ-NEXT: 0x07: UOP_AllocLarge 819055OBJ-NEXT: 0x00: UOP_PushMachFrame w/o error code56 57EXE: Function Table:58EXE-NEXT: Start Address: 0x100059EXE-NEXT: End Address: 0x101b60EXE-NEXT: Unwind Info Address: 0x200061EXE-NEXT: Version: 162EXE-NEXT: Flags: 1 UNW_ExceptionHandler63EXE-NEXT: Size of prolog: 1864EXE-NEXT: Number of Codes: 865EXE-NEXT: Frame register: RBX66EXE-NEXT: Frame offset: 067EXE-NEXT: Unwind Codes:68EXE-NEXT: 0x12: UOP_SetFPReg69EXE-NEXT: 0x0f: UOP_PushNonVol RBX70EXE-NEXT: 0x0e: UOP_SaveXMM128 XMM8 [0x0000]71EXE-NEXT: 0x09: UOP_SaveNonVol RSI [0x0010]72EXE-NEXT: 0x04: UOP_AllocSmall 2473EXE-NEXT: 0x00: UOP_PushMachFrame w/o error code74 75EXE: Function Table:76EXE-NEXT: Start Address: 0x101277EXE-NEXT: End Address: 0x101278EXE-NEXT: Unwind Info Address: 0x201c79EXE-NEXT: Version: 180EXE-NEXT: Flags: 4 UNW_ChainInfo81EXE-NEXT: Size of prolog: 082EXE-NEXT: Number of Codes: 083EXE-NEXT: No frame pointer used84 85EXE: Function Table:86EXE-NEXT: Start Address: 0x101b87EXE-NEXT: End Address: 0x101c88EXE-NEXT: Unwind Info Address: 0x202c89EXE-NEXT: Version: 190EXE-NEXT: Flags: 091EXE-NEXT: Size of prolog: 092EXE-NEXT: Number of Codes: 093EXE-NEXT: No frame pointer used94 95EXE: Function Table:96EXE-NEXT: Start Address: 0x101c97EXE-NEXT: End Address: 0x103998EXE-NEXT: Unwind Info Address: 0x203499EXE-NEXT: Version: 1100EXE-NEXT: Flags: 0101EXE-NEXT: Size of prolog: 14102EXE-NEXT: Number of Codes: 6103EXE-NEXT: No frame pointer used104EXE-NEXT: Unwind Codes:105EXE-NEXT: 0x0e: UOP_AllocLarge 8454128106EXE-NEXT: 0x07: UOP_AllocLarge 8190107EXE-NEXT: 0x00: UOP_PushMachFrame w/o error code108