brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.2 KiB · 5600888 Raw
103 lines · plain
1// This test checks that the unwinding opcodes are remapped to more2// efficient ones where possible.3 4// RUN: llvm-mc -triple aarch64-pc-win32 -filetype=obj %s -o %t.o5// RUN: llvm-readobj -u %t.o | FileCheck %s6 7// CHECK:      UnwindInformation [8// CHECK-NEXT:   RuntimeFunction {9// CHECK-NEXT:     Function: func10// CHECK-NEXT:     ExceptionRecord: .xdata11// CHECK-NEXT:     ExceptionData {12// CHECK:            Prologue [13// CHECK-NEXT:         0xd882              ; stp d10, d11, [sp, #16]14// CHECK-NEXT:         0xda07              ; stp d8, d9, [sp, #-64]!15// CHECK-NEXT:         0xe6                ; save next16// CHECK-NEXT:         0x28                ; stp x19, x20, [sp, #-64]!17// CHECK-NEXT:         0xca49              ; stp x28, x29, [sp, #72]18// CHECK-NEXT:         0xe6                ; save next19// CHECK-NEXT:         0xe6                ; save next20// CHECK-NEXT:         0xe6                ; save next21// CHECK-NEXT:         0xcc47              ; stp x20, x21, [sp, #-64]!22// CHECK-NEXT:         0x42                ; stp x29, x30, [sp, #16]23// CHECK-NEXT:         0xca02              ; stp x27, x28, [sp, #16]24// CHECK-NEXT:         0x83                ; stp x29, x30, [sp, #-32]!25// CHECK-NEXT:         0xce03              ; stp x27, x28, [sp, #-32]!26// CHECK-NEXT:         0xe1                ; mov fp, sp27// CHECK-NEXT:         0xe201              ; add fp, sp, #828// CHECK-NEXT:         0xe4                ; end29// CHECK-NEXT:       ]30// CHECK-NEXT:       Epilogue [31// CHECK-NEXT:         0xc904              ; ldp x23, x24, [sp, #32]32// CHECK-NEXT:         0xe6                ; restore next33// CHECK-NEXT:         0xcc83              ; ldp x21, x22, [sp], #3234// CHECK-NEXT:         0x24                ; ldp x19, x20, [sp], #3235// CHECK-NEXT:         0xcc1f              ; ldp x19, x20, [sp], #25636// CHECK-NEXT:         0xe4                ; end37// CHECK-NEXT:       ]38// CHECK-NEXT:     }39// CHECK-NEXT:   }40// CHECK-NEXT: ]41 42 43    .text44    .globl func45    .seh_proc func46func:47    add x29, sp, #848    .seh_add_fp 849    add x29, sp, #050    .seh_add_fp 051 52    stp x27, x28, [sp, #-32]!53    .seh_save_regp_x x27, 3254    stp x29, x30, [sp, #-32]!55    .seh_save_regp_x x29, 3256 57    stp x27, x28, [sp, #16]58    .seh_save_regp x27, 1659    stp x29, x30, [sp, #16]60    .seh_save_regp x29, 1661 62    stp x20, x21, [sp, #-64]!63    .seh_save_regp_x x20, 6464    stp x22, x23, [sp, #16]65    .seh_save_regp x22, 1666    stp x24, x25, [sp, #32]67    .seh_save_next68    stp x26, x27, [sp, #48]69    .seh_save_regp x26, 4870    stp x28, x29, [sp, #72]71    .seh_save_regp x28, 7272 73    stp x19, x20, [sp, #-64]!74    .seh_save_r19r20_x 6475    stp x21, x22, [sp, #16]76    .seh_save_regp x21, 1677 78    stp d8,  d9,  [sp, #-64]!79    .seh_save_fregp_x d8, 6480    stp d10, d11, [sp, #16]81    // This is intentionally not converted into a save_next, to avoid82    // bugs in the windows unwinder.83    .seh_save_fregp d10, 1684 85    .seh_endprologue86 87    nop88 89    .seh_startepilogue90    ldp x27, x28, [sp, #32]91    .seh_save_regp x23, 3292    ldp x23, x24, [sp, #16]93    .seh_save_regp x23, 1694    ldp x21, x22, [sp], #3295    .seh_save_regp_x x21, 3296    ldp x19, x20, [sp], #3297    .seh_save_regp_x x19, 3298    ldp x19, x20, [sp], #25699    .seh_save_regp_x x19, 256100    .seh_endepilogue101    ret102    .seh_endproc103