mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-29 10:32:47 +00:00
Add a test for Win64 EH unwind information emission.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132180 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
33281b2361
commit
3a5d7d0665
51
test/MC/COFF/seh.s
Normal file
51
test/MC/COFF/seh.s
Normal file
@ -0,0 +1,51 @@
|
||||
// This test checks that the SEH directives emit the correct unwind data.
|
||||
// RUN: llvm-mc -triple x86_64-pc-win32 -filetype=obj %s | coff-dump.py | FileCheck %s
|
||||
|
||||
// CHECK: Name = .xdata
|
||||
// CHECK-NEXT: VirtualSize
|
||||
// CHECK-NEXT: VirtualAddress
|
||||
// CHECK-NEXT: SizeOfRawData = 44
|
||||
// CHECK-NEXT: PointerToRawData
|
||||
// CHECK-NEXT: PointerToRelocations
|
||||
// CHECK-NEXT: PointerToLineNumbers
|
||||
// CHECK-NEXT: NumberOfRelocations = 4
|
||||
// CHECK-NEXT: NumberOfLineNumbers = 0
|
||||
// CHECK-NEXT: Charateristics
|
||||
// CHECK-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA
|
||||
// CHECK-NEXT: IMAGE_SCN_ALIGN_4BYTES
|
||||
// CHECK-NEXT: IMAGE_SCN_MEM_READ
|
||||
// CHECK-NEXT: IMAGE_SCN_MEM_WRITE
|
||||
// CHECK-NEXT: SectionData
|
||||
// CHECK-NEXT: 21 12 08 30 00 30 0F 03 - 0E 88 00 00 09 46 02 00
|
||||
// CHECK-NEXT: 04 22 00 A1 00 00 00 00 - 00 00 00 00 24 00 00 00
|
||||
// CHECK-NEXT: 00 00 00 00 1B 00 00 00 - 00 00 00 00
|
||||
|
||||
.text
|
||||
.globl func
|
||||
.def func; .scl 2; .type 32; .endef
|
||||
.seh_proc func
|
||||
func:
|
||||
.seh_pushframe @code
|
||||
subq $24, %rsp
|
||||
.seh_stackalloc 24
|
||||
movq %rsi, 16(%rsp)
|
||||
.seh_savereg %rsi, 16
|
||||
movups %xmm8, (%rsp)
|
||||
.seh_savexmm %xmm8, 0
|
||||
pushq %rbx
|
||||
.seh_pushreg 3
|
||||
mov %rsp, %rbx
|
||||
.seh_setframe 3, 0
|
||||
.seh_endprologue
|
||||
.seh_handler __C_specific_handler, @except
|
||||
.seh_handlerdata
|
||||
.long 0
|
||||
.text
|
||||
.seh_startchained
|
||||
.seh_endprologue
|
||||
.seh_endchained
|
||||
lea (%rbx), %rsp
|
||||
pop %rbx
|
||||
addq $24, %rsp
|
||||
ret
|
||||
.seh_endproc
|
Loading…
Reference in New Issue
Block a user