mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-01 05:01:59 +01:00
b2d3b0af04
We use both -long-option and --long-option in tests. Switch to --long-option for consistency. In the "llvm-readelf" mode, -long-option is discouraged as it conflicts with grouped short options and it is not accepted by GNU readelf. While updating the tests, change llvm-readobj -s to llvm-readobj -S to reduce confusion ("s" is --section-headers in llvm-readobj but --symbols in llvm-readelf). llvm-svn: 359649
52 lines
1.2 KiB
ArmAsm
52 lines
1.2 KiB
ArmAsm
## Check that error handling for going past the unwind data works.
|
|
## .xdata below contains bad opcodes in the last word. The last byte, 0xe0,
|
|
## indicates that we have come across alloc_l, which requires 4 bytes. In this
|
|
## case, unwind code processing will go past the allocated unwind data.
|
|
|
|
// REQUIRES: aarch64-registered-target
|
|
// RUN: llvm-mc -filetype=obj -triple aarch64-windows %s -o - \
|
|
// RUN: | llvm-readobj --unwind - | FileCheck %s
|
|
|
|
// CHECK: Prologue [
|
|
// CHECK: Opcode 0xe0 goes past the unwind data
|
|
|
|
.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 0x100d61f
|
|
.long 0xe0000000
|
|
|