1## Check that error handling for bad opcodes works.
2## .xdata below contains the bad opcode 0xdf in the 4th word of .xdata.
3
4// REQUIRES: aarch64-registered-target
5// RUN: llvm-mc -filetype=obj -triple aarch64-windows %s -o - \
6// RUN:   | llvm-readobj --unwind - | FileCheck %s
7
8// CHECK:     Prologue [
9// CHECK:        0xdf                ; Bad opcode!
10// CHECK:        0xff                ; Bad opcode!
11// CHECK:        0xd600              ; stp x19, lr, [sp, #0]
12// CHECK:        0x01                ; sub sp, #16
13// CHECK:        0xe4                ; end
14// CHECK:     ]
15
16	.text
17	.globl	"?func@@YAHXZ"
18	.p2align	3
19"?func@@YAHXZ":
20	sub     sp,sp,#0x10
21	stp     x19,lr,[sp]
22	sub     sp,sp,#0x1F0
23	mov     w19,w0
24	bl	"?func2@@YAXXZ"
25	cmp     w19,#2
26	ble     .LBB0_1
27	bl      "?func2@@YAHXZ"
28	add      sp,sp,#0x1F0
29	ldp      x19,lr,[sp]
30	add      sp,sp,#0x10
31	ret
32.LBB0_1:
33	mov      x0,sp
34	bl       "?func3@@YAHPEAH@Z"
35	add      sp,sp,#0x1F0
36	ldp      x19,lr,[sp]
37	add      sp,sp,#0x10
38	ret
39
40
41.section .pdata,"dr"
42	.long "?func@@YAHXZ"@IMGREL
43        .long "$unwind$func@@YAHXZ"@IMGREL
44
45
46.section	.xdata,"dr"
47"$unwind$func@@YAHXZ":
48        .p2align	3
49	.long		0x10800012
50	.long 		0x8
51	.long 		0xe
52	.long 		0x00d6ffdf
53	.long 		0xe3e3e401
54
55