brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.1 KiB · a746a5f Raw
155 lines · plain
1// RUN: llvm-mc -triple x86_64-pc-win32 -filetype=obj %s | llvm-readobj -u - | FileCheck %s2 3// CHECK:       UnwindInformation [4 5.text6 7single_epilog_atend:8    .seh_proc stack_alloc_no_pushes9    .seh_unwindversion 210    subq    $40, %rsp11    .seh_stackalloc 4012    .seh_endprologue13    callq   a14    nop15    .seh_startepilogue16    addq    $40, %rsp17    .seh_unwindv2start18    .seh_endepilogue19    retq20    .seh_endproc21// CHECK-LABEL:  StartAddress: single_epilog_atend22// CHECK-NEXT:   EndAddress: single_epilog_atend +0xF23// CHECK-NEXT:   UnwindInfoAddress: .xdata24// CHECK-NEXT:   UnwindInfo {25// CHECK-NEXT:     Version: 226// CHECK-NEXT:     Flags [ (0x0)27// CHECK-NEXT:     ]28// CHECK-NEXT:     PrologSize: 429// CHECK-NEXT:     FrameRegister: -30// CHECK-NEXT:     FrameOffset: -31// CHECK-NEXT:     UnwindCodeCount: 332// CHECK-NEXT:     UnwindCodes [33// CHECK-NEXT:       0x01: EPILOG atend=yes, length=0x134// CHECK-NEXT:       0x00: EPILOG padding35// CHECK-NEXT:       0x04: ALLOC_SMALL size=4036// CHECK-NEXT:     ]37// CHECK-NEXT:   }38 39single_epilog_notatend:40    .seh_proc stack_alloc_no_pushes41    .seh_unwindversion 242    subq    $40, %rsp43    .seh_stackalloc 4044    .seh_endprologue45    callq   a46    nop47    .seh_startepilogue48    addq    $40, %rsp49    .seh_unwindv2start50    .seh_endepilogue51    retq52    nop53    .seh_endproc54// CHECK-LABEL:  StartAddress: single_epilog_notatend55// CHECK-NEXT:   EndAddress: single_epilog_notatend +0x1056// CHECK-NEXT:   UnwindInfoAddress: .xdata +0xC57// CHECK-NEXT:   UnwindInfo {58// CHECK-NEXT:     Version: 259// CHECK-NEXT:     Flags [ (0x0)60// CHECK-NEXT:     ]61// CHECK-NEXT:     PrologSize: 462// CHECK-NEXT:     FrameRegister: -63// CHECK-NEXT:     FrameOffset: -64// CHECK-NEXT:     UnwindCodeCount: 365// CHECK-NEXT:     UnwindCodes [66// CHECK-NEXT:       0x01: EPILOG atend=no, length=0x167// CHECK-NEXT:       0x02: EPILOG offset=0x268// CHECK-NEXT:       0x04: ALLOC_SMALL size=4069// CHECK-NEXT:     ]70// CHECK-NEXT:   }71 72multiple_epilogs:73    .seh_proc multiple_epilogs74    .seh_unwindversion 275    subq    $40, %rsp76    .seh_stackalloc 4077    .seh_endprologue78    callq   c79    testl   %eax, %eax80    jle     .L_ELSE_181    movl    %eax, %ecx82    .seh_startepilogue83    addq    $40, %rsp84    .seh_unwindv2start85    .seh_endepilogue86    jmp     c87.L_ELSE_1:88    nop89    .seh_startepilogue90    addq    $40, %rsp91    .seh_unwindv2start92    .seh_endepilogue93    jmp     b94    .seh_endproc95// CHECK-LABEL:  StartAddress: multiple_epilogs96// CHECK-NEXT:   EndAddress: multiple_epilogs +0x2297// CHECK-NEXT:   UnwindInfoAddress: .xdata +0x1898// CHECK-NEXT:   UnwindInfo {99// CHECK-NEXT:     Version: 2100// CHECK-NEXT:     Flags [ (0x0)101// CHECK-NEXT:     ]102// CHECK-NEXT:     PrologSize: 4103// CHECK-NEXT:     FrameRegister: -104// CHECK-NEXT:     FrameOffset: -105// CHECK-NEXT:     UnwindCodeCount: 5106// CHECK-NEXT:     UnwindCodes [107// CHECK-NEXT:       0x01: EPILOG atend=no, length=0x1108// CHECK-NEXT:       0x05: EPILOG offset=0x5109// CHECK-NEXT:       0x0F: EPILOG offset=0xF110// CHECK-NEXT:       0x00: EPILOG padding111// CHECK-NEXT:       0x04: ALLOC_SMALL size=40112// CHECK-NEXT:     ]113// CHECK-NEXT:   }114 115mismatched_terminators:116    .seh_proc mismatched_terminators117    .seh_unwindversion 2118    subq    $40, %rsp119    .seh_stackalloc 40120    .seh_endprologue121    callq   b122    testl   %eax, %eax123    jle     .L_ELSE_1124# %bb.2:125    .seh_startepilogue126    addq    $40, %rsp127    .seh_unwindv2start128    .seh_endepilogue129    jmp     b130.L_ELSE_2:131    nop132    .seh_startepilogue133    addq    $40, %rsp134    .seh_unwindv2start135    .seh_endepilogue136    retq137    .seh_endproc138// CHECK-LABEL:  StartAddress: mismatched_terminators139// CHECK-NEXT:   EndAddress: mismatched_terminators +0x1C140// CHECK-NEXT:   UnwindInfoAddress: .xdata +0x28141// CHECK-NEXT:   UnwindInfo {142// CHECK-NEXT:     Version: 2143// CHECK-NEXT:     Flags [ (0x0)144// CHECK-NEXT:     ]145// CHECK-NEXT:     PrologSize: 4146// CHECK-NEXT:     FrameRegister: -147// CHECK-NEXT:     FrameOffset: -148// CHECK-NEXT:     UnwindCodeCount: 3149// CHECK-NEXT:     UnwindCodes [150// CHECK-NEXT:       0x01: EPILOG atend=yes, length=0x1151// CHECK-NEXT:       0x0B: EPILOG offset=0xB152// CHECK-NEXT:       0x04: ALLOC_SMALL size=40153// CHECK-NEXT:     ]154// CHECK-NEXT:   }155