diff options
Diffstat (limited to 'test/tools/llvm-objdump/win64-unwind-data.test')
-rw-r--r-- | test/tools/llvm-objdump/win64-unwind-data.test | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/test/tools/llvm-objdump/win64-unwind-data.test b/test/tools/llvm-objdump/win64-unwind-data.test new file mode 100644 index 0000000..a723ffe --- /dev/null +++ b/test/tools/llvm-objdump/win64-unwind-data.test @@ -0,0 +1,52 @@ +// This test checks that the unwind data is dumped by llvm-objdump. +// RUN: llvm-objdump -u %p/Inputs/win64-unwind.exe.coff-x86_64 | FileCheck %s + +CHECK: Unwind info: +CHECK: Function Table: +CHECK-NEXT: Start Address: func +CHECK-NEXT: End Address: func + 0x001b +CHECK-NEXT: Unwind Info Address: .xdata +CHECK-NEXT: Version: 1 +CHECK-NEXT: Flags: 1 UNW_ExceptionHandler +CHECK-NEXT: Size of prolog: 18 +CHECK-NEXT: Number of Codes: 8 +CHECK-NEXT: Frame register: RBX +CHECK-NEXT: Frame offset: 0 +CHECK-NEXT: Unwind Codes: +CHECK-NEXT: 0x12: UOP_SetFPReg +CHECK-NEXT: 0x0f: UOP_PushNonVol RBX +CHECK-NEXT: 0x0e: UOP_SaveXMM128 XMM8 [0x0000] +CHECK-NEXT: 0x09: UOP_SaveNonVol RSI [0x0010] +CHECK-NEXT: 0x04: UOP_AllocSmall 24 +CHECK-NEXT: 0x00: UOP_PushMachFrame w/o error code +CHECK: Function Table: +CHECK-NEXT: Start Address: func + 0x0012 +CHECK-NEXT: End Address: func + 0x0012 +CHECK-NEXT: Unwind Info Address: .xdata + 0x001c +CHECK-NEXT: Version: 1 +CHECK-NEXT: Flags: 4 UNW_ChainInfo +CHECK-NEXT: Size of prolog: 0 +CHECK-NEXT: Number of Codes: 0 +CHECK-NEXT: No frame pointer used +CHECK: Function Table: +CHECK-NEXT: Start Address: smallFunc +CHECK-NEXT: End Address: smallFunc + 0x0001 +CHECK-NEXT: Unwind Info Address: .xdata + 0x002c +CHECK-NEXT: Version: 1 +CHECK-NEXT: Flags: 0 +CHECK-NEXT: Size of prolog: 0 +CHECK-NEXT: Number of Codes: 0 +CHECK-NEXT: No frame pointer used +CHECK: Function Table: +CHECK-NEXT: Start Address: allocFunc +CHECK-NEXT: End Address: allocFunc + 0x001d +CHECK-NEXT: Unwind Info Address: .xdata + 0x0034 +CHECK-NEXT: Version: 1 +CHECK-NEXT: Flags: 0 +CHECK-NEXT: Size of prolog: 14 +CHECK-NEXT: Number of Codes: 6 +CHECK-NEXT: No frame pointer used +CHECK-NEXT: Unwind Codes: +CHECK-NEXT: 0x0e: UOP_AllocLarge 8454128 +CHECK-NEXT: 0x07: UOP_AllocLarge 8190 +CHECK-NEXT: 0x00: UOP_PushMachFrame w/o error code |