1*9880d681SAndroid Build Coastguard Worker// This test checks that the unwind data is dumped by llvm-objdump. 2*9880d681SAndroid Build Coastguard Worker// RUN: llvm-objdump -u %p/Inputs/win64-unwind.exe.coff-x86_64.obj \ 3*9880d681SAndroid Build Coastguard Worker// RUN: | FileCheck -check-prefix=OBJ %s 4*9880d681SAndroid Build Coastguard Worker// RUN: llvm-objdump -u %p/Inputs/win64-unwind.exe.coff-x86_64.exe \ 5*9880d681SAndroid Build Coastguard Worker// RUN: | FileCheck -check-prefix=EXE %s 6*9880d681SAndroid Build Coastguard Worker 7*9880d681SAndroid Build Coastguard WorkerOBJ: Unwind info: 8*9880d681SAndroid Build Coastguard WorkerOBJ: Function Table: 9*9880d681SAndroid Build Coastguard WorkerOBJ-NEXT: Start Address: func 10*9880d681SAndroid Build Coastguard WorkerOBJ-NEXT: End Address: func + 0x001b 11*9880d681SAndroid Build Coastguard WorkerOBJ-NEXT: Unwind Info Address: .xdata 12*9880d681SAndroid Build Coastguard WorkerOBJ-NEXT: Version: 1 13*9880d681SAndroid Build Coastguard WorkerOBJ-NEXT: Flags: 1 UNW_ExceptionHandler 14*9880d681SAndroid Build Coastguard WorkerOBJ-NEXT: Size of prolog: 18 15*9880d681SAndroid Build Coastguard WorkerOBJ-NEXT: Number of Codes: 8 16*9880d681SAndroid Build Coastguard WorkerOBJ-NEXT: Frame register: RBX 17*9880d681SAndroid Build Coastguard WorkerOBJ-NEXT: Frame offset: 0 18*9880d681SAndroid Build Coastguard WorkerOBJ-NEXT: Unwind Codes: 19*9880d681SAndroid Build Coastguard WorkerOBJ-NEXT: 0x12: UOP_SetFPReg 20*9880d681SAndroid Build Coastguard WorkerOBJ-NEXT: 0x0f: UOP_PushNonVol RBX 21*9880d681SAndroid Build Coastguard WorkerOBJ-NEXT: 0x0e: UOP_SaveXMM128 XMM8 [0x0000] 22*9880d681SAndroid Build Coastguard WorkerOBJ-NEXT: 0x09: UOP_SaveNonVol RSI [0x0010] 23*9880d681SAndroid Build Coastguard WorkerOBJ-NEXT: 0x04: UOP_AllocSmall 24 24*9880d681SAndroid Build Coastguard WorkerOBJ-NEXT: 0x00: UOP_PushMachFrame w/o error code 25*9880d681SAndroid Build Coastguard WorkerOBJ: Function Table: 26*9880d681SAndroid Build Coastguard WorkerOBJ-NEXT: Start Address: func + 0x0012 27*9880d681SAndroid Build Coastguard WorkerOBJ-NEXT: End Address: func + 0x0012 28*9880d681SAndroid Build Coastguard WorkerOBJ-NEXT: Unwind Info Address: .xdata + 0x001c 29*9880d681SAndroid Build Coastguard WorkerOBJ-NEXT: Version: 1 30*9880d681SAndroid Build Coastguard WorkerOBJ-NEXT: Flags: 4 UNW_ChainInfo 31*9880d681SAndroid Build Coastguard WorkerOBJ-NEXT: Size of prolog: 0 32*9880d681SAndroid Build Coastguard WorkerOBJ-NEXT: Number of Codes: 0 33*9880d681SAndroid Build Coastguard WorkerOBJ-NEXT: No frame pointer used 34*9880d681SAndroid Build Coastguard WorkerOBJ: Function Table: 35*9880d681SAndroid Build Coastguard WorkerOBJ-NEXT: Start Address: smallFunc 36*9880d681SAndroid Build Coastguard WorkerOBJ-NEXT: End Address: smallFunc + 0x0001 37*9880d681SAndroid Build Coastguard WorkerOBJ-NEXT: Unwind Info Address: .xdata + 0x002c 38*9880d681SAndroid Build Coastguard WorkerOBJ-NEXT: Version: 1 39*9880d681SAndroid Build Coastguard WorkerOBJ-NEXT: Flags: 0 40*9880d681SAndroid Build Coastguard WorkerOBJ-NEXT: Size of prolog: 0 41*9880d681SAndroid Build Coastguard WorkerOBJ-NEXT: Number of Codes: 0 42*9880d681SAndroid Build Coastguard WorkerOBJ-NEXT: No frame pointer used 43*9880d681SAndroid Build Coastguard WorkerOBJ: Function Table: 44*9880d681SAndroid Build Coastguard WorkerOBJ-NEXT: Start Address: allocFunc 45*9880d681SAndroid Build Coastguard WorkerOBJ-NEXT: End Address: allocFunc + 0x001d 46*9880d681SAndroid Build Coastguard WorkerOBJ-NEXT: Unwind Info Address: .xdata + 0x0034 47*9880d681SAndroid Build Coastguard WorkerOBJ-NEXT: Version: 1 48*9880d681SAndroid Build Coastguard WorkerOBJ-NEXT: Flags: 0 49*9880d681SAndroid Build Coastguard WorkerOBJ-NEXT: Size of prolog: 14 50*9880d681SAndroid Build Coastguard WorkerOBJ-NEXT: Number of Codes: 6 51*9880d681SAndroid Build Coastguard WorkerOBJ-NEXT: No frame pointer used 52*9880d681SAndroid Build Coastguard WorkerOBJ-NEXT: Unwind Codes: 53*9880d681SAndroid Build Coastguard WorkerOBJ-NEXT: 0x0e: UOP_AllocLarge 8454128 54*9880d681SAndroid Build Coastguard WorkerOBJ-NEXT: 0x07: UOP_AllocLarge 8190 55*9880d681SAndroid Build Coastguard WorkerOBJ-NEXT: 0x00: UOP_PushMachFrame w/o error code 56*9880d681SAndroid Build Coastguard Worker 57*9880d681SAndroid Build Coastguard WorkerEXE: Function Table: 58*9880d681SAndroid Build Coastguard WorkerEXE-NEXT: Start Address: 0x1000 59*9880d681SAndroid Build Coastguard WorkerEXE-NEXT: End Address: 0x101b 60*9880d681SAndroid Build Coastguard WorkerEXE-NEXT: Unwind Info Address: 0x2000 61*9880d681SAndroid Build Coastguard WorkerEXE-NEXT: Version: 1 62*9880d681SAndroid Build Coastguard WorkerEXE-NEXT: Flags: 1 UNW_ExceptionHandler 63*9880d681SAndroid Build Coastguard WorkerEXE-NEXT: Size of prolog: 18 64*9880d681SAndroid Build Coastguard WorkerEXE-NEXT: Number of Codes: 8 65*9880d681SAndroid Build Coastguard WorkerEXE-NEXT: Frame register: RBX 66*9880d681SAndroid Build Coastguard WorkerEXE-NEXT: Frame offset: 0 67*9880d681SAndroid Build Coastguard WorkerEXE-NEXT: Unwind Codes: 68*9880d681SAndroid Build Coastguard WorkerEXE-NEXT: 0x12: UOP_SetFPReg 69*9880d681SAndroid Build Coastguard WorkerEXE-NEXT: 0x0f: UOP_PushNonVol RBX 70*9880d681SAndroid Build Coastguard WorkerEXE-NEXT: 0x0e: UOP_SaveXMM128 XMM8 [0x0000] 71*9880d681SAndroid Build Coastguard WorkerEXE-NEXT: 0x09: UOP_SaveNonVol RSI [0x0010] 72*9880d681SAndroid Build Coastguard WorkerEXE-NEXT: 0x04: UOP_AllocSmall 24 73*9880d681SAndroid Build Coastguard WorkerEXE-NEXT: 0x00: UOP_PushMachFrame w/o error code 74*9880d681SAndroid Build Coastguard Worker 75*9880d681SAndroid Build Coastguard WorkerEXE: Function Table: 76*9880d681SAndroid Build Coastguard WorkerEXE-NEXT: Start Address: 0x1012 77*9880d681SAndroid Build Coastguard WorkerEXE-NEXT: End Address: 0x1012 78*9880d681SAndroid Build Coastguard WorkerEXE-NEXT: Unwind Info Address: 0x201c 79*9880d681SAndroid Build Coastguard WorkerEXE-NEXT: Version: 1 80*9880d681SAndroid Build Coastguard WorkerEXE-NEXT: Flags: 4 UNW_ChainInfo 81*9880d681SAndroid Build Coastguard WorkerEXE-NEXT: Size of prolog: 0 82*9880d681SAndroid Build Coastguard WorkerEXE-NEXT: Number of Codes: 0 83*9880d681SAndroid Build Coastguard WorkerEXE-NEXT: No frame pointer used 84*9880d681SAndroid Build Coastguard Worker 85*9880d681SAndroid Build Coastguard WorkerEXE: Function Table: 86*9880d681SAndroid Build Coastguard WorkerEXE-NEXT: Start Address: 0x101b 87*9880d681SAndroid Build Coastguard WorkerEXE-NEXT: End Address: 0x101c 88*9880d681SAndroid Build Coastguard WorkerEXE-NEXT: Unwind Info Address: 0x202c 89*9880d681SAndroid Build Coastguard WorkerEXE-NEXT: Version: 1 90*9880d681SAndroid Build Coastguard WorkerEXE-NEXT: Flags: 0 91*9880d681SAndroid Build Coastguard WorkerEXE-NEXT: Size of prolog: 0 92*9880d681SAndroid Build Coastguard WorkerEXE-NEXT: Number of Codes: 0 93*9880d681SAndroid Build Coastguard WorkerEXE-NEXT: No frame pointer used 94*9880d681SAndroid Build Coastguard Worker 95*9880d681SAndroid Build Coastguard WorkerEXE: Function Table: 96*9880d681SAndroid Build Coastguard WorkerEXE-NEXT: Start Address: 0x101c 97*9880d681SAndroid Build Coastguard WorkerEXE-NEXT: End Address: 0x1039 98*9880d681SAndroid Build Coastguard WorkerEXE-NEXT: Unwind Info Address: 0x2034 99*9880d681SAndroid Build Coastguard WorkerEXE-NEXT: Version: 1 100*9880d681SAndroid Build Coastguard WorkerEXE-NEXT: Flags: 0 101*9880d681SAndroid Build Coastguard WorkerEXE-NEXT: Size of prolog: 14 102*9880d681SAndroid Build Coastguard WorkerEXE-NEXT: Number of Codes: 6 103*9880d681SAndroid Build Coastguard WorkerEXE-NEXT: No frame pointer used 104*9880d681SAndroid Build Coastguard WorkerEXE-NEXT: Unwind Codes: 105*9880d681SAndroid Build Coastguard WorkerEXE-NEXT: 0x0e: UOP_AllocLarge 8454128 106*9880d681SAndroid Build Coastguard WorkerEXE-NEXT: 0x07: UOP_AllocLarge 8190 107*9880d681SAndroid Build Coastguard WorkerEXE-NEXT: 0x00: UOP_PushMachFrame w/o error code 108