forked from OSchip/llvm-project
55 lines
1.2 KiB
ArmAsm
55 lines
1.2 KiB
ArmAsm
## Check that error handling for bad opcodes works.
|
|
## .xdata below contains the bad opcode 0xdf in the 4th word of .xdata.
|
|
|
|
// REQUIRES: aarch64-registered-target
|
|
// RUN: llvm-mc -filetype=obj -triple aarch64-windows %s -o - \
|
|
// RUN: | llvm-readobj --unwind - | FileCheck %s
|
|
|
|
// CHECK: Prologue [
|
|
// CHECK: 0xdf ; Bad opcode!
|
|
// CHECK: 0xff ; Bad opcode!
|
|
// CHECK: 0xd600 ; stp x19, lr, [sp, #0]
|
|
// CHECK: 0x01 ; sub sp, #16
|
|
// CHECK: 0xe4 ; end
|
|
// CHECK: ]
|
|
|
|
.text
|
|
.globl "?func@@YAHXZ"
|
|
.p2align 3
|
|
"?func@@YAHXZ":
|
|
sub sp,sp,#0x10
|
|
stp x19,lr,[sp]
|
|
sub sp,sp,#0x1F0
|
|
mov w19,w0
|
|
bl "?func2@@YAXXZ"
|
|
cmp w19,#2
|
|
ble .LBB0_1
|
|
bl "?func2@@YAHXZ"
|
|
add sp,sp,#0x1F0
|
|
ldp x19,lr,[sp]
|
|
add sp,sp,#0x10
|
|
ret
|
|
.LBB0_1:
|
|
mov x0,sp
|
|
bl "?func3@@YAHPEAH@Z"
|
|
add sp,sp,#0x1F0
|
|
ldp x19,lr,[sp]
|
|
add sp,sp,#0x10
|
|
ret
|
|
|
|
|
|
.section .pdata,"dr"
|
|
.long "?func@@YAHXZ"@IMGREL
|
|
.long "$unwind$func@@YAHXZ"@IMGREL
|
|
|
|
|
|
.section .xdata,"dr"
|
|
"$unwind$func@@YAHXZ":
|
|
.p2align 3
|
|
.long 0x10800012
|
|
.long 0x8
|
|
.long 0xe
|
|
.long 0x00d6ffdf
|
|
.long 0xe3e3e401
|
|
|