win64-unwind-data.test revision a6610ee882fcb8bcad60d53fc52b80f00a3fddae
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 | FileCheck %s 3 4CHECK: Unwind info: 5CHECK: Function Table: 6CHECK-NEXT: Start Address: func 7CHECK-NEXT: End Address: func + 0x001b 8CHECK-NEXT: Unwind Info Address: .xdata 9CHECK-NEXT: Version: 1 10CHECK-NEXT: Flags: 1 UNW_ExceptionHandler 11CHECK-NEXT: Size of prolog: 18 12CHECK-NEXT: Number of Codes: 8 13CHECK-NEXT: Frame register: RBX 14CHECK-NEXT: Frame offset: 0 15CHECK-NEXT: Unwind Codes: 16CHECK-NEXT: 0x12: UOP_SetFPReg 17CHECK-NEXT: 0x0f: UOP_PushNonVol RBX 18CHECK-NEXT: 0x0e: UOP_SaveXMM128 XMM8 [0x0000] 19CHECK-NEXT: 0x09: UOP_SaveNonVol RSI [0x0010] 20CHECK-NEXT: 0x04: UOP_AllocSmall 24 21CHECK-NEXT: 0x00: UOP_PushMachFrame w/o error code 22CHECK: Function Table: 23CHECK-NEXT: Start Address: func + 0x0012 24CHECK-NEXT: End Address: func + 0x0012 25CHECK-NEXT: Unwind Info Address: .xdata + 0x001c 26CHECK-NEXT: Version: 1 27CHECK-NEXT: Flags: 4 UNW_ChainInfo 28CHECK-NEXT: Size of prolog: 0 29CHECK-NEXT: Number of Codes: 0 30CHECK-NEXT: No frame pointer used 31CHECK: Function Table: 32CHECK-NEXT: Start Address: smallFunc 33CHECK-NEXT: End Address: smallFunc + 0x0001 34CHECK-NEXT: Unwind Info Address: .xdata + 0x002c 35CHECK-NEXT: Version: 1 36CHECK-NEXT: Flags: 0 37CHECK-NEXT: Size of prolog: 0 38CHECK-NEXT: Number of Codes: 0 39CHECK-NEXT: No frame pointer used 40CHECK: Function Table: 41CHECK-NEXT: Start Address: allocFunc 42CHECK-NEXT: End Address: allocFunc + 0x001d 43CHECK-NEXT: Unwind Info Address: .xdata + 0x0034 44CHECK-NEXT: Version: 1 45CHECK-NEXT: Flags: 0 46CHECK-NEXT: Size of prolog: 14 47CHECK-NEXT: Number of Codes: 6 48CHECK-NEXT: No frame pointer used 49CHECK-NEXT: Unwind Codes: 50CHECK-NEXT: 0x0e: UOP_AllocLarge 8454128 51CHECK-NEXT: 0x07: UOP_AllocLarge 8190 52CHECK-NEXT: 0x00: UOP_PushMachFrame w/o error code 53