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