diff options
Diffstat (limited to 'llvm/test/tools/llvm-readobj/arm64-win-error1.s')
-rw-r--r-- | llvm/test/tools/llvm-readobj/arm64-win-error1.s | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/llvm/test/tools/llvm-readobj/arm64-win-error1.s b/llvm/test/tools/llvm-readobj/arm64-win-error1.s new file mode 100644 index 00000000000..ba59edf3dea --- /dev/null +++ b/llvm/test/tools/llvm-readobj/arm64-win-error1.s @@ -0,0 +1,53 @@ +## 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: 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 0x100d6df + .long 0xe3e3e3e4 + |