108 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			108 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| // This test checks that the unwind data is dumped by llvm-objdump.
 | |
| // RUN: llvm-objdump -u %p/Inputs/win64-unwind.exe.coff-x86_64.obj \
 | |
| // RUN:   | FileCheck -check-prefix=OBJ %s
 | |
| // RUN: llvm-objdump -u %p/Inputs/win64-unwind.exe.coff-x86_64.exe \
 | |
| // RUN:   | FileCheck -check-prefix=EXE %s
 | |
| 
 | |
| OBJ:      Unwind info:
 | |
| OBJ:      Function Table:
 | |
| OBJ-NEXT:   Start Address: func
 | |
| OBJ-NEXT:   End Address: func + 0x001b
 | |
| OBJ-NEXT:   Unwind Info Address: .xdata
 | |
| OBJ-NEXT:     Version: 1
 | |
| OBJ-NEXT:     Flags: 1 UNW_ExceptionHandler
 | |
| OBJ-NEXT:     Size of prolog: 18
 | |
| OBJ-NEXT:     Number of Codes: 8
 | |
| OBJ-NEXT:     Frame register: RBX
 | |
| OBJ-NEXT:     Frame offset: 0
 | |
| OBJ-NEXT:     Unwind Codes:
 | |
| OBJ-NEXT:       0x12: UOP_SetFPReg
 | |
| OBJ-NEXT:       0x0f: UOP_PushNonVol RBX
 | |
| OBJ-NEXT:       0x0e: UOP_SaveXMM128 XMM8 [0x0000]
 | |
| OBJ-NEXT:       0x09: UOP_SaveNonVol RSI [0x0010]
 | |
| OBJ-NEXT:       0x04: UOP_AllocSmall 24
 | |
| OBJ-NEXT:       0x00: UOP_PushMachFrame w/o error code
 | |
| OBJ:      Function Table:
 | |
| OBJ-NEXT:   Start Address: func + 0x0012
 | |
| OBJ-NEXT:   End Address: func + 0x0012
 | |
| OBJ-NEXT:   Unwind Info Address: .xdata + 0x001c
 | |
| OBJ-NEXT:     Version: 1
 | |
| OBJ-NEXT:     Flags: 4 UNW_ChainInfo
 | |
| OBJ-NEXT:     Size of prolog: 0
 | |
| OBJ-NEXT:     Number of Codes: 0
 | |
| OBJ-NEXT:     No frame pointer used
 | |
| OBJ:      Function Table:
 | |
| OBJ-NEXT:   Start Address: smallFunc
 | |
| OBJ-NEXT:   End Address: smallFunc + 0x0001
 | |
| OBJ-NEXT:   Unwind Info Address: .xdata + 0x002c
 | |
| OBJ-NEXT:     Version: 1
 | |
| OBJ-NEXT:     Flags: 0
 | |
| OBJ-NEXT:     Size of prolog: 0
 | |
| OBJ-NEXT:     Number of Codes: 0
 | |
| OBJ-NEXT:     No frame pointer used
 | |
| OBJ:      Function Table:
 | |
| OBJ-NEXT:   Start Address: allocFunc
 | |
| OBJ-NEXT:   End Address: allocFunc + 0x001d
 | |
| OBJ-NEXT:   Unwind Info Address: .xdata + 0x0034
 | |
| OBJ-NEXT:     Version: 1
 | |
| OBJ-NEXT:     Flags: 0
 | |
| OBJ-NEXT:     Size of prolog: 14
 | |
| OBJ-NEXT:     Number of Codes: 6
 | |
| OBJ-NEXT:     No frame pointer used
 | |
| OBJ-NEXT:     Unwind Codes:
 | |
| OBJ-NEXT:       0x0e: UOP_AllocLarge 8454128
 | |
| OBJ-NEXT:       0x07: UOP_AllocLarge 8190
 | |
| OBJ-NEXT:       0x00: UOP_PushMachFrame w/o error code
 | |
| 
 | |
| EXE:      Function Table:
 | |
| EXE-NEXT:   Start Address: 0x1000
 | |
| EXE-NEXT:   End Address: 0x101b
 | |
| EXE-NEXT:   Unwind Info Address: 0x2000
 | |
| EXE-NEXT:     Version: 1
 | |
| EXE-NEXT:     Flags: 1 UNW_ExceptionHandler
 | |
| EXE-NEXT:     Size of prolog: 18
 | |
| EXE-NEXT:     Number of Codes: 8
 | |
| EXE-NEXT:     Frame register: RBX
 | |
| EXE-NEXT:     Frame offset: 0
 | |
| EXE-NEXT:     Unwind Codes:
 | |
| EXE-NEXT:       0x12: UOP_SetFPReg
 | |
| EXE-NEXT:       0x0f: UOP_PushNonVol RBX
 | |
| EXE-NEXT:       0x0e: UOP_SaveXMM128 XMM8 [0x0000]
 | |
| EXE-NEXT:       0x09: UOP_SaveNonVol RSI [0x0010]
 | |
| EXE-NEXT:       0x04: UOP_AllocSmall 24
 | |
| EXE-NEXT:       0x00: UOP_PushMachFrame w/o error code
 | |
| 
 | |
| EXE:      Function Table:
 | |
| EXE-NEXT:   Start Address: 0x1012
 | |
| EXE-NEXT:   End Address: 0x1012
 | |
| EXE-NEXT:   Unwind Info Address: 0x201c
 | |
| EXE-NEXT:     Version: 1
 | |
| EXE-NEXT:     Flags: 4 UNW_ChainInfo
 | |
| EXE-NEXT:     Size of prolog: 0
 | |
| EXE-NEXT:     Number of Codes: 0
 | |
| EXE-NEXT:     No frame pointer used
 | |
| 
 | |
| EXE:      Function Table:
 | |
| EXE-NEXT:   Start Address: 0x101b
 | |
| EXE-NEXT:   End Address: 0x101c
 | |
| EXE-NEXT:   Unwind Info Address: 0x202c
 | |
| EXE-NEXT:     Version: 1
 | |
| EXE-NEXT:     Flags: 0
 | |
| EXE-NEXT:     Size of prolog: 0
 | |
| EXE-NEXT:     Number of Codes: 0
 | |
| EXE-NEXT:     No frame pointer used
 | |
| 
 | |
| EXE:      Function Table:
 | |
| EXE-NEXT:   Start Address: 0x101c
 | |
| EXE-NEXT:   End Address: 0x1039
 | |
| EXE-NEXT:   Unwind Info Address: 0x2034
 | |
| EXE-NEXT:     Version: 1
 | |
| EXE-NEXT:     Flags: 0
 | |
| EXE-NEXT:     Size of prolog: 14
 | |
| EXE-NEXT:     Number of Codes: 6
 | |
| EXE-NEXT:     No frame pointer used
 | |
| EXE-NEXT:     Unwind Codes:
 | |
| EXE-NEXT:       0x0e: UOP_AllocLarge 8454128
 | |
| EXE-NEXT:       0x07: UOP_AllocLarge 8190
 | |
| EXE-NEXT:       0x00: UOP_PushMachFrame w/o error code
 |