| ## 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 |
| |