• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// REQUIRES: aarch64-registered-target
2// RUN: llvm-mc -filetype=obj -triple aarch64-windows %s -o %t.o
3// RUN: llvm-readobj --unwind %t.o | FileCheck --strict-whitespace %s
4
5// CHECK:          Prologue [
6// CHECK-NEXT:        0xe202              ; add fp, sp, #16
7// CHECK-NEXT:        0xe1                ; mov fp, sp
8// CHECK-NEXT:        0xdc01              ; str d8, [sp, #8]
9// CHECK-NEXT:        0xd400              ; str x19, [sp, #-8]!
10// CHECK-NEXT:        0xe4                ; end
11// CHECK-NEXT:     ]
12// CHECK-NEXT:     EpilogueScopes [
13// CHECK-NEXT:       EpilogueScope {
14// CHECK-NEXT:         StartOffset:
15// CHECK-NEXT:         EpilogueStartIndex:
16// CHECK-NEXT:         Opcodes [
17// CHECK-NEXT:           0xe202              ; sub sp, fp, #16
18// CHECK-NEXT:           0xe1                ; mov sp, fp
19// CHECK-NEXT:           0xe4                ; end
20// CHECK-NEXT:         ]
21// CHECK-NEXT:       }
22// CHECK-NEXT:     ]
23
24.section .pdata,"dr"
25        .long func@IMGREL
26        .long "$unwind$func"@IMGREL
27
28        .text
29        .globl  func
30func:
31        str x19, [sp, #-8]!
32        str d8, [sp, #8]
33        mov x29, sp
34        add x29, sp, #16
35        nop
36        sub sp, x29, #16
37        mov sp, x29
38        ret
39
40.section .xdata,"dr"
41"$unwind$func":
42.byte 0x08, 0x00, 0x40, 0x18
43.byte 0x05, 0x00, 0x00, 0x02
44.byte 0xe2, 0x02, 0xe1, 0xdc
45.byte 0x01, 0xd4, 0x00, 0xe4
46.byte 0xe2, 0x02, 0xe1, 0xe4
47